デジタルフィルタのボード線図
15 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
デジタルフィルタモデルのボード線図をM-ファイルで記述したコマンドで求めたい。 周波数はHzとしたい。 合わせてExcelでも描画するために、freq.dat、gain.dat、phase.datデータを発生したい。
0 Commenti
Risposte (1)
Akira Agata
il 24 Ago 2017
Modificato: Akira Agata
il 24 Ago 2017
以下の例は、サンプリング周波数を 1kHz として、Kaiserウィンドウを用いた80次のFIRローパスフィルタの周波数応答をテーブル型変数 Output に保存のうえExcelファイルとして出力します。
fs = 1000;
b = fir1(80,0.5,kaiser(81,8));
[h, f] = freqz(b,1,[],fs)
Output = table(f,abs(h),rad2deg(unwrap(angle(h))),...
'VariableNames',{'freq','response','phase'});
writetable(Output,'bodePlot.xls');
3 Commenti
Akira Agata
il 24 Ago 2017
fdatoolで設計したフィルタから周波数応答を求める場合は、設計後にツールバーから[ファイル] ⇒ [MATLABコードを生成] ⇒ [フィルタ設計関数] を選択して関数を生成して下さい(この関数を呼び出すことで、設計したフィルタのdfiltオブジェクトが生成されます)。
例えばfdatoolでフィルタを設計後、フィルタ設計関数を生成して 'myFiltDesign.m' というファイル名で保存したとします。このフィルタの周波数応答を求めるには、以下のようにすれば求めることができます。
% fdatoolで設定したサンプリング周波数
fs = 1000;
% 設計したフィルタのdfiltオブジェクトを生成
b = myFiltDesign();
% 生成する評価点の数
n = 1024;
[h, f] = freqz(b,n,fs);
Output = table(f,abs(h),rad2deg(unwrap(angle(h))),...
'VariableNames',{'freq','response','phase'});
writetable(Output,'bodePlot.xls');
Vedere anche
Categorie
Scopri di più su デジタル フィルター解析 in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!