10月1日、壮大な式典、きちんとした正方形の、高度な武器、祖先の英雄に敬意を見て午前中に新中国70歳の誕生日は、幸せな人々は、我々はしたいと思います
ナショナルは、人々の生活良くなっ、良くなって。
そして、問題を行います。
コード:
%% ------------------------------------------------ ------------------------ このMファイルについて%%出力情報 のfprintf( '\ nは************ *********************************************** \ n」は); 関数fprintf( '通報8.30 \ <DSPは、MATLABを使用して、> N \ N')。 バナー(); %% ------------------------------------------------ ------------------------ %------------------------- ---------- %ω=(2 / T)を黄褐色(ω/ 2) %ω= 2×ATAN(ΩT/ 2)] %デジタルフィルタ仕様: %------- ---------------------------- WP = * PI 0.4。RADの中%デジタル通過帯域FREQ = 0.6 * PI WS。ラジアンにおける%デジタルストップバンドFREQ Rpと= 0.5。dBで%の通過帯域のリップル 50 =として。dB単位%の阻止帯域減衰 リップル= 10 ^(-Rp / 20)、絶対に%の通過帯域リップル 絶対に事務局担当= 10 ^(-As / 20)%の阻止帯域減衰 %アナログプロトタイプ仕様:周波数に対して逆写像 T = 2。%セットT = 1つの Fsの= 1 / T。 OmegaP =(2 / T)*黄褐色(WP / 2)。%プロトタイプ通過帯域FREQの オメガ=(2 / T)*黄褐色(WS / 2)。%プロトタイプストップバンドFREQの %アナログバターワースプロトタイプフィルタの計算: [CS、DS = afd_butt(OmegaP、オメガ、RP、同様)。 2次セクションの%の計算: 関数fprintf( 's平面における\ N *****カスケード型:***** STARTの\ n'); [CS、BS、AS] = sdir2cas(CS、DS)。 関数fprintf( 's平面における\ N *****カスケード型:END *****の\ n'); 周波数応答の%の計算: [db_s、mag_s、pha_s、ww_s] = freqs_m(CS、DS、2 * PI / T)。 %------------------------------------------------- ------------------- %所与dBの仕様の正確なバンドエッジ周波数を見つける %------------------ -------------------------------------------------- %のIND =検索(ABS(CEIL(db_s)) - 50 == 0) [diff_to_50dB、IND =分(ABS(db_s + 50)) db_s(IND-3:IND + 3)%の振幅応答のdB ww_s( IND)/(PI)KPI単位%アナログ周波数 ヘルツ単位の%ww_s(IND)/(2 * PI)%アナログ周波数 [SA、インデックス]は、ソート(ABS(db_s + 50 =))。 AC_Hz = ww_s(指数(1:8))/(2 * PI) AA_dB = db_s(指数(1:8)) AB_rad = ww_s(指数(1:8))/(PI) %IND =見つける(ABS(CEIL(DB)) - 50 == 0) %------------------------------------------------- ------------------ インパルス応答の%の計算: [HA、X、T] =インパルス(CS、DS)。 %インパルス不変変換: %の[Bを、] = imp_invr(CS、DS、T)。 %双一次変換 [B、A] =バイリニア(CS、DS、FS)。 [C、B、A] = dir2cas(B、A)。 周波数応答の%の計算: [DB、MAG、PHA、GRD、WW = freqz_m(B、A)。 %------------------------------------------------- ------------------- %所与dBの仕様の正確なバンドエッジ周波数を見つける %------------------ -------------------------------------------------- [diff_to_80dB、IND =分(ABS(DB + 50)) DB(IND-3:IND + 3)%の振幅応答のdB WW(IND)/(PI) %のWW(IND)* Fsを/(2 * PI) (2 / T)*黄褐色(WW(IND)/ 2 )/ PI [SA、インデックス] =ソート(ABS(DB + 50))。 AA_dB = DB(指数(1:8))」 AB_rad = WW(指数(1:8)) '/パイ AC_Hz =(2 / T)*黄褐色(WW(指数(1:8))' / 2)/パイ %------------------------------------------------ ------------------- %% ----------------------------- ------------------------------------ %%プロット %% --------- -------------------------------------------------- ------ 図( 'NumberTitle'、 'OFF'、 '名前'、 '問題8.30アナログバターワースローパス') セット(GCF」 M = 1。%オメガ最大'手動'、 'のXTick'、[-0.876、-0.463、0、0.463、0.8591、0.876])。%T = 1 サブプロット(2,2,1)。プロット(ww_s / PI、mag_s)。グリッド上; 軸([ - M、M、0、1.2])。 xlabel(」\のPI単位でアナログ周波数)。ylabelの( '| H |'); タイトル(「絶対でマグニチュード」); %セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[-0.876、-0.463、0、0.463、0.876])。%T = 1 セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[-0.44、-0.23、0、0.23、0.44])。%T = 2 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0、0.0032、0.5、0.9441、1])。 サブプロット(2,2,2)。プロット(ww_s / PI、db_s)。グリッド上; 軸([ - M、M、-100、10])。 xlabel(「\のPI単位でアナログ周波数」)。ylabelの( 'デシベル'); タイトル( 'dBでマグニチュード'); %セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[-0.876、-0.463、0、0。463、0.8591、0.876])。%T = 1 セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[-0.44、-0.23、0、0.23、0.4295、0.44])。%T = 2 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[-90、-50、-1,0])。 セット(GCA、 'YTickLabelMode'、 'マニュアル'、 'YTickLabel'、[ '90'、 '50'、」1 '' 0' ])。 サブプロット(2,2,3)プロット(ww_s / PI、pha_s / PI)。グリッド上; 軸([ - M、M、-1.2、1.2])。 xlabel(「\パイのニュイにおけるアナログ周波数」); ylabelの( 'ラジアン'); タイトル(「位相応答」); セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[-OmegaS、-OmegaP、0、OmegaP、オメガ] / PI)。 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[-1:0.5:1])。 サブプロット(2,2,4)。プロット(T、HA)。グリッド上; %の軸([0、30、-0.05、0.25])。 xlabel( '秒単位の時間'); ylabelの( 'ヘクタール(トン)'); タイトル(「インパルス応答」); 同図( 'NumberTitle'、 'OFF'、 '名前'、 'afd_butt機能によって、問題8.30デジタルバターワースローパス') セット(GCF、 'カラー'、 '白')。 M = 2。%オメガ最大 サブプロット(2,2,1)。プロット(WW /(PI)、MAG)。軸([0、M、0、1.2])。グリッド上; xlabel(「\パイ単位でデジタル周波数」); ylabelの( '| H |'); タイトル(「振幅応答」); セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.6、1.0、M])。 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0、0.0032、0.5、0.9441、1])。 サブプロット(2,2,2)。プロット(WW /(PI)、PHA / PI)。軸([0、M、-1.1、1.1])。グリッド上; xlabel(「\パイのニュイにおけるデジタル周波数」); ylabelの( 'の\パイ単位ラジアン'); タイトル(' 位相応答 '); セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.6、1.0、M])。 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[-1:1:1])。)\パイ単位でデジタル周波数。ylabelの( 'サンプル'); タイトル(「群遅延」); セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.6、1.0、M])。 サブプロット(2,2,3)プロット(WW / PI、DB)。軸([0、M、-100、10])。グリッド上; xlabel(「\パイ単位でデジタル周波数」); ylabelの( 'デシベル'); タイトル( 'dBでマグニチュード'); %セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.594、0.6、1.0、M])。%T = 1 セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.594、0.6、1.0、M])。%T = 2 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[-70、-50、-1,0])。 セット(GCA、 'YTickLabelMode'、 'マニュアル'、 'YTickLabel'、[ '70'、 '50'、」1 '' 0' ])。 サブプロット(2,2,4)。プロット(WW / PI、GRD)。グリッド上; %の軸([0、M、0、35])。 xlabel(「\パイ単位でデジタル周波数」); ylabelの( 'サンプル'); タイトル(「群遅延」); %セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick' [0:5:35])。 フィギュア(「NumberTitle」、「オフ」、「名前」、「問題8.30ポール・ゼロプロット」) セット(GCF、 'カラー'、 '白')。 z平面(B、A)。 タイトル(はsprintf( 'ポール・ゼロプロット')); %のpzplotz(B、A)。 %---------------------------------------------- の%の計算インパルス応答 %---------------------------------------------- フィギュア( 'NumberTitle'、 'OFF'、 '名前'、 '問題8.30インプ&応答のFreq') セット(GCF、 'カラー'、 '白')。 T = [0:0.5:60]。サブプロット(2,1,1)。インパルス(CS、DS、T)。グリッド上; アナログフィルタの%インパルス応答 軸([0,60、-0.3,0.5])に保持 N = [0:1:60 / T]。HN =フィルタ(B、impseq(0,0,60 / T))。デジタルフィルタの%インパルス応答 幹(N * T、HN)。xlabel(「秒の時間」)。タイトル(のsprintf( 'インパルス応答、T =%のF'、T))。 延期 周波数応答の%の計算を: [DBS、雑誌、PHA類、WWS] = freqs_m(CS、DS、2 * PI / T)。%アナログ周波数Sドメイン [DBZ、magz、phaz、grdz、WWZ] = freqz_m(B、A)。%デジタルのzドメイン %% ------------------------------------------- ---------------------- %%プロット %% ----------------------- ------------------------------------------ サブプロット(2,1,2) ; プロット(WWS /(2 * PI)、雑誌* Fsは、 'B +'、WWZ /(2 * PI)* Fsは、magz、 'R'); グリッド上; xlabel( 'Hzの周波数')。タイトル(「振幅応答」); ylabelの( 'マグニチュード'); テキスト(-0.3,0.15、 'アナログフィルタ'、 '色'、 'B')。テキスト(0.4,0.55、 'デジタルフィルタ'、 '色'、 'R'); %% ++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++ %アナログプロトタイプ注文計算: N = CEIL((log10の((10 ^(。RP / 10)-1)/(10 ^( AS / 10)-1)))/(2 * log10の(OmegaP /オメガ)))。 関数fprintf( '\ n \ nは**********バタワースオーダー=%の3.0Fの\フィルターN'、N) OmegaC = OmegaP /((10 ^(。RP / 10)-1)^(1 / (2 * N)))。%アナログBWプロトタイプ遮断FREQ WN = 2×ATAN((OmegaC * T)/ 2)。%デジタルBWカットFREQの %デジタルバタワースフィルタの設計: WN = WN / PI; %デジタルPI単位でバターワース遮断FREQ [B、A] =バター(N、WN)。[C、B、A] = dir2cas(B、 [DB、MAG、PHA、GRD、WW = freqz_m(B、A)。手動」、 'YTick'、[-1:1:1])。 サブプロット(2,2,3)プロット(WW / PI、DB)。軸([0、M、-100、10])。グリッド上; フィギュア(「NumberTitle」、「オフ」、「名前」、「バター機能による問題8.30デジタルバタワースローパス」) セット(GCF、「色」、 M = 2。%オメガ最大 サブプロット(2,2,1)。プロット(WW / PI、MAG)。軸([0、M、0、1.2])。グリッド上; xlabel(」\型PI単位で周波数)。ylabelの( '| H |'); タイトル(「振幅応答」); セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.6、1.0、M])。 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[0、0.0032、0.5、0.9441、1])。 サブプロット(2,2,2)。プロット(WW / PI、PHA / PI)。軸([0、M、-1.1、1.1])。グリッド上; xlabel( '\パイニュイにおける周波数'); ylabelの( 'の\パイ単位ラジアン'); タイトル(「位相応答」); セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.6、1.0、M])。 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[-1:1:1])。 xlabel( '\型PI単位で周波数')。ylabelの( 'デシベル'); タイトル( 'dBでマグニチュード'); セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.6、1.0、M])。 セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick'、[-70、-50、-1,0])。 セット(GCA、 'YTickLabelMode'、 'マニュアル'、 'YTickLabel'、[ '70'、 '50'、」1 '' 0' ])。 サブプロット(2,2,4)。プロット(WW / PI、GRD)。グリッド上; %の軸([0、M、0、35])。 xlabel( '\型PI単位で周波数')。ylabelの( 'サンプル'); タイトル(「群遅延」); セット(GCA、 'XTickMode'、 'マニュアル'、 'のXTick'、[0、0.4、0.6、1.0、M])。 %セット(GCA、 'YTickMode'、 'マニュアル'、 'YTick' [0:5:35])。 フィギュア( 'NumberTitle'、 'オフ'、 '名前'、 '問題8.30ポール・ゼロプロット') セット(GCF、 '色'、」白い'); z平面(B、A)。 タイトル(はsprintf( 'ポール・ゼロプロット')); %のpzplotz(B、A)。 %---------------------------------------------- の%の計算インパルス応答 %---------------------------------------------- 数字(」 NumberTitle」、 'オフ'、 '名前'、 '問題8.30インプ&応答のFreq') セット(GCF、 'カラー'、 '白')。 T = [0:0.5:60]。サブプロット(2,1,1)。インパルス(CS、DS、T)。グリッド上; アナログフィルタの%インパルス応答 軸([0,60、-0.3,0.5])に保持 N = [0:1:60 / T]。HN =フィルタ(B、impseq(0,0,60 / T))。デジタルフィルタの%インパルス応答 幹(N * T、HN)。xlabel(「秒の時間」)。タイトル(のsprintf( 'インパルス応答、T =%のF'、T))。 ホールドオフ 周波数応答の%を計算する: [DBS、雑誌、PHA類、WWS] = freqs_m(CS、DS、2 * PI / T)。%アナログ周波数Sドメイン [DBZ、magz、phaz、grdz、WWZ] = freqz_m(B、A)。 %% ------------------------------------------------ ----------------- %%プロット %% ---------------------------- ------------------------------------- サブプロット(2,1,2)。プロット(WWS /(2 * PI)、雑誌* Fsは、 'B +'、WWZ /(2 * PI)* Fsは、magz、 'R'); グリッド上; xlabel( 'Hzの周波数')。タイトル(「振幅応答」); ylabelの( 'マグニチュード'); テキスト(-0.3,0.15、 'アナログフィルタ'、 '色'、 'B')。テキスト(0.4,0.55、 'デジタルフィルタ'、 '色'、 'R');
結果:
ダイレクトフォーム係数の非正規化されたアナログプロトタイプバターワースローパスフィルタ、
フォームのアナログローパス係数シリーズ:
次のようにバイリニアにより、デジタルバターワース低域に、直接型変換係数
デジタル低域通過係数タンデム
アナログバターワースローパスプロトタイプフィルタのスペクトル、位相スペクトルとインパルス応答の振幅
バイリニアは、振幅スペクトルと位相スペクトルから、デジタルバターワースローパスフィルタを得るために、群遅延応答を変換します
図1のシステムのデジタルローパス極 - 零機能。
下半分の図の上部は、アナログ低域と低域インパルス応答デジタル比較は、一貫性のない形態を見ることができます。
バターは、デジタルローパス、その振幅スペクトルと位相スペクトル、群遅延を決定するためのMATLAB関数が付属しています。
上記で得られた機能afd_buttの結果、位相及び群遅延スペクトルと比較してわずかに異なっています。
極 - 零点プロットは、近いゼロによって部分的に、またわずかに異なっています。
インパルス応答は、違いを見ることができません。