このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
freqs
アナログ フィルターの周波数応答
説明
例
伝達関数の周波数応答
伝達関数の周波数応答を求め、それをグラフ表示します。
a = [1 0.4 1]; b = [0.2 0.3 1]; w = logspace(-1,1); h = freqs(b,a,w); mag = abs(h); phase = angle(h); phasedeg = phase*180/pi; subplot(2,1,1) loglog(w,mag) grid on xlabel('Frequency (rad/s)') ylabel('Magnitude') subplot(2,1,2) semilogx(w,phasedeg) grid on xlabel('Frequency (rad/s)') ylabel('Phase (degrees)')
出力引数なしで freqs
を呼び出してプロットを生成することもできます。
figure freqs(b,a,w)
アナログの IIR ローパス フィルターの比較
カットオフ周波数 2 GHz をもつ 5 次のアナログ バタワース ローパス フィルターを設計します。 倍にして周波数を秒あたりのラジアン単位に変換します。4096 点でのフィルターの周波数応答を計算します。
n = 5;
fc = 2e9;
[zb,pb,kb] = butter(n,2*pi*fc,"s");
[bb,ab] = zp2tf(zb,pb,kb);
[hb,wb] = freqs(bb,ab,4096);
同じエッジ周波数と通過帯域リップル 3 dB をもつ 5 次のチェビシェフ I 型フィルターを設計します。その周波数応答を計算します。
[z1,p1,k1] = cheby1(n,3,2*pi*fc,"s");
[b1,a1] = zp2tf(z1,p1,k1);
[h1,w1] = freqs(b1,a1,4096);
同じエッジ周波数と阻止帯域の減衰量 30 dB をもつ 5 次のチェビシェフ II 型フィルターを設計します。その周波数応答を計算します。
[z2,p2,k2] = cheby2(n,30,2*pi*fc,"s");
[b2,a2] = zp2tf(z2,p2,k2);
[h2,w2] = freqs(b2,a2,4096);
同じエッジ周波数、通過帯域リップル 3 dB および阻止帯域の減衰量 30 dB をもつ 5 次の楕円フィルターを設計します。その周波数応答を計算します。
[ze,pe,ke] = ellip(n,3,30,2*pi*fc,"s");
[be,ae] = zp2tf(ze,pe,ke);
[he,we] = freqs(be,ae,4096);
同じエッジ周波数をもつ 5 次のベッセル フィルターを設計します。その周波数応答を計算します。
[zf,pf,kf] = besself(n,2*pi*fc); [bf,af] = zp2tf(zf,pf,kf); [hf,wf] = freqs(bf,af,4096);
減衰をデシベルでプロットします。周波数をギガヘルツで表します。フィルターを比較します。
plot([wb w1 w2 we wf]/(2e9*pi), ... mag2db(abs([hb h1 h2 he hf]))) axis([0 5 -45 5]) grid xlabel("Frequency (GHz)") ylabel("Attenuation (dB)") legend(["butter" "cheby1" "cheby2" "ellip" "besself"])
バタワース フィルターおよびチェビシェフ II 型フィルターには平坦な通過帯域と広い遷移帯域幅があります。チェビシェフ I 型フィルターおよび楕円フィルターは速くロールオフしますが、通過帯域リップルがあります。チェビシェフ II 型設計関数に対する周波数入力は、通過帯域の末尾ではなく阻止帯域の始点を設定します。ベッセル フィルターは、通過帯域に沿って定数近似群遅延をもちます。
ローパス アナログ ベッセル フィルターの周波数応答
最大 ラジアン/サンプルの定数近似群遅延をもつ 5 次のアナログ ローパス ベッセル フィルターを設計します。freqs
を使用してフィルターの周波数応答をプロットします。
[b,a] = besself(5,10000); % Bessel analog filter design freqs(b,a) % Plot frequency response
入力引数
b
, a
— 伝達関数の係数
ベクトル
伝達関数の係数。ベクトルで指定します。
例: [b,a] = butter(5,50,'s')
は、50 ラジアン/秒のカットオフ周波数を持つ 5 次のバタワース フィルターを指定します。
データ型: single
| double
w
— 角周波数
正の実数ベクトル
角周波数。正の実数ベクトルとしてラジアン/秒単位で指定します。
例: 2*pi*logspace(6,9)
は、1 MHz (2π × 106 ラジアン/秒) および 1 GHz (2π × 109 ラジアン/秒) の 50 の対数的に等間隔の角周波数を指定します。
データ型: single
| double
n
— 評価点の数
200 (既定値) | 正の整数スカラー
評価点の数。正の整数スカラーとして指定します。
データ型: single
| double
アルゴリズム
freqs
は、b
および a
により指定されたアナログ フィルターの複素周波数応答を返します。この関数は、ラプラス変換多項式の比
を、周波数点 s = jωで虚軸に沿って評価します。
s = 1j*w; h = polyval(b,s)./polyval(a,s);
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)