tfestimate gives different results for different Fs

5 views (last 30 days)
So I have an experimental data; A is a chirp signal (sweep sine wave) and B is the response of the system. I identify the system as follows:
figure
Ts= 1e-4;
Fs = 1/Ts;
[T,f]=tfestimate(A,B,[],[],[],Fs);
semilogx(f,20*log10(abs(T)));
grid
But when I change Ts to different values (e.g. 1e-2), the plot changes. For instance
This is with Ts = 1e-4
This is with Ts=1e-2
Can anyone help me figure out what the correct value of Ts is, so my reported eigenfrequencies are correct?

Answers (1)

Aquatris
Aquatris on 27 Dec 2018
It is because when you change the sampling time, you are basically playing with the fft of the signal. You should use Ts value of whatever you used in your experiment to get correct transfer function. For instance, if you collected data every 10 ms, you should use a Ts value of 10 ms.
The reason behind the change of frequency but not the magnitude is simple. Assume you have a sine wave;
t = 0:1e-3:10;
y = sin(t);
If you take the fft of the signal 'y', and use the sampling rate of 1 ms, since the sine wave is created that way, you will see a magnitude of 1 at frequency of 1 rad/s. However if you do the fft assuming you have a sampling rate of 10 ms, the magnitude in the fft will still be 1 but ferquency will be 0.1 rad/s. Which is what you observed in the graphs you provided. You increased the sampling time from 1e-4 to 1e-2 sec, which is a 100 time increase, which decreased your frequency 100 times.

Products


Release

R2015a

Community Treasure Hunt

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

Start Hunting!