ドキュメンテーション

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

zerophase

デジタル フィルターのゼロ位相応答

構文

[Hr,w] = zerophase(b,a)
[Hr,w] = zerophase(sos)
[Hr,w] = zerophase(d)
[Hr,w] = zerophase(...,nfft)
[Hr,w] = zerophase(...,nfft,'whole')
[Hr,w] = zerophase(...,w)
[Hr,f] = zerophase(...,f,fs)
[Hr,w,phi] = zerophase(...)
zerophase(...)

説明

[Hr,w] = zerophase(b,a) では、分子 b と分母 a により定義されるフィルターのゼロ位相応答 Hr、および Hr の計算に使用した周波数ベクトル w (ラジアン/サンプル単位) が返されます。a=1 の FIR フィルターの場合、このコマンドの a の値を省略できます。ゼロ位相応答は、単位円の上半分に等間隔に配置された 512 個の点で評価されます。

ゼロ位相応答 Hr(ω) は周波数応答 H(e) と次の関係があります。

H(ejω)=Hr(ω)ejφ(ω),

ここで φ(ω) は連続位相です。

    メモ:   ゼロ位相応答は常に実数になりますが、振幅応答と同じではありません。ゼロ位相応答が負になることはありますが、ゲイン応答が負になることはありません。

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

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

[Hr,w] = zerophase(...,nfft) では、単位円の上半分の nfft 個の周波数位置におけるゼロ位相応答 Hr と周波数ベクトル w (ラジアン/サンプル単位) が返されます。最適な結果を得るため、nfft をフィルター次数よりも大きい値に設定します。

[Hr,w] = zerophase(...,nfft,'whole') では、全体の単位円の nfft 個の周波数点を使用して、ゼロ位相応答 Hr と周波数ベクトル w (ラジアン/サンプル単位) が返されます。

[Hr,w] = zerophase(...,w) では、ベクトル w に含まれる周波数におけるゼロ位相応答 Hr と周波数ベクトル w (ラジアン/サンプル単位) が返されます。ベクトル w は少なくとも 2 つの要素をもたなければなりません。

[Hr,f] = zerophase(...,f,fs) では、サンプリング周波数 fs (Hz 単位) を使用して、Hr を計算する周波数ベクトル f (Hz 単位) を求め、ゼロ位相応答 Hr と周波数ベクトル f (Hz 単位) が返されます。ベクトル f は少なくとも 2 つの要素をもたなければなりません。

[Hr,w,phi] = zerophase(...) では、ゼロ位相応答 Hr、周波数ベクトル w (ラジアン/サンプル単位)、連続位相成分 phi が返されます (ゼロ位相応答が負の場合、この値はフィルターの位相応答と等しくならないことに注意してください)。

zerophase(...) では、周波数に対するゼロ位相応答がプロットされます。フィルター係数または2 次セクション型行列を入力した場合、現在の Figure ウィンドウが使用されます。digitalFilter を入力している場合、ステップ応答は fvtool で表示できます。

    メモ:   zerophase への入力が単精度の場合、ゼロ位相応答は単精度演算で計算されます。出力 Hr は単精度です。

すべて折りたたむ

designfilt を使用し、正規化されたカットオフ周波数が 0.3π ラジアン/サンプル、通過帯域リップルが 0.7 dB、阻止帯域の減衰量が 42 dB の 54 次 FIR フィルターを設計します。制約付き最小二乗法を使用します。そのゼロ位相応答を表示します。

Nf = 54;
Fc = 0.3;
Ap = 0.7;
As = 42;

d = designfilt('lowpassfir','FilterOrder',Nf,'CutoffFrequency',Fc, ...
    'PassbandRipple',Ap,'StopbandAttenuation',As,'DesignMethod','cls');
zerophase(d)

同じフィルターを、リップルと減衰量を線形単位で測定する fircls1 を使用して設計します。そのゼロ位相応答を表示します。

pAp = 10^(Ap/40);
Apl = (pAp-1)/(pAp+1);
pAs = 10^(As/20);
Asl = 1/pAs;

b = fircls1(Nf,Fc,Apl,Asl);
zerophase(b)

正規化された通過帯域周波数が 0.4π ラジアン/サンプル、通過帯域リップルが 0.5 dB、阻止帯域の減衰量が 20 dB の 10 次の楕円ローパス IIR フィルターを設計します。単位円全体を 512 個に分割する周波数点におけるフィルターのゼロ位相応答を表示します。

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

ellip を使用して同じフィルターを作成します。そのゼロ位相応答をプロットします。

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

R2006a より前に導入

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