「MATLABを使用したDSP「問題8.7

コード:

%% ------------------------------------------------ ------------------------ 
このMファイルについて%%出力情報
のfprintf( '\ nは************ *********************************************** \ n」は); 
関数fprintf( '<DSP使用MATLAB>問題8.7 \ n \ n'); 
バナー(); 
%% ------------------------------------------------ ------------------------ 

%デジタルIIRローパスフィルタ
B = [1 1]。
= [1 -0.9]。

フィギュア( 'NumberTitle'、 'オフ'、 '名前'、 '問題8.7ポール・ゼロプロット')
セット(GCF、 '色'、 '白'); 
z平面(B、A)。
タイトル(はsprintf( 'ポール・ゼロプロット')); 
%のpzplotz(B、A)。

%対応するシステム機能を直接形
K = 1。 
B = Kの* Bと、%分母                       
A = A。%の分子

[DB、MAG、PHA、GRD、W] = freqz_m(B、A)。

%------------------------------------------------- -------------------- 
%最大ゲインは1に等しく、フィルタの利得パラメータを選択
--------------% -------------------------------------------------- ----- 
GAIN1 = maxの極を有する(MAG)%
K = 1 / GAIN1 
= freqz_m [DB、MAG、PHA、GRD、W(Kの* Bを、A)。

同図( 'NumberTitle'、 'OFF'、 '名前'、 '問題8.7 IIRローパスフィルタ')
セット(GCF、 'カラー'、 '白')。

サブプロット(2,2,1)。プロット(W / PI、DB)。グリッド上; 軸([0 2 -60 10])。
セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[ - 60、-30,0])
セット(GCA、 'YTickLabelMode'、 'マニュアル'、 'YTickLabel'、[ '60'、 '30' ;」0' ])。
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,0.5,1,1.5,1.75,2])。
xlabel( '\型PI単位で周波数')。ylabelの( 'デシベル'); タイトル(「dBで振幅応答」); 

サブプロット(2,2,3)プロット(W / PI、MAG)。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( '絶対'); タイトル(' 絶対的でマグニチュード応答 '); 
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,0.5,1,1.5,1.75,2])。
セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0,1.0])。

サブプロット(2,2,2)。プロット(W / PI、PHA)。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( 'ラッド'); タイトル(「ラジアンで位相応答」); 

サブプロット(2,2,4)。(PI、* GRD PI / 180 / w)のプロット。グリッド上; %の軸([0 1 -100 10])。
xlabel(」
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,0.5,1,1.5,1.75,2])。
%セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0,1.0])。


%インパルス応答
のfprintf( '\ nは----------------------------------'); 
関数fprintf( '\ nPartial分数展開方法:\ n'); 
[R、P、C = residuez(B、A)
MR =(ABS(R)) '%残留マグニチュード
AR =(角度(R))' PI単位/ PI%残留角度
融点=(ABS(P) ) '%ポールマグニチュード
のAp =(角度(P))' /パイ%の極角PI単位で
h_chk =フィルタ(B、デルタ)。%チェックシーケンス


%------------------------------------------------- ----------------------------------------------- 
時間=( 0.9 ^ n)の* 0.1056から0.0556 *デルタ。。。  
%------------------------------------------------- ----------------------------------------------- 


フィギュア(」 NumberTitle」、 'オフ'、 '名前'、 '問題8.7のIIR LPフィルタ、H(n)はフィルタ及びINV-Zによって')
セット(GCF、'カラー'、 ''白); 

サブプロット(2,1,1)。ステム(N、h_chk)。グリッド上; %の軸([0 2 -60 10])。
xlabel( 'N')。ylabelの( '時間の\ _chk')。タイトル(「フィルタによるインパルス応答列」); 

サブプロット(2,1,2)。ステム(N、H)。グリッド上; %の軸([0 1 -100 10])。
xlabel( 'N')。ylabelの( 'H')。タイトル( 'INV-Zによるインパルス応答列'); 


[DB、MAG、GRD、PHA、W] = freqz_m(H、[1])。


同図( 'NumberTitle'、 'OFF'、 '名前'、 '問題8.7 IIRフィルタH(n)のINV-Zによって')
セット(GCF、'カラー'、 '白')。

サブプロット(2,2,1)。プロット(W / PI、DB)。グリッド上; 軸([0 2 -60 10])。
セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[ - 60、-30,0])
セット(GCA、 'YTickLabelMode'、 'マニュアル'、 'YTickLabel'、[ '60'、 '30' ;」0' ])。
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,1,1.75,2])。
xlabel( '\型PI単位で周波数')。ylabelの( 'デシベル'); タイトル(「dBで振幅応答」); 

サブプロット(2,2,3)プロット(W / PI、MAG)。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( '絶対'); タイトル(「絶対における振幅応答」); 
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,1,1.75,2])。
セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0,1.0])。

サブプロット(2,2,2)。プロット(W / PI、PHA)。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( 'ラッド'); タイトル(「ラジアンで位相応答」); 

サブプロット(2,2,4)。(PI、* GRD PI / 180 / w)のプロット。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( 'ラッド'); タイトル(「群遅延」); 
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,1,1.75,2])。
%セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0,1.0])。



%------------------------------------------------- - デジタルIIRくし形フィルタ
%------------------------------------------- ------- 
B = K * [1 0 0 0 0 0 1]。
= [1 0 0 0 0 0 -0.9]。

フィギュア(「NumberTitle」、「オフ」、「名前」、「問題8.7ポール・ゼロプロット」
) z平面(B、A)。
タイトル(はsprintf( 'ポール・ゼロプロット'));


[DB、MAG、GRD、PHA、W] = freqz_m(B、A)。

同図( 'NumberTitle'、 'OFF'、 '名前'、 '問題8.7 IIRくし形フィルタ')
セット(GCF、 'カラー'、 '白')。

サブプロット(2,2,1)。プロット(W / PI、DB)。グリッド上; 軸([0 2 -60 10])。
セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[ - 60、-30,0])
セット(GCA、 'YTickLabelMode'、 'マニュアル'、 'YTickLabel'、[ '60'、 '30' ;」0' ])。
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,0.5,1,1.5,1.75,2])。
xlabel( '\型PI単位で周波数')。ylabelの( 'デシベル'); タイトル(「dBで振幅応答」); 

サブプロット(2,2,3)プロット(W / PI、MAG)。グリッド上; 
xlabel( '\型PI単位で周波数')。ylabelの( '絶対'); タイトル(「絶対における振幅応答」);
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,0.5,1,1.5,1.75,2])。
セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0,1.0])。

サブプロット(2,2,2)。プロット(W / PI、PHA)。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( 'ラッド'); タイトル(「ラジアンで位相応答」); 

サブプロット(2,2,4)。(PI、* GRD PI / 180 / w)のプロット。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( 'ラッド'); タイトル(「群遅延」); 
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,0.5,1,1.5,1.75,2])。
%セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0,1.0])。



%インパルス応答
のfprintf( '\ nは----------------------------------'); 
関数fprintf( '\ nPartial分数展開方法:\ n'); 
[R、P、 
AR =(角度(R))」
AP =(角度(P)) 'PI単位/ PI%極角度
[デルタ、N] = impseq(0,0,300)。
h_chk =フィルタ(B、デルタ)。%チェックシーケンス

%---------------------------------------------- -------------------------------------------------- 
%の利得パラメータK = 0.05   
%------------------------------------------- -------------------------------------------------- --- 
%H = 0.0211 *((0.9791 ^ N)*(2 * COS(0.4 * PI * N)+ 2 * COS(0.8 * PI×n個)+ 1)。。) - 0.0556 *デルタ。%のL = 5。
H = 0.0176 *((0.9826 ^ N)*(2 * COS(2 *最も* N / 3)+ 2 * COS(* N / 3)+( - 1)^ N + 1)。。。) - 0.0556 *デルタ。%のL = 6。
%------------------------------------------------- ----------------------------------------------- 

フィギュア(」 NumberTitle」、 'オフ'、 '名前'、 '問題8.7櫛形フィルタ、H(n)はフィルタ及びINV-Zによって')
セット(GCF、'カラー'、 '白

サブプロット(2,1,1)。ステム(N、h_chk)。グリッド上; %の軸([0 2 -60 10])。
xlabel( 'N')。ylabelの( '時間の\ _chk')。タイトル(「フィルタによるインパルス応答列」); 

サブプロット(2,1,2)。ステム(N、H)。グリッド上; %の軸([0 1 -100 10])。
xlabel( 'N')。ylabelの( 'H')。タイトル( 'INV-Zによるインパルス応答列'); 


[DB、MAG、GRD、PHA、W] = freqz_m(H、[1])。


同図( 'NumberTitle'、 'OFF'、 '名前'、「問題8.7櫛形フィルタ、INV-ZによってH(n)は')
セット(GCF、' 

サブプロット(2,2,1)。プロット(W / PI、DB)。グリッド上; 軸([0 2 -60 10])。
セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[ - 60、-30,0])
セット(GCA、 'YTickLabelMode'、 'マニュアル'、 'YTickLabel'、[ '60'、 '30' ;」0' ])。
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,1,1.75,2])。ラジアンの位相応答); 
サブプロット(2,2,4)。(PI、* GRD PI / 180 / w)のプロット。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( 'デシベル'); タイトル(「dBで振幅応答」);

サブプロット(2,2,3)プロット(W / PI、MAG)。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( '絶対'); タイトル(「絶対における振幅応答」); 
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,1,1.75,2])。
セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0,1.0])。

サブプロット(2,2,2)。プロット(W / PI、PHA)。グリッド上; %の軸([0 1 -100 10])。
xlabel( '\型PI単位で周波数')。ylabelの( 'ラッド'); タイトル(「ラジアンで位相応答」); 

xlabel( '\型PI単位で周波数')。ylabelの( 'ラッド'); タイトル(「群遅延」); 
セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0,0.25,1,1.75,2])。
%セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0,1.0])。

  結果:

        単一IIRローパスを計算するには、

        ポール・ゼロ

        L = 6次ローパス櫛、システムの関数として部分分数展開

        図櫛極 - 零ローパスフィルタ。

        振幅スペクトル、位相スペクトル、群遅延

        0、π2の範囲で、見ることができるように、単一の低域は、元のスペクトルが六分の一に圧縮され、6回繰り返します。

 

おすすめ

転載: www.cnblogs.com/ky027wh-sx/p/10972957.html