Using System Identification Toolbox More Effectively

Hello,
Let's say I have a system that its output is noisy enough to ident in system identification toolbox.
In this case is it okey to log data after using low pass filter? Because when we use low pass there will be a little phase shift and it can effect the transfer function of the system. This situation concerns me.
Are there any ways to use this noisy or filtered data in system identification toolbox get best estimated transfer function?
Any help will be appreciated.
Thanks.

 採用された回答

Star Strider
Star Strider 2022 年 7 月 22 日

2 投票

Because when we use low pass there will be a little phase shift and it can effect the transfer function of the system.’
You are correct to recognise that possibility, however it is straightforward to avoid using the filtfilt function to do the actual filtering of the signal with any filter you design. The lowpass function does this automatically. For best results with it (and its friends) use the ImpulseResponse','iir' name-value paiir.
For broadband (not band-limited) noise use the sgolayfilt funciton. I usually use a 3-degree polynomial and adjust the ‘framelen’ value to get the result I want.
.

4 件のコメント

Eymen Kosar
Eymen Kosar 2022 年 7 月 25 日
Thanks for your response.
I examined the functions you mentioned and definitely going to use them in future exp's.
I have one more little concern. When we are filtering the systems output, I am thinking that system can not fully transfer its characteristics to mathematical model. By lowpassing the noise maybe I am filtering the some systems characteristics. So I need to design the optimum lowpass here. Are there any tricks to design this lowpass or my concern is just insgnificant here?
Any idea will be appreciated. Thanks.
Star Strider
Star Strider 2022 年 7 月 25 日
As always, my pleasure!
Your concerns may well be significant. I would certainly not ignore them.
I would first attempt to identify the original signal without filtering it, since the identification functions are reasonably robust, and may not have problems with the noise. If the noise is a problem, then filtering would be appropriate.
One way to determine that is by calculating the Fourier transform of the signals you have, using the fft function, and possibly also exploring them with the pspectrum function (consider using some of its options, such as 'spectrogram'). That is the easiest way to determine what sort of filtering is best, since if there is band-limited noise a frequency-selective filter is best, and for broadband noise, the sgolayfilt function is best, because it is more likely to preserve the system characteristics while elliminating at least some of the noise.
I also suggest using the compare function to understand how well the identified and estimated system models the signals used to define it. That will tell you (at least qualitatively) how significant the noise is.
.
Eymen Kosar
Eymen Kosar 2022 年 7 月 25 日
Processed and gained information you gave here is really valuable for me.
Well. Again, thanks in advance.
Eymen
Star Strider
Star Strider 2022 年 7 月 25 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (1 件)

Rajiv Singh
Rajiv Singh 2022 年 8 月 9 日

1 投票

If you have input and output signals separately, you will need to filter both identically, so that in the resulting transfer function, the filter dynamics "cancel out". The net effect of prefiltering the data is to impose a frequency-weighting of the fitting errors. The frequencies where the filter frequency response has lower magnitude are given less importance (smaller weighhting).

カテゴリ

ヘルプ センター および File ExchangeLinear Model Identification についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by