Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

位相応答

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

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

Figure Filter Visualization Tool - Magnitude Response (dB) and Phase Response contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) and Phase Response contains an object of type line.

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

関数 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

Figure contains an axes object. The axes object contains an object of type line.

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

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

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

Figure contains an axes object. The axes object contains an object of type line.

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

phasez(h,1)

Figure contains an axes object. The axes object with title Phase Response contains an object of type line.

参考

| | | | |