デジタルフィルタのボード線図
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
デジタルフィルタモデルのボード線図をM-ファイルで記述したコマンドで求めたい。 周波数はHzとしたい。 合わせてExcelでも描画するために、freq.dat、gain.dat、phase.datデータを発生したい。
0 commentaires
Réponses (1)
Akira Agata
le 24 Août 2017
Modifié(e) : Akira Agata
le 24 Août 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 commentaires
Akira Agata
le 24 Août 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');
Voir également
Catégories
En savoir plus sur デジタル フィルター解析 dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!