このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
fvtool
DSP フィルターの周波数応答の可視化
説明
fvtool(
は、フィルター System object™ の振幅応答を表示します。sysobj
)
fvtool(____,
は、指定の各プロパティが指定の値に設定されたフィルターの応答を可視化します。Name=Value
)
その他の入力オプションについては、Signal Processing Toolbox™ の FVTool を参照してください。
例
ハーフバンド間引きフィルターのインパルス応答と周波数応答
2 つのローパス ハーフバンド間引きフィルターを作成します。最初のフィルターの設計法が "Equiripple"
に設定され、2 番目のフィルターが "Kaiser"
に設定されます。
フィルター次数を 52 に設定します。遷移幅を正規化周波数単位で指定します。
filterspec = "Filter order and transition width"; Order = 52; TW = 0.1859; firhalfbanddecimEqui = dsp.FIRHalfbandDecimator(... NormalizedFrequency=true,... Specification=filterspec,... FilterOrder=Order,... TransitionWidth=TW,... DesignMethod="Equiripple"); firhalfbanddecimKaiser = dsp.FIRHalfbandDecimator(... NormalizedFrequency=true,...... Specification=filterspec,... FilterOrder=Order,... TransitionWidth=TW,... DesignMethod="Kaiser");
両方のフィルターのインパルス応答をプロットします。ゼロ次係数は、26 サンプル分遅延されます。これは、フィルターの群遅延と等価です。これにより、因果性ハーフバンド フィルターになります。
hfvt = fvtool(firhalfbanddecimEqui,firhalfbanddecimKaiser,... Analysis="impulse"); legend(hfvt,{'Equiripple','Kaiser'})
その振幅応答と位相応答を表示します。
フィルター仕様が厳しい場合 (フィルター次数が非常に高く、遷移幅が非常に狭い場合など)、"Kaiser"
法を使用して設計したフィルターはより効果的に収束します。
hvftMag = fvtool(firhalfbanddecimEqui,firhalfbanddecimKaiser,... Analysis="Magnitude"); legend(hvftMag,{'Equiripple','Kaiser'})
hvftPhase = fvtool(firhalfbanddecimEqui,firhalfbanddecimKaiser,... Analysis="Phase"); legend(hvftPhase,{'Equiripple','Kaiser'})
FIR および IIR ローパス フィルターのインパルス応答と周波数応答
44.1 kHz でサンプリングされるデータに対する、最小次数の FIR ローパス フィルターを作成します。8 kHz の通過帯域周波数、12 kHz の阻止帯域周波数、0.1 dB の通過帯域リップル、80 dB の阻止帯域の減衰量を指定します。
Fs = 44.1e3; filtertype = 'FIR'; Fpass = 8e3; Fstop = 12e3; Rp = 0.1; Astop = 80; FIRLPF = dsp.LowpassFilter(SampleRate=Fs,... FilterType=filtertype,... PassbandFrequency=Fpass,... StopbandFrequency=Fstop,... PassbandRipple=Rp,... StopbandAttenuation=Astop);
FIR ローパス フィルターと同じプロパティを設定した、最小次数の IIR ローパス フィルター設計します。クローンしたフィルターの FilterType
プロパティを IIR
に変更します。
IIRLPF = clone(FIRLPF);
IIRLPF.FilterType = 'IIR';
FIR ローパス フィルターのインパルス応答をプロットします。ゼロ次係数は、19 サンプル分遅延されます。これは、フィルターの群遅延と等価です。FIR ローパス フィルターは因果性 FIR フィルターです。
fvtool(FIRLPF,Analysis='impulse')
IIR ローパス フィルターのインパルス応答をプロットします。
fvtool(IIRLPF,Analysis='impulse')
FIR ローパス フィルターの振幅および位相応答をプロットします。
fvtool(FIRLPF,Analysis='freq')
IIR ローパス フィルターの振幅および位相応答をプロットします。
fvtool(IIRLPF,Analysis='freq')
FIR ローパス フィルターの実装コストを計算します。
cost(FIRLPF)
ans = struct with fields:
NumCoefficients: 39
NumStates: 38
MultiplicationsPerInputSample: 39
AdditionsPerInputSample: 38
IIR ローパス フィルターの実装コストを計算します。IIR フィルターのほうが FIR フィルターよりも効率的な実装になります。
cost(IIRLPF)
ans = struct with fields:
NumCoefficients: 18
NumStates: 14
MultiplicationsPerInputSample: 18
AdditionsPerInputSample: 14
FIR ローパス フィルターの群遅延を計算します。
grpdelay(FIRLPF)
IIR ローパス フィルターの群遅延を計算します。FIR フィルターの群遅延は一定 (線形位相) である一方、IIR の群遅延は一定ではありません。
grpdelay(IIRLPF)
入力引数
sysobj
— 入力フィルター
フィルター System object
入力フィルター。次のいずれかのフィルター System object として指定します。
例: firFilt = dsp.FIRFilter(Numerator=designLowpassFIR(FilterOrder=130, CutoffFrequency=2000/(8000/2))); fvtool(firFilt)
options
— フィルター解析オプション
'magnitude'
(既定値) | 'phase'
| 'freq'
| 'grpdelay'
| 'phasedelay'
| 'impulse'
| 'step'
| 'polezero'
| 'coefficients'
| 'info'
| 'magestimate'
| 'noisepower'
フィルター解析オプション。次のいずれかとして指定します。
'magnitude'
–– 振幅応答'phase'
–– 位相応答'freq'
–– 周波数応答'grpdelay'
–– 群遅延'phasedelay'
–– 位相遅延'impulse'
–– インパルス応答'step'
–– ステップ応答'polezero'
–– 極/零点プロット'coefficients'
–– 係数ベクトル'info'
–– フィルター情報'magestimate'
–– 振幅応答推定'noisepower'
–– ノイズ パワー スペクトルの丸め誤差
例: fvtool(firFilt,'freq')
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: firFilt = dsp.FIRFilter(Numerator=designLowpassFIR(FilterOrder=130, CutoffFrequency=2000/(8000/2))); fvtool(firFilt,Arithmetic="single")
Fs
— サンプリング レート
スカラー
サンプリング レート。スカラーとして指定します。この値により、fvtool がチャネライザーのフィルターの周波数応答を表示するナイキスト区間 [-Fs/2 Fs/2] が決まります。
データ型: single
| double
Arithmetic
— 演算型
'double'
(既定値) | 'single'
| 'Fixed'
解析で使用する演算を指定します。演算入力が指定されず、フィルター System object がロック解除状態の場合、解析ツールは倍精度フィルターであると仮定します。'Arithmetic'
プロパティを 'Fixed'
に設定した場合、固定小数点プロパティをもつフィルター System object のみに適用されます。
'Arithmetic'
プロパティを 'Fixed'
に設定すると、倍精度の参照フィルターと、フィルターの量子化されたバージョンが両方ともツールに表示されます。フィルターの量子化されたバージョンの作成には、次の 2 つを除くすべての解析オプションにおいて、それぞれのフィルター System object の CoefficientsDataType
プロパティが使用されます。
'magestimate'
–– 振幅応答推定'noisepower'
–– ノイズ パワー スペクトルの丸め誤差
この 2 つの解析オプションでは、フィルターの量子化されたバージョンを解析する際に、すべて固定小数点の設定が使用されます。
バージョン履歴
R2006a より前に導入R2023b: dsp.ParallelFilter
オブジェクトおよび dsp.Delay
オブジェクトのサポート
R2023b 以降、解析関数 fvtool
は 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)