Why does the BUTTER function return different results for Signal Processing Toolbox 4.3 and 5.0?

Illustration
Mikaela_sf - 2021-03-19T14:43:28+00:00
Question: Why does the BUTTER function return different results for Signal Processing Toolbox 4.3 and 5.0?

Why does the BUTTER function return different results for Signal Processing Toolbox versions 4.3 (R11.1) and 5.0 (R12) on my PC? For example:   samplingrate=500; lowend=.1; highend=10; Wn=[lowend highend]/(samplingrate/2); [b a]=butter(8,Wn); The value of the zeros vector 'b' returned by the BUTTER function is different for R11.1 and R12. I am confused as to which answer is correct.

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

The answers in both versions are equally good answers. In R12.x and R13 on the PC, the answer is significantly different from that in R11. However, the R12.x and R13 answers on PC are the same as the R11, R12.x and R13 answers on Unix, down to the last bit. This is because the MATLAB computations underlying the BUTTER function uses a different number of bits to store the intermediate values.
 
Please modify your code as shown below, to obtain the same results for all versions of MATLAB:
 
 
samplingrate=500;

lowend=.1;

highend=10;

Wn=[lowend highend]/(samplingrate/2);

% This avoids the piece of code which is generating slightly different

% coefficients between the two versions of MATLAB.

[z,p,k]=butter(8,Wn);

[SOS,G] = zp2sos(z,p,k);

[b,a] = sos2tf(SOS,G);


Butterworth filters have a magnitude response that is maximally flat in the passband and monotonic overall. This smoothness comes at the price of decreased rolloff steepness. Elliptic and Chebyshev filters generally provide steeper rolloff for a given filter order.

butter uses a five-step algorithm:

  1. It finds the lowpass analog prototype poles, zeros, and gain using the function buttap.

  2. It converts the poles, zeros, and gain into state-space form.

  3. If required, it uses a state-space transformation to convert the lowpass filter into a bandpass, highpass, or bandstop filter with the desired frequency constraints.

  4. For digital filter design, it uses bilinear to convert the analog filter into a digital filter through a bilinear transformation with frequency prewarping. Careful frequency adjustment enables the analog filters and the digital filters to have the same frequency response magnitude at Wn or at w1 and w2.

  5. It converts the state-space filter back to its transfer function or zero-pole-gain form, as required.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!