主要内容

使用FVTool进行过滤分析

这个例子展示了如何使用filter Visualization Tool (FVTool)在单个图形窗口中使用几个filter分析函数,FVTool是Signal Processing Toolbox™中的一个图形用户界面。

FVTool也有一个应用程序接口(API),允许你从命令行与GUI交互。这使您能够将FVTool集成到其他应用程序中。

发射FVTool

我们想要创建一个低通滤波器,通频带频率为0.4π rad/sample,阻频带频率为0.6π rad/sample,通带纹波为1 dB,阻带衰减为80 dB。我们将使用信号处理工具箱的一些滤波器设计工具来设计滤波器,然后在FVTool中分析结果。

设计一个低通等纹波FIR滤波器

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);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。

添加和删除过滤器

我们可以观察到两个过滤器都符合设计规范,但我们也想看看切比雪夫II型设计的表现如何。

你可以使用ADDFILTER函数给FVTool添加一个过滤器。

Df3 = designfilt (“lowpassiir”“PassbandFrequency”, 0.4,“StopbandFrequency”, 0.6,“PassbandRipple”,1,“StopbandAttenuation”, 80,“DesignMethod”“cheby2”);addfilter (hfvt Df3);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含3个类型为line的对象。

要确定图上的哪条线属于哪个过滤器,可以使用FVTool句柄的legend函数添加图例。

传奇(hfvt“Equiripple”“椭圆”“切比雪夫II型”);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含3个类型为line的对象。这些物体代表Equiripple, Elliptic, Chebyshev Type II。

您可以使用DELETEFILTER函数从FVTool中删除过滤器,并传递您想要删除的过滤器的索引。

deletefilter (hfvt [1 3]);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含一个类型为line的对象。这个对象代表椭圆。

更改分析参数

FVTool返回的句柄包含允许您与筛选器和当前分析进行交互的属性。

要查看所有可用属性,可以使用GET命令。第一个属性是规则的MATLAB®图形。最后14个属性是FVTool特定的。最后六个(从FrequencyScale到magnitdisplay)是特定于分析的。

s = (hfvt);

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含一个类型为line的对象。这个对象代表椭圆。

%保留最后14个属性c = struct2cell(年代);f =字段名(年代);s = cell2struct (c (end-14:结束),f (end-14:结束),1)
s =结构体字段:SelectionHighlight:标签:“filtervisualizationtool”用户数据:[]可见:MagnitudeDisplay:“(dB)级”NumberofPoints: 8192 NormalizeMagnitudeto1:‘off’NormalizedFrequency:”“FrequencyScale:“线性”分析:“大小”FrequencyRange:“[0,π)”FrequencyVector:[0 0.0039 0.0078 0.0118 0.0157 0.0196 0.0235……多相视图:“关闭”叠加分析:“ShowReference:“打开”

所有在FVTool的分析参数对话框中可用的参数也可以作为FVTool对象的属性。只有两个输入参数的SET命令返回所有可能的值。

集(hfvt,“MagnitudeDisplay”)
ans =1 x4单元格第1至3列{'幅值'}{'幅值(dB)'}{'幅值平方'}第4列{'零相位'}

将显示器显示为“星等平方”

hfvt。MagnitudeDisplay =“平方级”

图形过滤器可视化工具-幅度响应(平方)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(平方)”的轴对象包含一个类型为线的对象。这个对象代表椭圆。

获取“Analysis”属性的所有可能值

集(hfvt,“分析”)
ans =1 x12单元格第6列到第10列{'impulse'} {'step'} {'polezero'} {'coefficients'} {'info'} 11列到第12列{'magestimate'} {'noisepower'}

现在让我们改变分析,看看滤波器的组延迟响应。

hfvt。分析=“grpdelay”

图形过滤可视化工具-组延迟包含一个轴对象和其他类型的uitoolbar, uimenu对象。具有标题组延迟的axis对象包含一个类型为line的对象。这个对象代表椭圆。

GET命令将为新的分析返回新的分析参数。

GroupDelayUnits = hfvt.GroupDelayUnits;

覆盖两个分析

我们还想看看群延迟和幅度响应在频域是如何重叠的。

通过设置“OverlayedAnalysis”属性,你可以在FVTool中覆盖任何两个共享x轴(时间或频率)的分析。

集(hfvt,“OverlayedAnalysis”“级”“传奇”“上”)

图形过滤器可视化工具-组延迟和幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“组延迟和幅度响应(dB)”的轴对象包含一个类型为线的对象。该节点表示Elliptic:组延迟。

要关闭叠加分析,只需将“OverlayedAnalysis”属性设置为“”。

hfvt。OverlayedAnalysis =

图形过滤可视化工具-组延迟包含一个轴对象和其他类型的uitoolbar, uimenu对象。具有标题组延迟的axis对象包含一个类型为line的对象。这个对象代表椭圆。

与FVTool交互,就像一个图形窗口

FVTool窗口也可以像普通图形窗口一样进行注释。

FVTool图形表现为一个普通的图形窗口。这允许您使用MATLAB的网格和轴函数。

网格轴([。3.45 5 25]);

图形过滤可视化工具-组延迟包含一个轴对象和其他类型的uitoolbar, uimenu对象。具有标题组延迟的axis对象包含一个类型为line的对象。这个对象代表椭圆。

轴也可以从命令行访问。这允许您更改标题和标签。

标题(椭圆滤波器的群延迟);包含('频率(归一化为1)');ylabel (“样本中的群延迟”);文本(htext =。35岁,23岁,最大的群延迟的);

图形过滤可视化工具-组延迟包含一个轴对象和其他类型的uitoolbar, uimenu对象。椭圆滤波器的标题组延迟轴对象包含两个类型为line、text的对象。这个对象代表椭圆。

FVTool不会自动从你的分析中删除额外的注释,你可以通过删除句柄本身来实现。你可以通过调用FVTool句柄上的close函数来关闭FVTool图形。

删除(htext);关上(hfvt)

另请参阅

|