ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

位相応答

MATLAB® 関数を使用して、フィルターの位相応答を抽出することができます。周波数応答を与えると、関数 abs からは振幅が返され、関数 angle からは位相角がラジアン単位で返されます。fvtool を使用してバタワース フィルターの振幅と位相を表示するには、次のようにします。

d = designfilt('lowpassiir','FilterOrder',9, ...
    'HalfPowerFrequency',400,'SampleRate',2000);
fvtool(d,'Analysis','freq')

ツール バーで [振幅応答と位相応答] ボタンをクリックするか、[解析][振幅応答と位相応答] を選択して、プロットを表示することもできます。

関数 unwrap も周波数解析に便利です。unwrap は、位相不連続が 360° にわたり連続となるよう、必要に応じて ±360° の倍数を加算し、位相をアンラップします。関数 unwrap をどのように使用できるかを見るために、次のように 25 次ローパス FIR フィルターを設計してみましょう。

h = fir1(25,0.4);

関数 freqz で周波数応答を求め、位相を角度でプロットします。

[H,f] = freqz(h,1,512,2);
plot(f,angle(H)*180/pi)
grid

360° のジャンプ (関数 angle 内の逆正接関数の結果) と、周波数応答における零点を意味する 180° のジャンプを区別することは困難です。

関数 unwrap は 360° のジャンプを排除します。

plot(f,unwrap(angle(H))*180/pi)

または、関数 phasez を使用してアンラップされた位相を表示できます。

phasez(h,1)

参考

| | | | |