このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例は、信号处理工具箱™で利用可能なグラフィカルユーザーインターフェイスである,フィルターの可視化ツール(FVTool)によって,いくつかのフィルター解析関数を1つの图ウィンドウで利用する方法を示します。
FVToolは应用程序编程接口(API)をもち,これがコマンドラインからのGUIとの対話を可能にしています。これにより,FVToolと他のアプリケーションの統合が可能になります。
通過帯域周波数0.4πラジアン/サンプル,阻止帯域周波数0.6πラジアン/サンプル,通過帯域リップル1 dB,阻止帯域の減衰量80分贝をもつローパスフィルターを作成します。ここでは,いくつかの信号处理工具箱のフィルター設計ツールを使用してフィルターを設計し,結果をFVToolで解析します。
ローパス等リップル冷杉フィルターを設計します。
Df1 = designfilt (“lowpassfir”,“PassbandFrequency”, 0.4,...“StopbandFrequency”, 0.6,...“PassbandRipple”,1,...“StopbandAttenuation”, 80,...“DesignMethod”,“equiripple”);
ローパス楕円IIRフィルターを設計します。
Df2 = designfilt (“lowpassiir”,“PassbandFrequency”, 0.4,...“StopbandFrequency”, 0.6,...“PassbandRipple”,1,...“StopbandAttenuation”, 80,...“DesignMethod”,“ellip”);
フィルターオブジェクトを使用してFVToolを起動し,ハンドルをFVToolに返すことで,同じFVTool图を再使用できます。
drawtext (Df1, Df2);
両方のフィルターが設計仕様を満たしているかが確認できますが,また,チェビシェフII型設計がどの程度正しく動作するかも確認します。
フィルターをFVToolに追加するには,関数ADDFILTERを使用します。
Df3 = designfilt (“lowpassiir”,“PassbandFrequency”, 0.4,...“StopbandFrequency”, 0.6,...“PassbandRipple”,1,...“StopbandAttenuation”, 80,...“DesignMethod”,“cheby2”);addfilter (hfvt Df3);
プロット上のどの線がどのフィルターに属しているかを識別できるように,FVToolハンドルの関数传说で凡例を追加できます。
传奇(hfvt“Equiripple”,“椭圆”,“切比雪夫II型”);
FVToolからフィルターを削除するには,関数DELETEFILTERを使用して,削除するフィルターのインデックスを渡します。
deletefilter (hfvt [1 3]);
FVToolによって返されるハンドルには,フィルターと現在の解析の両方を操作するためのプロパティが含まれています。
使用可能なすべてのプロパティを確認するには,得到コマンドを使用します。最初のプロパティは,通常のMATLAB®图のプロパティです。残りの14個のプロパティはFVToolに固有のプロパティです。その中の6個のプロパティ(FrequencyScaleからMagnitudeDisplayまで)は解析に固有のプロパティです。
s = (hfvt);
%保留最后14个属性c = struct2cell(年代);f =字段名(年代);s = cell2struct (c (end-14:结束),f (end-14:结束),1)
s =结构体字段:SelectionHighlight:标签:“filtervisualizationtool”用户数据:[]可见:MagnitudeDisplay:“(dB)级”FrequencyScale:“线性”NumberofPoints: 8192 NormalizeMagnitudeto1:‘off’NormalizedFrequency:”“FrequencyVector: [1 x256双]PolyphaseView:“off”分析:“大小”OverlayedAnalysis:“ShowReference:”“FrequencyRange:“[0,π)”
FVToolの[解析パラメーター]ダイアログで使用可能なパラメーターはすべて,FVToolオブジェクトのプロパティとしても使用可能です。2组コマンドをつの入力引数と一緒に使用すると,すべての可能な値を返します。
集(hfvt,“MagnitudeDisplay”)
ans =1 x4单元格第1至3列{'幅值'}{'幅值(dB)'}{'幅值平方'}第4列{'零相位'}
表示を平方级的にします。
hfvt。MagnitudeDisplay =“平方级”;
“分析”プロパティのすべての可能な値を取得します。
集(hfvt,“分析”)
ans =1 x12单元格第6列到第10列{'impulse'} {'step'} {'polezero'} {'coefficients'} {'info'} 11列到第12列{'magestimate'} {'noisepower'}
次に解析を変更して,フィルターの群遅延応答を見てみましょう。
hfvt。分析=“grpdelay”;
得到コマンドは,新しい解析用の新しい解析パラメーターを返します。
GroupDelayUnits = hfvt.GroupDelayUnits;
ここでは,群遅延と振幅応答が周波数領域でどのように重なるのかを確認します。
FVToolで共通のx軸(時間または周波数)を共有する2つの解析を重ね描きするには,‘OverlayedAnalysisプロパティを設定します。
集(hfvt,“OverlayedAnalysis”,“级”,“传奇”,“上”)
重ね描きした解析をオフにするには,次のように‘OverlayedAnalysisプロパティを設定します。
hfvt。OverlayedAnalysis ='';
FVToolウィンドウは,通常の图ウィンドウと同様に注釈を付けることもできます。
FVTool图は通常の图ウィンドウと同様に動作します。これによって,MATLABの関数网格と関数轴を使用できます。
网格在轴([。3.45 5 25]);
関数轴は,コマンドラインからもアクセスできます。これによってタイトルとラベルを変更できます。
标题(椭圆滤波器的群延迟);包含('频率(归一化为1)');ylabel (“样本中的群延迟”);文本(htext =。35岁,23岁,最大的群延迟的);
FVToolでは,追加された注釈は解析から自動的には削除されません。削除はハンドル自体の削除によって行われます。FVToolFigure を閉じるには、FVTool ハンドル上で関数 close を呼び出します。
删除(htext);关上(hfvt)