ドキュメンテーション

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

phasedelay

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

構文

[phi,w] = phasedelay(b,a,n)
[phi,w] = phasedelay(sos,n)
[phi,w] = phasedelay(d,n)
[phi,w] = phasedelay(...,n,'whole')
phi = phasedelay(...,w)
[phi,f] = phasedelay(...,n,fs)
[phi,f] = phasedelay(...,n,'whole',fs)
phi = phasedelay(...,f,fs)
[phi,w,s] = phasedelay(...)
[phi,f,s] = phasedelay(...)
phasedelay(...)

説明

[phi,w] = phasedelay(b,a,n) では、分子係数 b と分母係数 a により定義されるフィルターの n 点位相遅延応答ベクトル phin 点周波数ベクトル (ラジアン/サンプル単位) w が返されます。位相遅延応答は、単位円の上半分の周囲に等間隔に配置された n 個の点で計算されます。n を省略した場合、既定値の 512 になります。最適な結果を得るため、n をフィルター次数よりも大きい値に設定します。

[phi,w] = phasedelay(sos,n) では、2 次セクション型の行列 sosn 点位相遅延応答が返されます。sos は K 行 6 列の行列で、セクション数 K は 2 以上でなければなりません。セクション数が 2 未満の場合、phasedelay は入力を分子ベクトル b とみなします。sos の各行は 2 次 (双二次) フィルターの係数に対応しています。sos 行列の i 行目は [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)] に対応しています。

[phi,w] = phasedelay(d,n) では、デジタル フィルター dn 点位相遅延応答が返されます。d を周波数応答仕様に基づいて生成するには、関数 designfilt を使用します。

[phi,w] = phasedelay(...,n,'whole') では、単位円全体を n 個の等間隔で分割したものが使用されます。

phi = phasedelay(...,w) では、ベクトル w で指定された周波数 (ラジアン/サンプル単位) における位相遅延応答が返されます。周波数は通常、0 から π までです。w は少なくとも 2 つの要素をもたなければなりません。

[phi,f] = phasedelay(...,n,fs) および [phi,f] = phasedelay(...,n,'whole',fs) は、サンプリング周波数 fs (Hz) を使用して位相遅延ベクトル f (Hz) を返します。f は少なくとも 2 つの要素をもたなければなりません。

phi = phasedelay(...,f,fs) では、サンプリング周波数 fs (Hz 単位) を使用して、ベクトル f で指定された周波数 (Hz 単位) での位相遅延応答が返されます。

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

出力引数なしで phasedelay(...) を使用すると、位相遅延応答と周波数が対比のため同じ Figure 内にプロットされます。

メモ

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

すべて折りたたむ

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

Ap = 0.02;
As = 0.008;

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

この例を、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)

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

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

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

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

R2006a より前に導入