islinphase
離散時間フィルター System object が線形位相であることの確認
説明
は、前の構文のいずれかを使用して、入力 flag
= islinphase(___,Arithmetic=arithType
)arithType
で指定された演算に基づいてフィルター System object を解析します。
その他の入力オプションについては、Signal Processing Toolbox™ の islinphase
を参照してください。
例
ウィンドウ法を使用して、正規化されたカットオフ周波数 0.55 をもつ 10 次のローパス FIR フィルターを設計します。フィルターが線形位相をもっているかどうかを確認します。
firSpecs = fdesign.lowpass('N,Fc',10,0.55); lpFIR = design(firSpecs,'window',SystemObject=true)
lpFIR = dsp.FIRFilter with properties: Structure: 'Direct form' NumeratorSource: 'Property' Numerator: [0.0036 0.0078 -0.0375 -0.0334 0.2856 0.5477 0.2856 -0.0334 -0.0375 0.0078 0.0036] InitialConditions: 0 Show all properties
flag = islinphase(lpFIR)
flag = logical
1
フィルターの位相応答をプロットし、線形であることを確認します。
[phs,w] = phasez(lpFIR); plot(w/pi,phs) xlabel('Frequency \omega/\pi') ylabel('Phase')
通常、IIR フィルターは線形位相をもっていません。これについて、バタワース、チェビシェフ、および楕円フィルターを同様の仕様で作成して確認します。通過帯域周波数を 0.35、阻止帯域周波数を 0.4、通過帯域リップルを 1 dB、阻止帯域の減衰量を 20 dB に設定します。
Wp = 0.35; Wst = 0.4; atten = 20; rippl = 1; buttSpecs = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Wst,rippl,atten); buttIIR = design(buttSpecs,'butter',SystemObject=true); chb1Specs = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Wst,rippl,atten); chb1IIR = design(chb1Specs,'cheby1',SystemObject=true); chb2Specs = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Wst,rippl,atten); chb2IIR = design(chb2Specs,'cheby2',SystemObject=true); ellpSpecs = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Wst,rippl,atten); ellpIIR = design(ellpSpecs,'ellip',SystemObject=true);
フィルターの位相応答をプロットします。線形位相をもっているかどうかを判別します。
fv = filterAnalyzer(buttIIR,chb1IIR,chb2IIR,ellpIIR,Analysis='phase'); setLegendStrings(fv,["Butterworth","Chebyshev I","Chebyshev II","Elliptic"])
phs = [islinphase(buttIIR) islinphase(chb1IIR) ...
islinphase(chb2IIR) islinphase(ellpIIR)]
phs = 1×4 logical array
0 0 0 0
入力引数
2 つの数が等しいと見なせる程度に近づく時点を判別する許容誤差の値。正のスカラーとして指定します。tol
を指定しない場合は、既定値の eps^(2/3)
が使用されます。
フィルター解析で使用される演算。'double'
、'single'
、または 'Fixed'
として指定します。演算入力が指定されず、フィルター System object がロック解除状態の場合、解析ツールは倍精度フィルターを使用します。演算入力が指定されず、System object がロックされている場合、関数はロックされた入力のデータ型に基づいて解析を実行します。
'Fixed'
値は、固定小数点プロパティのみをもつフィルター System object に適用されます。
'Arithmetic'
入力引数が 'Fixed'
として指定され、フィルター オブジェクトの係数のデータ型が 'Same word length as input'
に設定されている場合、演算解析は System object がロック解除されているかロックされているかに応じて異なります。
ロック解除 –– 解析オブジェクト関数は係数のデータ型を判断できません。関数は、係数のデータ型が符号付き、16 ビット語長、自動スケーリングであると仮定します。関数は、この仮定に基づいて固定小数点解析を実行します。
ロック –– 入力のデータ型が
'double'
または'single'
の場合、解析オブジェクト関数は係数のデータ型を判断できません。関数は、係数のデータ型が符号付き、16 ビット語長、自動スケーリングであると仮定します。関数は、この仮定に基づいて固定小数点解析を実行します。
System object がロックされているかロック解除されているかを確認するには、関数 isLocked
を使用します。
演算入力が 'Fixed'
として指定され、フィルター オブジェクトの係数のデータ型がカスタム数値型に設定されている場合、オブジェクト関数はカスタム数値データ型に基づいて固定小数点解析を実行します。
出力引数
フィルターが線形位相をもつかどうかを判別するフラグ。logical として返されます。
1
–– フィルターは線形位相をもっています。0
–– フィルターは非線形位相をもっています。
データ型: logical
バージョン履歴
R2013a で導入R2024b 以降、islinphase
解析関数は dsp.VariableFIRDecimator
オブジェクトおよび dsp.VariableFIRInterpolator
オブジェクトをサポートします。
dsp.BiquadFilter
オブジェクトは警告を発行します。また、将来のリリースでは削除される予定です。代わりに dsp.SOSFilter
オブジェクトを使用してください。既存のコードを置換する方法の詳細については、dsp.BiquadFilter
のリファレンス ページにある互換性の考慮事項のセクションを参照してください。
R2024b 以降、この関数は dsp.DCBlocker
オブジェクトをサポートします。
R2023b 以降、解析関数 islinphase
は dsp.ParallelFilter
オブジェクトおよび dsp.Delay
オブジェクトをサポートします。
dsp.BiquadFilter
オブジェクトは将来のリリースで削除される予定です。代わりに dsp.SOSFilter
オブジェクトを使用してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)