Why do I get different frequency response using state-space representation and transfer function

3 views (last 30 days)
After using butter function to design a filter (as follow), I wanted to check the frequency response. However I suddenly find that the frequency response seems to be different using different representation. That doesn't make sense to me. Thanks a lot for answering me.
[Input, Fs]=audioread('input.wav');
Ws=[10 3800]/(Fs/2);
Wp=[30 3500]/(Fs/2);
[N, Wn]=buttord(Wp,Ws,0.1,30); %Design band pass filter.
fvtool(sos,'Fs',Fs); % Plot Freq Response using state space representation.
fvt=fvtool(b,a,'Fs',Fs); % Plot Freq Response using Transfer Function.

Answers (1)

Christoph F.
Christoph F. on 17 Jan 2018
Edited: Christoph F. on 17 Jan 2018
124th order recursive filters are iffy, numerically. At this point, the limited precision of even the double datatype can lead to erroneous behavior.
Generally: max(abs(a)) is on the order of 10^31 min(abs(a)) is on the order of 10^-9

Community Treasure Hunt

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

Start Hunting!