Numerator coefficient vector = [3 8 12 7 2 –2] Denominator coefficient vector = [16 24 24 14 5 1] sos =
0.1875 -0.0625 0 1.0000 0.5000 0 1.0000 2.0000 2.0000 1.0000 0.5000 0.2500 1.0000 1.0000 1.0000 1.0000 0.5000 0.5000 画出级联实现的框图:
3+8z-1 +12z-2 +7z-3 +2z-4 -2z-5 Q6.5 使用程序P6.2,式H1(z)=所示
16+24z-1 +24z-2 +14z-3 +5z-4 +1z-5 因果无限冲激响应传输函数的两种不同并联形式实现。画出两种实现的框图: Parallel Form I Residues are
-0.4219 + 0.6201i -0.4219 - 0.6201i 2.3437 0.3437 - 2.5079i 0.3437 + 2.5079i
Poles are at
-0.2500 + 0.6614i -0.2500 - 0.6614i -0.5000 -0.2500 + 0.4330i -0.2500 - 0.4330i
Constant value
-2
Parallel Form II Residues are
-0.3047 - 0.4341i -0.3047 + 0.4341i -1.1719 1.0000 + 0.7758i
1.0000 - 0.7758i
Poles are at
-0.2500 + 0.6614i -0.2500 - 0.6614i -0.5000 -0.2500 + 0.4330i -0.2500 - 0.4330i
Constant value 0.1875
Q8.1 程序P8.1设计的滤波器类型为 IIR带阻滤波器 ,其指标为 ?p=[0.4? 0.5?] ?S=[0.1? 0.8?] , RP=1dB,RS=30dB,滤波器的阶数为 4 。为了验证仿真需计算的冲激响应样本为 5个。仿真是正确的吗? % Program P8_1
Wp = [0.4 0.5]; Ws = [0.1 0.8]; Rp = 1; Rs = 30; [N1, Wn1] = buttord(Wp, Ws, Rp, Rs); [num,den] = butter(N1,Wn1);
disp('Numerator coefficients are ');disp(num); disp('Denominator coefficients are ');disp(den); impres = direct2(num,den,[1 zeros(1,4*N1)]); [p,d] = strucver(impres,2*N1);
disp('Actual numerator coeffs are '); disp(p'); disp('Actual denominator coeffs are '); disp(d');
Numerator coefficients are
0.0571 0 -0.1143 0 0.0571
Denominator coefficients are
1.0000 -0.5099 1.2862 -0.3350 0.4479
Actual numerator coeffs are
0.0571 -0.0000 -0.1143 0.0000 0.0571
Actual denominator coeffs are
1.0000 -0.5099 1.2862 -0.3350 0.4479
直接II型结构的因果无限冲激响应滤波器,滤波器的阶数是4阶
Q8.3 生成Q8.1中产生的传输函数的一个级联实现,并编写一个程序来仿真它。其中每个单独的部分用一个直接Ⅱ型实现。验证仿真。 format short
num = input('Numerator coefficients = '); den = input('Denominator coefficients = '); Numfactors = factorize(num); Denfactors = factorize(den);
disp('Numerator Factors'),disp(Numfactors) disp('Denominator Factors'),disp(Denfactors)
Numerator coefficients = [0.0571 0 -0.1143 0 0.0571]
Denominator coefficients = [1.0000 -0.5099 1.2862 -0.3350 0.4479]
Numerator Factors Columns 1 through 3
1.000000000000000 1.021143238995107 0 1.000000000000000 0.979294541463240 0 1.000000000000000 -1.021143238995070 0 1.000000000000000 -0.979294541463277 0 Denominator Factors Columns 1 through 3
1.000000000000000 -0.597633166080704 0.678485370310279 1.000000000000000 0.087733166080704 0.660146879504817
Q8.5 生成Q8.1中传输函数的一个并联Ⅰ型实现,并编写一个程序来仿真它。每一个单独的部分用直接Ⅱ型实现。验证仿真。
num = input('Numerator coefficient vector = '); den = input('Denominator coefficient vector = '); [r1,p1,k1] = residuez(num,den); [r2,p2,k2] = residue(num,den); disp('Parallel Form I')
disp('Residues are');disp(r1); disp('Poles are at');disp(p1); disp('Constant value');disp(k1); disp('Parallel Form II')
disp('Residues are');disp(r2); disp('Poles are at');disp(p2); disp('Constant value');disp(k2); [b1,a1]=residuez(R1,P1,0); R1=[r1(1) r1(2) r1(3) r1(4)]; P1=[p1(1) p1(2) p1(3) p1(4)]; disp('b1=');disp(b1); disp('a1=');disp(a1);
Numerator coefficient vector = [0.0571 0 0.0571]
Denominator coefficient vector = [1.0000 -0.3350 0.4479 ]
Parallel Form I Residues are
-0.023475623417519 + 0.197736845648730i -0.023475623417519 - 0.197736845648730i -0.011716283258078 - 0.213037612139943i -0.011716283258078 + 0.213037612139943i Poles are at
0.298816583040352 + 0.767589747202480i 0.298816583040352 - 0.767589747202480i -0.043866583040352 + 0.811309190381311i -0.043866583040352 - 0.811309190381311i
Constant value
0.127483813351194
Parallel Form II Residues are
-0.158795680938490 + 0.041067400713457i -0.158795680938490 - 0.041067400713457i 0.173353325938490 - 0.000160296180734i 0.173353325938490 + 0.000160296180734i
0 -0.5099 -0.1143 1.2862
Poles are at
0.298816583040352 + 0.767589747202480i 0.298816583040352 - 0.767589747202480i -0.043866583040352 + 0.811309190381311i -0.043866583040352 - 0.811309190381311i
Constant value
0.057100000000000 b1=
-0.046951246835039 -0.289531739579519 0
a1=
1.000000000000000 -0.597633166080704 0.678485370310279
Q8.9 程序P8.3设计的滤波器类型为 IIR低通椭圆滤波器 ,指标为?p=0.25?
?S=0.55?,RP=0.5dB,RS=50dB,阶数为 8,输入的正弦序列的频率为
f=0.7kHz。
% Program P8_3
% Illustration of Filtering by an IIR Filter % clf;
% Generate the input sequence k = 0:50;
w2 = 0.7*pi;w1 = 0.2*pi;
x1 = 1.5*cos(w1*k); x2 = 2*cos(w2*k); x = x1+x2;
% Determine the filter transfer function [N, Wn] = ellipord(0.25, 0.55, 0.5, 50); [num, den] = ellip(N,0.5, 50,Wn); % Generate the output sequence y = filter(num,den,x);
% Plot the input and the output sequences subplot(2,1,1);
stem(k,x); grid; axis([0 50 -4 4]);
xlabel('Time index n'); ylabel('Amplitude'); title('Input Sequence');