ドキュメンテーション

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

grpdelay

平均フィルター遅延 (群遅延)

構文

[gd,w] = grpdelay(b,a)
[gd,w] = grpdelay(b,a,n)
[gd,w] = grpdelay(sos,n)
[gd,w] = grpdelay(d,n)
[gd,f] = grpdelay(...,n,fs)
[gd,w] = grpdelay(...,n,'whole')
[gd,f] = grpdelay(...,n,'whole',fs)
gd = grpdelay(...,w)
gd = grpdelay(...,f,fs)
grpdelay(...)

説明

[gd,w] = grpdelay(b,a) では、入力ベクトル ba で指定される離散時間フィルターの群遅延応答 gd が返されます。各入力ベクトルは、z-1 の多項式における分子の係数 b と分母の係数 a です。離散時間フィルターの Z 変換は次のようになります。

H(z)=B(z)A(z)=l=0N1b(n+1)zll=0M1a(l+1)zl,

フィルターの群遅延応答は区間 [0,π) にある単位円上の 512 個の等間隔の点で評価されます。単位円上の評価点は w で返されます。

[gd,w] = grpdelay(b,a,n) では、区間 [0,π) にある単位円上の n 個の等間隔の点で評価された離散時間フィルターの群遅延応答が返されます。n は正の整数です。最適な結果を得るため、n をフィルター次数よりも大きい値に設定します。

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

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

[gd,f] = grpdelay(...,n,fs) では正のサンプリング周波数 fs (Hz 単位) が使用されます。これにより、群遅延応答が評価される Hz の周波数点を含む、長さ n のベクトル f が返されます。f は、0 ~ fs/2 間の n 点を含みます。

[gd,w] = grpdelay(...,n,'whole')[gd,f] = grpdelay(...,n,'whole',fs) では、単位円全体 (0 ~ 2 π または 0 ~ fs 間) の n 点が使用されます。

gd = grpdelay(...,w)gd = grpdelay(...,f,fs) では、それぞれ w (ラジアン/サンプル) または f (サイクル/単位時間) の角周波数で計算した群遅延応答が返されます。ここで、fs はサンプリング周波数です。wf は少なくとも 2 つの要素をもつベクトルです。

出力引数なしで grpdelay(...) を使用すると、群遅延応答と周波数が対比されてプロットされます。

grpdelay は、実数および複素数の両方のフィルターに使用できます。

    メモ:   grpdelay への入力が単精度の場合、群遅延は単精度演算で計算されます。出力 gd は単精度です。

すべて折りたたむ

正規化された 3 dB の周波数 $0.2\pi$ ラジアン/サンプルをもつ次数 6 のバタワース フィルターを設計します。grpdelay を使用して群遅延を表示します。

[z,p,k] = butter(6,0.2);
sos = zp2sos(z,p,k);
grpdelay(sos,128)

同じ Figure 内で、システムの群遅延と位相遅延をプロットします。

gd = grpdelay(sos,512);
[h,w] = freqz(sos,512);
pd = -unwrap(angle(h))./w;
plot(w/pi,gd,w/pi,pd), grid
xlabel 'Normalized Frequency (\times\pi rad/sample)'
ylabel 'Group and phase delays'
legend('Group delay','Phase delay')

designfilt を使用して、正規化された 3 dB の周波数 $0.2\pi$ ラジアン/サンプルをもつ 6 次のバタワース フィルターを設計します。その群遅延応答を表示します。

d = designfilt('lowpassiir','FilterOrder',6, ...
    'HalfPowerFrequency',0.2,'DesignMethod','butter');
grpdelay(d)

詳細

すべて折りたたむ

群遅延

フィルターの "群遅延応答" とは、フィルターの平均の遅延を周波数の関数として表したものです。これは、フィルターの位相応答の 1 次導関数に負の符号を付けたものです。フィルターの周波数応答が H(e) の場合、群遅延は以下になります。

τg(ω)=dθ(ω)dω

ここで、θ(ω) は H(e) の位相、つまり引数です。

アルゴリズム

grpdelay では、フィルター係数が単位ランプで乗算されます。フーリエ変換後は、この処理は微分に対応します。

R2006a より前に導入

この情報は役に立ちましたか?