メインコンテンツ

phasez

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

説明

[phi,w] = phasez(b,a,n) は、指定されたデジタル フィルターの位相応答を返します。分子係数 b と分母係数 a をもつデジタル フィルターを指定します。この関数は、n 点位相応答ベクトルを phi で返し、対応する角周波数ベクトルを w で返します。

[phi,w] = phasez(B,A,"ctf",n) は、分子係数 B と分母係数 A をもつCascaded Transfer Functions (CTF) として表されるデジタル フィルターの n 点位相応答を返します。 (R2024b 以降)

[phi,w] = phasez({B,A,g},"ctf",n) は、デジタル フィルターの n 点位相応答を CTF 形式で返します。分子係数 B、分母係数 A、およびフィルター セクション全体のスケーリング値 g を使用してフィルターを指定します。 (R2024b 以降)

[phi,w] = phasez(d,n) では、デジタル フィルター d に対し、n 点の位相応答が返されます。

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

[phi,w] = phasez(___,n,"whole") は、単位円全体を n 個に分割するサンプル点の位相応答を返します。この構文には、前の構文の入力引数を任意に組み合わせて含めることができます。

[phi,f] = phasez(___,n,fs) では、周波数ベクトルが返されます。

phi = phasez(___,f,fs) では、f で提供される物理周波数で評価された位相応答ベクトル phi が返されます。この構文には、前の構文の入力引数を任意に組み合わせて含めることができます。

phi = phasez(___,w) では、w で指定された周波数におけるアンラップされた位相応答がラジアン単位で返されます。

出力引数なしで phasez(___) を使用すると、フィルターの位相応答がプロットされます。

すべて折りたたむ

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

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

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

Figure contains an axes object. The axes object with title Phase Response, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Phase (radians) contains an object of type line.

fircls1 を使用して同じフィルターを設計します。fircls1 では、リップルと減衰量が線形単位で測定されることに注意してください。

pAp = 10^(Ap/40);
Apl = (pAp-1)/(pAp+1);

pAs = 10^(As/20);
Asl = 1/pAs;

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

Figure contains an axes object. The axes object with title Phase Response, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Phase (radians) contains an object of type line.

正規化された通過帯域周波数 0.45π rad/s、正規化された阻止帯域周波数 0.55π rad/s、通過帯域リップル 1 dB、阻止帯域の減衰量 60 dB をもつローパス等リップル フィルターを設計します。フィルターの位相応答を表示します。

d = designfilt('lowpassfir', ...
               'PassbandFrequency',0.45,'StopbandFrequency',0.55, ...
               'PassbandRipple',1,'StopbandAttenuation',60, ...
               'DesignMethod','equiripple');
phasez(d)

Figure contains an axes object. The axes object with title Phase Response, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Phase (radians) contains an object of type line.

正規化された通過帯域周波数 0.4π rad/s、正規化された阻止帯域周波数 0.5π rad/s、通過帯域リップル 1 dB、阻止帯域の減衰量 60 dB をもつ楕円ローパス IIR フィルターを設計します。フィルターの位相応答を表示します。

d = designfilt('lowpassiir', ...
               'PassbandFrequency',0.4,'StopbandFrequency',0.5, ...
               'PassbandRipple',1,'StopbandAttenuation',60, ...
               'DesignMethod','ellip');
phasez(d)

Figure contains an axes object. The axes object with title Phase Response, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Phase (radians) contains an object of type line.

R2024b 以降

阻止帯域エッジ周波数が 0.4、阻止帯域の減衰量が 50 dB の 40 次ローパス チェビシェフ II 型デジタル フィルターを設計します。CTF 形式の係数を使用して、フィルターの位相応答をプロットします。

[B,A] = cheby2(40,50,0.4,"ctf");

phasez(B,A,"ctf")

Figure contains an axes object. The axes object with title Phase Response, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Phase (radians) contains an object of type line.

通過帯域エッジ周波数が 0.3 と 0.7、通過帯域リップルが 0.1 dB、阻止帯域の減衰量が 50 dB の 30 次バンドパス楕円デジタル フィルターを設計します。CTF 形式の係数とゲインを使用して、フィルターの位相応答をプロットします。

[B,A,g] = ellip(30,0.1,50,[0.3 0.7],"ctf");

phasez({B,A,g},"ctf")

Figure contains an axes object. The axes object with title Phase Response, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Phase (radians) contains an object of type line.

入力引数

すべて折りたたむ

伝達関数の係数。ベクトルで指定します。ba によるこの伝達関数式は次になります。

H(z)=B(z)A(z)=b1+b2z1+bnz(n1)+bn+1zna1+a2z1+amz(m1)+am+1zm

例: b = [1 3 3 1]/6a = [3 0 1 0]/3 は、正規化された 3 dB の周波数 0.5π ラジアン/サンプルをもつ 3 次のバタワース フィルターを指定します。

データ型: double | single
複素数のサポート: あり

応答を求める周波数点の数。2 以上の正の整数スカラーとして指定します。n がない場合の既定値は 512 です。最適な結果を得るため、n をフィルター次数よりも大きい値に設定します。

R2024b 以降

カスケード伝達関数 (CTF) 係数。スカラー、ベクトル、または行列として指定します。BA は、それぞれカスケード伝達関数の分子係数と分母係数をリストします。

B のサイズは L 行 (m + 1) 列、A のサイズは L 行 (n + 1) でなければなりません。ここで、

  • L はフィルター セクションの数を表します。

  • m はフィルターの分子の次数を表します。

  • n はフィルターの分母の次数を表します。

カスケード伝達関数の形式と係数行列の詳細については、CTF 形式によるデジタル フィルターの指定を参照してください。

メモ

A(:,1) のいずれかの要素が 1 と等しくない場合、phasez はフィルター係数を A(:,1) で正規化します。この場合、A(:,1) はゼロ以外でなければなりません。

データ型: double | single
複素数のサポート: あり

R2024b 以降

スケール値。実数値のスカラー、または L + 1 個の要素をもつ実数値のベクトルとして指定します。ここで、L は CTF セクションの数です。スケール値は、カスケード フィルター表現のセクション全体にわたるフィルター ゲインの分布を表します。

phasez 関数は、g の指定方法に応じて、scaleFilterSections 関数を使用してフィルター セクションにゲインを適用します。

  • スカラー — この関数は、すべてのフィルター セクションにわたってゲインを均一に配分します。

  • ベクトル — この関数は、最初の L 個のゲイン値を対応するフィルター セクションに適用し、最後のゲイン値をすべてのフィルター セクションに均一に配分します。

データ型: double | single

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

例: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) は、正規化された 3 dB の周波数 0.5π ラジアン/サンプルをもつ 3 次のバタワース フィルターを指定します。

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

例: s = [2 4 2 6 0 2;3 3 0 6 0 0] は、正規化された 3 dB の周波数 0.5π ラジアン/サンプルをもつ 3 次のバタワース フィルターを指定します。

データ型: double | single
複素数のサポート: あり

サンプル レート。正のスカラーで指定します。時間の単位が秒の場合、fs は Hz で表されます。

データ型: double

角周波数。ラジアン/サンプル単位のベクトルとして指定します。w は少なくとも 2 つの要素をもたなければなりません。そうでない場合は関数が n として解釈するためです。w = π はナイキスト周波数に相当します。

周波数。ベクトルとして指定します。f は少なくとも 2 つの要素をもたなければなりません。そうでない場合は、関数が n として解釈するためです。時間の単位が秒の場合、f は Hz で表されます。

データ型: double

出力引数

すべて折りたたむ

位相応答。ベクトルとして返されます。n を指定している場合は、phi の長さは n になります。n を指定していないか、n を空ベクトルとして指定している場合、phi の長さは 512 になります。

phasez への入力が単精度の場合、関数によって位相応答が単精度演算で計算されます。出力 phi は単精度です。

ベクトルとして返される角周波数。w は 0 ~π の値を取ります。入力に 'whole' を指定すると、w の値の範囲は 0 ~ 2π になります。n を指定している場合は、w の長さは n になります。n を指定していないか、n を空ベクトルとして指定している場合には、w の長さは 512 になります。

Hz 表記のベクトルとして返される周波数。f は 0 ~ fs/2 Hz の値を取ります。入力に 'whole' を指定している場合、f の値の範囲は 0 ~ fs Hz になります。n を指定している場合は、f の長さは n になります。n を指定していないか、n を空ベクトルとして指定している場合には、f の長さは 512 になります。

詳細

すべて折りたたむ

ヒント

  • スケーリング ゲインを含むフィルターを CTF 形式で取得できます。buttercheby1cheby2ellip などのデジタル IIR フィルター設計関数の出力を使用します。これらの関数で、"ctf" フィルタータイプ引数を指定し、スケール値を取得するために BAg を返すように指定します。 (R2024b 以降)

参照

[1] Lyons, Richard G. Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall, 2004.

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する