《DSP using MATLAB》Problem 6.15

Posted ky027wh-sx

tags:

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

技术分享图片

技术分享图片

代码:

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

‘);

banner();
%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%format long;
format short;
fprintf(‘
 DIRECT-form:     
‘);
b = [1.0  0   -2.20   0  1.6368  0  -0.48928  0  5395456*10^(-8)  0  -147456*10^(-8) ]
a = [1.0  0   -1.65   0  0.8778  0  -0.17281  0  1057221*10^(-8)  0  -893025*10^(-10)]


fprintf(‘
Convert DIRECT-form to PARALLEL-form :     
‘);
[C, Bp, Ap] = dir2par(b, a)

if size(C)==0
  C = 0;
end

fprintf(‘
Convert DIRECT-form to CASCADE-form :     
‘);
[b0, Bc, Ac] = dir2cas(b, a) 

fprintf(‘
Convert TF-form to SOS-form :     
‘);
[sos, g] = tf2sos(b, a)

fprintf(‘
Convert DIRECT-form to LATTICE-LADDER-form :     
‘);
[Klr, Clr] = dir2ladr(b, a) 

fprintf(‘
Convert DIRECT-form to MATLAB LATTICE-LADDER-form :     
‘);
[K, V] = tf2latc(b, a)

% -----------------------------------------
%     START check
% -----------------------------------------
n = [0:7];
delta = impseq(0, 0, 7)
%format long
format  short
hcas = casfiltr(b0, Bc, Ac, delta)

hpar = parfiltr(C, Bp, Ap, delta)

hladr = ladrfilt(Klr, Clr, delta)

hdir = filter(b, a, delta)
% -------------------------------------------
%       END check
% -------------------------------------------


b01 = 1;
Bc1 = [1.0  1.8  0.8;
	   1.0  1.0  0.24;
	   1.0  0.2  0; ];
Ac1 = [1.0  1.6  0.63;
	   1.0  0.8  0.15;
	   1.0  0.1  0;];
fprintf(‘
Convert 1st part to DIRECT-form from CASCADE-form :     
‘);
[b1, a1] = cas2dir(b01, Bc1, Ac1) 
b1 = b1(1:6);
a1 = a1(1:6);

fprintf(‘
Convert 1st part to PARALLEL-form from DIRECT-form :     
‘);
[C1, Bp1, Ap1] = dir2par(b1, a1)

if size(C1)==0
  C1 = 0;
end


b02 = 1;
Bc2 = [1.0  -1.0  0.24;
	   1.0  -1.8  0.80;
	   1.0  -0.2  0.00; ];
Ac2 = [1.0  -0.8  0.15;
	   1.0  -1.6  0.63;
	   1.0  -0.1  0.00;];
fprintf(‘
Convert 2nd part to DIRECT-form from CASCADE-form :     
‘);
[b2, a2] = cas2dir(b02, Bc2, Ac2) 
b2 = b2(1:6);
a2 = a2(1:6);

fprintf(‘
Convert 2nd part to PARALLEL-form from DIRECT-form :     
‘);
[C2, Bp2, Ap2] = dir2par(b2, a2)

if size(C2)==0
  C2 = 0;
end

  运行结果:

       直接形式系数

技术分享图片

        并联形式系数

技术分享图片

        串联形式系数

技术分享图片

技术分享图片

        由总的直接形式转换成串联形式,再分成两部分的串联,这两部分写成并联形式,而后串联。

        第1部分的并联形式

技术分享图片

        第2部分的并联形式

技术分享图片

          题中的附图,系数标注不准的地方直接改了。

 

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

《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