天天看點

DSP using MATLAB示例Example3.16

DSP using MATLAB示例Example3.16

代碼:

b = [0.0181,  0.0543, 0.0543,  0.0181];         % filter coefficient array b
a = [1.0000, -1.7600, 1.1829, -0.2781];         % filter coefficient array a
m = 0:length(b)-1; l = 0:length(a)-1;           % index arrays m and l
K = 500; k = 0:1:K;                             % index array k for frequencies
w = k*pi/500;                                   % freqency between 0 and +pi, [0,pi] axis divided into 501 points.

num = b * exp(-j*m'*w);                         % Numerator calculations
den = a * exp(-j*l'*w);                         % Denominator claculations
H = num ./ den;                                 % Frequency response

magH  = abs(H);  angH  = angle(H);  realH  = real(H);  imagH  = imag(H);

%% --------------------------------------------------------------------
%%              START H's  mag ang real imag
%% --------------------------------------------------------------------
figure('NumberTitle', 'off', 'Name', 'Example3.16');
set(gcf,'Color','white'); 
subplot(2,2,1); plot(w/pi,magH); grid on;  axis([0,1,0,1.5]); 
title('Magnitude Response');
xlabel('frequency in \pi units'); ylabel('Magnitude  |H|'); 
subplot(2,2,3); plot(w/pi, angH/pi); grid on; % axis([-1,1,-1,1]);
title('Phase Response');
xlabel('frequency in \pi units'); ylabel('Radians/\pi');

subplot('2,2,2'); plot(w/pi, realH); grid on;
title('Real Part');
xlabel('frequency in \pi units'); ylabel('Real');
subplot('2,2,4'); plot(w/pi, imagH); grid on;
title('Imaginary Part');
xlabel('frequency in \pi units'); ylabel('Imaginary');
%% -------------------------------------------------------------------
%%             END X's  mag ang real imag
%% -------------------------------------------------------------------
      

運作結果:

DSP using MATLAB示例Example3.16

  

    上圖看出,是個低通濾波器。

轉載于:https://www.cnblogs.com/ky027wh-sx/p/6079796.html

繼續閱讀