此示例说明如何通过滤波器可视化工具 (FVTool) 在单个图窗窗口中使用多个滤波器分析函数,Fvtool 是 Signal Processing Toolbox™ 中提供的一个图形用户界面。

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

启动 FVTool

我们希望创建一个低通滤波器,其通带频率为 0.4π 弧度/采样点、阻带频率为 0.6π 弧度/采样点、通带波纹为 1 dB、阻带衰减为 80 dB。我们将使用 Signal Processing Toolbox 的一些滤波器设计工具来设计滤波器,然后在 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 图窗。

hfvt = fvtool(Df1, Df2);

如图所示:

添加和删除滤波器

我们可以观察到两个滤波器都符合设计规范,但仍需要查看 Chebyshev II 类设计的性能如何。

可以使用 ADDFILTER 函数向 FVTool 添加滤波器。

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

如图所示:

要识别绘图上的哪条线属于哪个滤波器,可以使用 FVTool 句柄的 LEGEND 函数添加图例。

legend(hfvt, 'Equiripple', 'Elliptic', 'Chebyshev Type II');

如图所示:

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

deletefilter(hfvt, [1 3]);

如图所示:

更改分析参数

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

要查看所有可用的属性,可以使用 GET 命令。前几个属性是常规 MATLAB® 图窗的属性。最后 14 个属性是特定于 FVTool 的属性。其中最后六个(从 FrequencyScale 到 MagnitudeDisplay)是特定于分析的属性。

s = get(hfvt);

如图所示:

% Keep the last 14 properties
c = struct2cell(s);
f = fieldnames(s);
s = cell2struct(c(end-14:end),f(end-14:end),1)s = struct with fields:SelectionHighlight: onTag: 'filtervisualizationtool'UserData: []Visible: onNumberofPoints: 8192FrequencyVector: [0 0.0039 0.0078 0.0118 0.0157 0.0196 0.0235 ... ]NormalizeMagnitudeto1: 'off'NormalizedFrequency: 'on'MagnitudeDisplay: 'Magnitude (dB)'PolyphaseView: 'off'FrequencyScale: 'Linear'Analysis: 'magnitude'OverlayedAnalysis: ''FrequencyRange: '[0, pi)'ShowReference: 'on'

所有可从 FVTool 的“分析参数”对话框获得的参数也可用作 FVTool 对象的属性。只带两个输入参数的 SET 命令返回所有可能的值。

set(hfvt, 'MagnitudeDisplay')ans = 1x4 cellColumns 1 through 3{'Magnitude'}    {'Magnitude (dB)'}    {'Magnitude squared'}Column 4{'Zero-phase'}

将显示转至 'Magnitude Squared'

hfvt.MagnitudeDisplay = 'Magnitude Squared';

如图所示:

获取 'Analysis' 属性的所有可能值

set(hfvt, 'Analysis')ans = 1x12 cellColumns 1 through 5{'magnitude'}    {'phase'}    {'freq'}    {'grpdelay'}    {'phasedelay'}Columns 6 through 10{'impulse'}    {'step'}    {'polezero'}    {'coefficients'}    {'info'}Columns 11 through 12{'magestimate'}    {'noisepower'}

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

hfvt.Analysis = 'grpdelay';

如图所示:

GET 命令将返回新的分析参数以进行新的分析。

GroupDelayUnits = hfvt.GroupDelayUnits;

重叠两个分析

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

通过设置 'OverlayedAnalysis' 属性,可以在 FVTool 中重叠共用一个 x 轴(时间或频率)的任意两个分析。

set(hfvt, 'OverlayedAnalysis', 'magnitude', 'Legend', 'On')

如图所示:

要关闭重叠的分析,只需将 'OverlayedAnalysis' 属性设置为 ''。

hfvt.OverlayedAnalysis = '';

如图所示:

将 FVTool 视为图窗窗口进行交互

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

FVTool 图窗的行为与普通图窗窗口一样。这允许使用 MATLAB 的 grid 和 axis 函数。

grid on
axis([.3 .45 5 25]);

如图所示:

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

title('Group Delay of an Elliptic filter');
xlabel('Frequency (normalized to 1)');
ylabel('Group Delay in samples');htext = text(.35, 23, 'Maximum Group Delay');

如图所示:

FVTool 不会自动从分析中删除附加注释,可以通过删除句柄本身来实现这一点。可以通过对 FVTool 句柄调用 close 函数来关闭 FVTool 图窗。

delete(htext);
close(hfvt)

使用 FVTool 进行滤波器分析相关推荐

  1. matlab fvtool参数,使用 FVTool 进行滤波器分析

    启动 FVTool 我们希望创建一个低通滤波器,其通带频率为 0.4π 弧度/采样点.阻带频率为 0.6π 弧度/采样点.通带波纹为 1 dB.阻带衰减为 80 dB.我们将使用 Signal Pro ...

  2. matlab幅度归一化,Matlab fvtool滤波器频响的幅度显示归一化

    fircoe = [0.018641, 0.018275,-0.020377,-0.071243,-0.049673,... 0.094562, 0.28841, 0.37949, 0.28841,  ...

  3. Matlab滤波器的verilog实现,FIR滤波器的Verilog实现

    设计总结 FIR简介 用Verilog实现FIR需要注意的问题? 2.1 浮点数和定点数之间的转换 2.2 利用FilterDesigner设计FIR 2.3 Matlab仿真分析 2.4 补码问题 ...

  4. 高斯滤波器是低通还是高通_经典模拟滤波器仍值得研究吗?

    对于大多数的电路和系统来说,使用电感器.电容器和电阻器的模拟滤波器至关重要.无论是被动还是主动设计,透过具有高难度数学的理论结构.实际的「应用说明」(application note)设计与物料清单( ...

  5. 全球及中国手机SAW滤波器行业供需现状及盈利前景预测报告(新版)2022-2027

    全球及中国手机SAW滤波器行业供需现状及盈利前景预测报告(新版)2022-2027 ================================================ [报告编号]: B ...

  6. 【信号分析之心电信号处理】

    信号分析之心电信号处理 任选下面的一组数据,利用自适应滤波中LMS和RLS方法进行处理,分析不同阶数.步长及指数加权因子对滤波结果的影响.同时给出迭代次数与滤波器系数,迭代次数与均方误差之间的关系曲线 ...

  7. fvtool幅度归一化

      我们在用matlab设计滤波器后,可以用fvtool来看滤波器的频响,比如我们有了滤波器的系数后,直接用fvtool. fircoe = [0.018641, 0.018275,-0.020377 ...

  8. 2021-2027全球与中国EMI/EMC滤波器市场现状及未来发展趋势

    本报告研究全球与中国市场EMI/EMC滤波器的产能.产量.销量.销售额.价格及未来趋势.重点分析全球与中国市场的主要厂商产品特点.产品规格.价格.销量.销售收入及全球和中国市场主要生产商的市场份额.历 ...

  9. EMI滤波器的matlab仿真,开关电源EMI滤波器的仿真设计

    目前,在我国绝大多数工程设计中,尤其是在设计初期,很少考虑设备内部电路对内以及对外的电磁干扰问题,致使许多电力电子装置性能都不能得到理想效果.往往是问题出现了才去寻找原因与解决方法,这既耗时又耗力,而 ...

最新文章

  1. Docker火遍全球!Docker(Inc)这家公司却要死了???
  2. insert 语句常见问题
  3. Paypal IPN
  4. 简单Linux C线程池
  5. 小学期学习记录(一)
  6. 自学成才翁_仅因为您是自学成才,并不意味着您必须独自学习。
  7. pandas 判断是否等于nan_Python之pandas笔记
  8. lpc2000 filash utility 程序烧写工具_重点必看 | 取证小程序开发之第四届美亚杯硬盘信息快速解题...
  9. delphi 实现最小化系统托盘
  10. NokiaE6 java_全键盘塞班Anna手机 诺基亚E6详细评测
  11. 3D建模和渲染的硬件配置怎么选?这里有答案
  12. 2021年声纹识别研究与应用学术研讨会笔记
  13. ubuntu下 分辨率设置
  14. C语言图片变黑白,用c语言把bmp格式的彩色图片转换成黑白的
  15. 洛谷P1359租用游艇
  16. 【Ruby on Rails全栈课程】4.3 评论功能实现(二)--创建帖子详情页面
  17. CnOpenData中国小区及二手房交易数据简介
  18. Fanuc机器人配置伺服焊枪完整步骤
  19. mysql 事务隔离界别_MySQL数据库事务隔离级别(Transaction Isolation Level)
  20. 营销CRM软件(销售管理工具)让客户都成为回头客

热门文章

  1. 无需正版我的世界服务器IP,我的世界1.7.10永恒服务器
  2. 数字档案馆建设指南及档案业务系统归档接口规范
  3. [乱七八糟]沉默是金
  4. 利用机器学习拟合复杂函数,并利用遗传算法求最优解
  5. 【Flask框架】一. Flask框架初体验(配置环境 + 简单demo样例)
  6. 商业虚拟专用网络技术十一 MPLS转发
  7. HTC-VIVE如何实现瞬移和替换手柄模型
  8. VScode 侧栏的资源管理器字体太小,怎么设置?
  9. transient 关键字
  10. python累计积_累积分布函数(cumulative distribution function)