The behavior observed is an expected behavior. This is a result of using the Transfer Function versus the Zeros and Poles of the filter generated by the BUTTER function in the Signal Processing Toolbox. They are identical mathematically but numerically the Zeros and Poles are more stable.
This limitation is mentioned in the documentation for the BUTTER function in Signal Processing Toolbox 6.9 (R2008a).
The resolution is illustrated below:
[b,a] = butter(6 , [25e6 29e6]/500e6 , 'bandpass') % bad design
[z, p, k] = butter(6 , [25e6 29e6]/500e6 , 'bandpass'); % good design
[sos,g] = zp2sos(z,p,k);
Hd = dfilt.df2tsos(sos,g);
fvtool(b,a,Hd, 'Fs', 500e6*2)
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee