Main Content

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

phasedelay

デジタル フィルターの位相遅延

説明

[phi,w] = phasedelay(b,a,n) では、ba に格納されている伝達関数の係数をもつデジタル フィルターに対し、n 点の位相遅延の応答ベクトル、phi と、それに対応する n 点の角周波数ベクトル、w が返されます。

[phi,w] = phasedelay(sos,n) では、2 次セクション型 sos に対応する n 点の位相遅延応答が返されます。

[phi,w] = phasedelay(d,n) では、デジタル フィルター dn 点位相遅延応答が返されます。

[phi,w] = phasedelay(___,n,'whole') では、単位円全体を n 個の等間隔で分割した位置の位相遅延応答が返されます。

[phi,f] = phasedelay(___,n,fs) では、レート fs でサンプリングされたフィルター信号に設計されたデジタル フィルターに対し、位相遅延応答とそれに対応する n 点周波数ベクトル f が返されます。

[phi,f] = phasedelay(___,n,'whole',fs) では 0 から fs の範囲の n 個の点における周波数ベクトル f が返されます。

phi = phasedelay(___,w) では、w で指定した角周波数で評価された位相遅延応答が返されます。

phi = phasedelay(___,f,fs) では、f で指定した周波数で評価された位相遅延応答が返されます。

[phi,w,s] = phasedelay(___) では、プロット情報が返されます。ここで、s は、さまざまな周波数応答プロットを表示するために変更可能なフィールドを含む構造です。

[phi,f,s] = phasedelay(___) では、プロット情報が返されます。ここで、s は、さまざまな周波数応答プロットを表示するために変更可能なフィールドを含む構造です。

phasedelay(___) を使用すると、位相遅延応答と周波数が対比のためにプロットされます。

すべて折りたたむ

制約付き最小二乗を使用して、正規化されたカットオフ周波数 0.3 をもつ次数 54 のローパス FIR フィルターを設計します。通過帯域リップルに 0.02 線形単位、阻止帯域の減衰量に 0.08 線形単位を指定します。フィルターの位相遅延応答を計算してプロットします。

Ap = 0.02;
As = 0.008;

b = fircls1(54,0.3,Ap,As);
phasedelay(b)

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

この例を、designfilt を使用して再実行します。この関数ではリップルが dB 単位で表されることに注意してください。

Apd = 40*log10((1+Ap)/(1-Ap));
Asd = -20*log10(As);

d = designfilt('lowpassfir','FilterOrder',54,'CutoffFrequency',0.3, ...
               'PassbandRipple',Apd,'StopbandAttenuation',Asd);
phasedelay(d)

Figure Filter Visualization Tool - Phase Delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Phase Delay contains an object of type line.

200 Hz のカットオフ周波数で 3 次ローパス バタワース フィルターを設計します。サンプルレートは 1000 Hz です。

fc = 200;
fs = 1000;

[z,p,k] = butter(3,fc/(fs/2),'low');

関数 zp2sos を使用して、零点、極およびゲインを 2 次セクション型に変換します。フィルターの位相遅延応答を計算し、評価点の数を 1024 に設定します。結果を表示します。

sos = zp2sos(z,p,k);
phasedelay(sos,1024)

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

正規化された通過帯域周波数 0.4 をもつ次数 10 の楕円フィルターを設計します。0.5 dB の通過帯域リップルと 20 dB の阻止帯域の減衰量を指定します。単位円全体にわたるフィルターの位相遅延応答を表示します。

[b,a] = ellip(10,0.5,20,0.4); 
phasedelay(b,a,512,'whole')

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

この例を、designfilt を使用して再実行します。

d = designfilt('lowpassiir','DesignMethod','ellip','FilterOrder',10, ...
               'PassbandFrequency',0.4, ...
               'PassbandRipple',0.5,'StopbandAttenuation',20);
phasedelay(d,512,'whole')

Figure Filter Visualization Tool - Phase Delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Phase Delay contains an object of type line.

入力引数

すべて折りたたむ

伝達関数の係数。ベクトルで指定します。

データ型: single | double

評価点の数。正の整数として指定します。n をフィルター次数よりも大きい値に設定します。

データ型: single | double

2 次セクション型の係数。行列として指定します。sos は K 行 6 列の行列、K はセクション数で、かつ 2 以上でなければなりません。セクション数が 2 未満の場合、関数は入力を分子ベクトル b と見なします。sos の各行は 2 次 (双二次) フィルターの係数に対応しています。sos 行列の i 行目は [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)] に対応しています。

データ型: single | double

デジタル フィルター。digitalFilter オブジェクトで指定します。周波数応答仕様に基づいて d を生成するには、関数 designfilt を使用します。

関数が位相遅延応答を評価する角周波数。ラジアン/サンプル単位のベクトルとして指定します。周波数は通常、0 から π までです。w は少なくとも 2 つの要素をもたなければなりません。

サンプルレート。ヘルツ単位の実数値スカラーとして指定します。

データ型: double

関数が位相遅延応答を評価する周波数。ヘルツ単位のベクトルとして指定します。f には少なくとも 2 つの要素が含まれていなければなりません。

出力引数

すべて折りたたむ

位相遅延応答。長さ n のベクトルとして返されます。位相遅延応答は、単位円の上半分の周囲に等間隔に配置された n 個の点で計算されます。

メモ

phasedelay への入力が単精度の場合、この関数は位相遅延応答を単精度演算で計算します。出力 phi は単精度です。

ラジアン/サンプル単位の角周波数。ベクトルとして返されます。n を指定している場合は、w の長さは n になります。n を指定していないか、n を空ベクトルとして指定している場合、w の長さは 512 になります。

ヘルツ単位の周波数。ベクトルとして返されます。n を指定している場合は、f の長さは n になります。n を指定していないか、n を空ベクトルとして指定している場合、f の長さは 512 になります。

プロット情報。構造体として返されます。s のフィールドを変更してさまざまな周波数応答プロットを表示できます。

アルゴリズム

フィルターの "位相遅延応答" は、入力信号がシステムを通過する際に各周波数成分に生じる時間遅延に対応します。関数 phasedelay では、入力 b および a の分子係数と分母係数を指定した場合、フィルターの位相遅延応答と周波数ベクトルが返されます。

H(ejω)=B(ejω)A(ejω)=b(1)+b(2)ejω++b(m+1)ejmωa(1)+a(2)ejω++a(n+1)ejnω

バージョン履歴

R2006a より前に導入