使用FVTool进行过滤分析

这个例子展示了如何通过使用过滤器可视化工具(FVTool),一个图形用户界面,可以在信号处理工具箱™使用一个单一的数字窗口几个滤波器分析功能。

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

启动FVTool

我们要创建一个低通滤波器与0.4π弧度/样品,0.6π弧度/样品,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”,“椭球”);

使用filter对象启动FVTool,并返回FVTool的句柄,这使我们能够重用相同的FVTool图形。

hfvt = fvtool(Df1, Df2);

添加和删除过滤器

我们可以观察到,两个滤波器符合设计规范,但我们也希望看到切比雪夫Ⅱ型设计进行得怎么样。

您可以使用ADDFILTER功能的过滤器添加到FVTool。

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

要确定哪些行情节属于哪个过滤器,您可以添加使用FVTool手柄的传说功能的传奇。

传奇(hfvt“等波纹”,“椭圆”,“切比雪夫II型”);

您可以使用DELETEFILTER功能,通过过滤器(一个或多个)的索引要删除FVTool删除过滤器。

deletefilter (hfvt [1 3]);

更改分析参数

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

要查看所有可用的属性,可以使用GET命令。第一个属性是常规MATLAB®图形的属性。最后14个属性是特定于FVTool的。最后六种(从频率范围到震级)是具体分析的。

s = (hfvt);

%保存最近14种性质c = struct2cell(年代);f =字段名(年代);s = cell2struct (c (end-14:结束),f (end-14:结束),1)
S =结构体字段:标签:“filtervisualizationtool”UIContextMenu: [0 x0 GraphicsPlaceholder]用户数据:[]可见:在“FrequencyScale:“线性”OverlayedAnalysis:“NormalizeMagnitudeto1:‘离开’NumberofPoints: 8192分析:“大小”PolyphaseView:‘off’ShowReference:”“MagnitudeDisplay:“(dB)级”NormalizedFrequency:”“FrequencyVector: [1 x256双]FrequencyRange:“[0,π)”

所有可以从FVTool的Analysis parameters对话框中获得的参数也可以作为FVTool对象的属性。只有两个输入参数的SET命令返回所有可能的值。

集(hfvt,“MagnitudeDisplay”)
ans =1 x4单元阵列第1 - 3列{“星等”}{“星等(dB)”}{“星等平方”}第4列{“零相位”}

关闭显示器“幅度平方”

hfvt.MagnitudeDisplay =“平方级”;

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

集(hfvt,'分析')
ans =1×12单元阵列第1 - 5列{“星等”{“相位”}{“相位延迟”}{“相位延迟”}{“相位延迟”}}第6列到第10列{“脉冲”}{“步骤”}{“波勒零”}{“系数”}{“信息”}}第11列到第12列{“噪音”}}

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

hfvt。分析='grpdelay';

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

GroupDelayUnits = hfvt.GroupDelayUnits;

叠置两分析

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

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

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

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

hfvt。OverlayedAnalysis =;

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

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

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

轴([。3 .45 5 25]);

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

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

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

删除(htext);接近(hfvt)