《DSP using MATLAB》Problem 8.13

Posted ky027wh-sx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《DSP using MATLAB》Problem 8.13相关的知识,希望对你有一定的参考价值。

技术图片

代码:

%% ------------------------------------------------------------------------
%%            Output Info about this m-file
fprintf(‘\\n***********************************************************\\n‘);
fprintf(‘        <DSP using MATLAB> Problem 8.13 \\n\\n‘);

banner();
%% ------------------------------------------------------------------------

Wp = 20*pi; Ws = 40*pi; Rp = 0.5; As = 45;
Fp = Wp/(2*pi);
Fs = Ws/(2*pi);

Ripple = 10 ^ (-Rp/20)
Attn = 10 ^ (-As/20)

% Analog filter design:
[b, a] = afd(‘butter‘, Fp, Fs, Rp, As);
%[b, a] = afd_butt(Wp, Ws, Rp, As);

% Calculation of second-order sections:
[C, B, A] = sdir2cas(b, a);

% Calculation of Frequency Response:
[db, mag, pha, ww] = freqs_m(b, a, 45*pi);

% Calculation of Impulse Response:
[ha, x, t] = impulse(b, a);


%% -------------------------------------------------
%%                    Plot
%% -------------------------------------------------  

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 8.13 Analog Butterworth lowpass‘)
set(gcf,‘Color‘,‘white‘); 
M = 1.0;                          % Omega max

subplot(2,2,1); plot(ww/pi, mag);  grid on; axis([-45, 45, 0, 1.2]);
xlabel(‘ Analog frequency in \\pi*1k units‘); ylabel(‘|H|‘); title(‘Magnitude in Absolute‘);
set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [-45, -40, -20, 0, 20, 40, 45]);
set(gca, ‘YTickMode‘, ‘manual‘, ‘YTick‘, [0, 0.005, 0.94, 1]);

subplot(2,2,2); plot(ww/pi, db);  grid on; %axis([0, M, -50, 10]);
xlabel(‘Analog frequency in \\pi*1k units‘); ylabel(‘Decibels‘); title(‘Magnitude in dB ‘);
set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [-45, -40, -20, 0, 20, 40, 45]);
set(gca, ‘YTickMode‘, ‘manual‘, ‘YTick‘, [-50, -45, -10, 0]);
set(gca,‘YTickLabelMode‘,‘manual‘,‘YTickLabel‘,[‘50‘;‘45‘;‘10‘;‘ 0‘]);

subplot(2,2,3); plot(ww/pi, pha/pi);  grid on; axis([-45, 45, -1.2, 1.2]);
xlabel(‘Analog frequency in \\pi*1k nuits‘); ylabel(‘radians‘); title(‘Phase Response‘);
set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [-45, -40, -20, 0, 20, 40, 45]);
set(gca, ‘YTickMode‘, ‘manual‘, ‘YTick‘, [-1:0.5:1]);


subplot(2,2,4); plot(t, ha); grid on; %axis([0, 30, -0.05, 0.25]); 
xlabel(‘time in seconds‘); ylabel(‘ha(t)‘); title(‘Impulse Response‘);

  运行结果:

       通带、阻带绝对指标

技术图片

        模拟butterworth低通,直接形式系数

技术图片

        串联形式系数

技术图片

        幅度谱、相位谱和脉冲响应。

技术图片

 

以上是关于《DSP using MATLAB》Problem 8.13的主要内容,如果未能解决你的问题,请参考以下文章

《DSP using MATLAB》Problem 5.7

《DSP using MATLAB》Problem 6.7

《DSP using MATLAB》Problem 6.8

《DSP using MATLAB》Problem 3.12

《DSP using MATLAB》Problem 4.17

《DSP using MATLAB》Problem 3.5