fvtool
DSP フィルターの周波数応答の可視化
説明
fvtool(
は、フィルター System object™ の振幅応答を表示します。sysobj
)
fvtool(____,
は、指定の各プロパティが指定の値に設定されたフィルターの応答を可視化します。Name,Value
)
その他の入力オプションについては、Signal Processing Toolbox™ の FVTool を参照してください。
例
ハーフバンド間引きフィルターのインパルス応答と周波数応答
44.1 kHz でサンプリングされるデータに対する、2 つのローパス ハーフバンド間引きフィルターを作成します。最初のフィルターの設計法が "Equiripple"
に設定され、2 番目のフィルターが "Kaiser"
に設定されます。
出力データ レートは入力サンプル レートの 1/2、つまり 22.05 kHz です。フィルター次数を 52 に設定し、4.1 kHz の遷移幅を指定します。
Fs = 44.1e3; filterspec = "Filter order and transition width"; Order = 52; TW = 4.1e3; firhalfbanddecimEqui = dsp.FIRHalfbandDecimator(... Specification=filterspec,... FilterOrder=Order,... TransitionWidth=TW,... DesignMethod="Equiripple",... SampleRate=Fs); firhalfbanddecimKaiser = dsp.FIRHalfbandDecimator(... Specification=filterspec,... FilterOrder=Order,... TransitionWidth=TW,... DesignMethod="Kaiser",... SampleRate=Fs);
両方のフィルターのインパルス応答をプロットします。ゼロ次係数は、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', fir1(130, 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', fir1(130, 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 より前に導入
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)