Why do I receive different results when comparing a digital ?

 

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:


Comments

Popular posts from this blog

Why are Fourier series important? Are there any real life applications of Fourier series?

What are some good alternatives to Simulink?

What is the difference between a reversible machine and a self-locking machine?