Why do I receive different results when comparing a digital ?

Technical Source
2 min readFeb 19, 2021

--

Why do I receive different results when comparing a digital filter designed using the BUTTER and BILINEAR functions in the Signal Processing Toolbox?

Using the following specifications:

Fs     = 172800;Fc     = 70000;

where “Fs” represents the sampling frequency and “Fc” represents the cutoff frequency, I created a digital filter in two different ways:

1. Using the BUTTER function.

[B ,A] = butter(4,Fc/(Fs/2));

2. Using the BILINEAR function to convert the analog filter designed using the BUTTER function into a digital filter through a bilinear transformation.

[Bs,As] = butter(4,Fc*2*pi,'s');[Bz,Az] = bilinear(Bs,As,Fs);

I then used the FVTOOL function to compute the magnitude response and compared the two results:

fvtool(B,A,Bz,Az);

Notice that the results of the two magnitude responses are not the same even though I am using the same specifications.

ANSWER

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

This is the expected behavior for filter discretization in the Signal Processing Toolbox. The example above illustrates the nonlinear nature of the bilinear transformation. To counteract this nonlinearity, it is necessary to create analog domain filters with “prewarped” band edges, which map to the correct locations upon bilinear transformation.

If you want to design the analog filter that will be equivalent to the design using the ‘s’ option in the BUTTER function, you need to prewarp the frequency as follows:

Wc = tan(pi/2*Fc/(Fs/2)); % Analog prewarped freq. rad/second

Note that this frequency is already in rad/second so the analog design is:

[Bs,As] = butter(4,Wc,'s');

Now the issue is what sampling frequency (Fs) to use with BILINEAR. In the prewarping method used to compute “Wc”, we implicitly used the bilinear transformation that is most commonly seen in the literature:

s=(1-z^(-1))/(1+z^(-1)).

In the BILINEAR function documentation, the following transformation is used:

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet