Converting high order transfer functions model to discrete

I'm trying to convert a continuous model of order 14 with Matlab, but the function c2d is not giving correct results. My model comes from an identification of idfrd models in Matlab. I'm familiar with the precision problems of transfer function models, and the conversion works fine with state space models. But I need to conevrt this model into biquadratic filters coefficients, and so, I need a discrete transfer function model. Any idea on how to get around this problem ?

댓글 수: 5

I have also tried all the options of the c2d function with no better results. Converting from transfer function to state space before doing the continuous to digital conversion and convert it back to transfer function gives the same result.
I have also tried to convert it to state space, convert it to digital, convert it to frd, and then identify it in digital --> same result.
Maybe a solution would be to decompose this filter into several filters of smaller order, convert it, and multiply them in the digital domain. I know that c2d is working fine for small order models, like biquadratic filters, any idea on how to do this ?
I have also tried scaling the state space model before converting it to digital with a similar result.
Is the original model a transfer function or a state space?
It's a transfer function model, from an identification with tfest.
Romain Liechti
Romain Liechti 2019년 7월 30일
편집: Romain Liechti 2019년 7월 30일
I managed to have biquadratic filter coefficients by converting the model to zpk, and then separate manually the model into biquadratic filter (2 poles and 2 zeros) in order to convert them to digital separately. I still have a problem with this technique creating complex poles and zeros that I cannot convert to biquadratic digital filters coefficients. So an alternative solution would be to convert it to zpk without creating complex poles, is that possible ?

댓글을 달려면 로그인하십시오.

 채택된 답변

Rajiv Singh
Rajiv Singh 2019년 7월 31일

0 개 추천

If the identified model has complex poles, you can't wish them away by converting to zpk. Note that complex poles come in conjugate pairs, so a real filter can still be created. If you are looking for a modal separation (sum of first and second order transfer functions), see modalfit in Signal Processing Toolbox.
Regarding high order TF identification with TFEST: Note that a high order transfer function is going to be ill-conditioned. If you need to work with such high orders, I would stringly suggest using state-space identification (see SSEST).

댓글 수: 1

I finally found another solution, using zp2sos to get the biquadratic filters coefiicients from the complete model. It works fine.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

제품

릴리스

R2018b

질문:

2019년 7월 29일

댓글:

2019년 8월 3일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by