このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 Use get to 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 = fvtool(buttIIR,chb1IIR,chb2IIR,ellpIIR,Analysis='phase'); legend(fv,'Butterworth','Chebyshev I','Chebyshev II','Elliptic')
phs = [islinphase(buttIIR) islinphase(chb1IIR) ...
islinphase(chb2IIR) islinphase(ellpIIR)]
phs = 1x4 logical array
0 0 0 0
入力引数
sysobj
— フィルター System object
フィルター System object
入力フィルター。次のいずれかのフィルター System object として指定します。
tol
— 許容誤差の値
eps^(2/3)
(既定値) | 正のスカラー
2 つの数が等しいと見なせる程度に近づく時点を判別する許容誤差の値。正のスカラーとして指定します。tol
を指定しない場合は、既定値の eps^(2/3)
が使用されます。
arithType
— 演算型
'double'
(既定値) | 'single'
| 'Fixed'
フィルター解析で使用される演算。'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'
として指定され、フィルター オブジェクトの係数のデータ型がカスタム数値型に設定されている場合、オブジェクト関数はカスタム数値データ型に基づいて固定小数点解析を実行します。
出力引数
flag
— フィルターが線形位相をもつかどうかを判別するフラグ
true
または 1
| false
または 0
フィルターが線形位相をもつかどうかを判別するフラグ。logical として返されます。
1
–– フィルターは線形位相をもっています。0
–– フィルターは非線形位相をもっています。
データ型: logical
バージョン履歴
R2013a で導入R2023b: dsp.ParallelFilter
オブジェクトおよび dsp.Delay
オブジェクトのサポート
R2023b 以降、解析関数 islinphase
は dsp.ParallelFilter
オブジェクトおよび dsp.Delay
オブジェクトをサポートします。
R2023b: dsp.BiquadFilter
オブジェクトは削除予定
dsp.BiquadFilter
オブジェクトは将来のリリースで削除される予定です。代わりに dsp.SOSFilter
オブジェクトを使用してください。既存のコードを置換する方法の詳細については、dsp.BiquadFilter
のリファレンス ページにある「互換性の考慮事項」のセクションを参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)