滤波器设计工具简介

news2024/10/6 14:38:18

目录

快速入门

设计滤波器

查看其他分析

更改轴单位

标记数据点

优化设计

更改分析参数

导出滤波器

生成 MATLAB 文件

量化滤波器

目标

其他功能


        此示例说明如何使用方便的滤波器设计工具替代命令行滤波器设计函数。

        滤波器设计工具是 Signal Processing Toolbox™ 中一个功能强大的图形用户界面 (GUI),用于设计和分析滤波器。

        滤波器设计工具使能够通过设置滤波器性能设定、从 MATLAB® 工作区导入滤波器或通过添加、移动或删除极点和零点来快速设计数字 FIR 或 IIR 滤波器。滤波器设计工具还提供用于分析滤波器的工具,例如幅值和相位响应图以及零极点图。

快速入门

        在 MATLAB 命令提示符下键入 filterDesigner:

>> filterDesigner

        将显示每日提示对话框,其中包含使用滤波器设计工具的建议。然后,GUI 显示默认滤波器。

GUI 有三个主要区域:

  • “当前滤波器信息”区域

  • “滤波器显示”区域

  • “设计”面板

        GUI 的上半部分显示当前滤波器的滤波器设定和响应信息。左上角的“当前滤波器信息”区域显示滤波器属性,即滤波器结构、阶、使用的节数以及滤波器是否稳定。还可以通过它访问滤波器管理器以处理多个滤波器。

        右上角的“滤波器显示”区域显示各种滤波器响应,如幅值响应、群延迟和滤波器系数。

        GUI 的下半部分是滤波器设计工具的交互部分。下半部分中的“设计”面板用于对滤波器进行设定。它控制两个上部区域中显示的内容。使用边栏按钮可以在下半部分中显示其他面板。

        该工具包括快捷帮助。可以右键单击或点击这是什么? 按钮以获取关于该工具不同部分的信息。

设计滤波器

        我们将设计一个低通滤波器,使所有小于或等于奈奎斯特频率 20%(采样频率的一半)的频率通过,并衰减大于或等于 Nyquist 频率 50% 的频率。我们将使用一个具有以下设定的 FIR 等波纹滤波器:

  • 通带衰减 1 dB

  • 阻带衰减 80 dB

  • 通带频率 0.2 [归一化(0 到 1)]

  • 阻带频率 0.5 [归一化(0 到 1)]

        为了实现此设计,我们将使用以下设定:

1.在响应类型的下拉菜单中选择低通,在 FIR 设计方法下选择等波纹。通常,当更改响应类型或设计方法时,滤波器参数和“滤波器显示”区域会自动更新。

2.在滤波器阶数区域中选择指定阶数,并输入 30

3.FIR 等波纹滤波器有一个密度因子选项,用于控制频率网格的密度。增大该值会创建一个更接近理想等波纹滤波器的滤波器,但由于计算量会增加,因此需要更多的时间。将此值保留为 20。

4.在频率设定区域的“单位”下拉菜单中,选择归一化(0 到 1)

5.在频率设定区域中,为 wpass 输入 0.2,为 wstop 输入 0.5

6.幅值设定区域中的 Wpass 和 Wstop 是正权重,每个频带有一个权重,在 FIR 等波纹滤波器的优化过程中使用。将这些值保留为 1。

7.完成设计设定后,点击 GUI 底部的设计滤波器按钮来设计滤波器。

完成系数计算后,滤波器的幅值响应会显示在“滤波器分析”区域。

查看其他分析

        完成滤波器设计后,可以通过点击工具栏上的任意按钮,在显示窗口中查看以下滤波器分析:

按从左到右的顺序,按钮排列如下

  • 幅值响应

  • 相位响应

  • 幅值响应和相位响应

  • 群延迟响应

  • 相位延迟响应

  • 脉冲响应

  • 阶跃响应 

  • 零极点图

  • 滤波器系数

  • 滤波器信息

更改轴单位

        通过在轴标签上右键点击鼠标并选择所需的单位,可以更改 x 轴或 y 轴单位。当前单位有复选标记。

标记数据点

        在“显示”区域中,可以点击绘图中的任意点来添加数据标记,该标记显示该点处的值。右键点击数据标记会显示一个菜单,可以在其中移动、删除数据标记或调整数据标记的外观。

优化设计

        为了最大限度地降低滤波器的实现成本,我们将尝试使用设计面板中的最小阶选项来减少系数个数。

        在“设计”区域中,将滤波器阶数中的选择更改为最小阶,其他参数保持不变。

        点击设计滤波器按钮以设计新滤波器。

        可以在“当前滤波器信息”区域中看到,滤波器阶数从 30 减少到 16,波纹数量减少,过渡带宽度变宽。通带设定和阻带设定仍然符合设计标准。 

更改分析参数

        通过在绘图上右键点击并选择“分析参数”,可以显示用于更改特定于分析的参数的对话框。(也可以从“分析”菜单中选择“分析参数”。)

        要将显示的参数保存为默认值,请点击保存为默认值。要还原 MATLAB 定义的默认值,请点击还原原始默认值

导出滤波器

        如果对设计满意,可以将滤波器导出到以下目标位置:

  • MATLAB 工作区

  • MAT 文件

  • 文本文件

        从文件菜单中选择导出

        当选择导出到 MATLAB 工作区或 MAT 文件时,您可以将滤波器导出为系数。如果 DSP System Toolbox™ 可用,也可以将滤波器导出为 System object。

生成 MATLAB 文件

        滤波器设计工具允许您生成 MATLAB 代码来重新创建您的滤波器。这能够将设计嵌入到现有代码中,或在脚本中自动创建滤波器。

        从文件菜单中选择生成 MATLAB 代码,选择滤波器设计函数,并在“生成 MATLAB 代码”对话框中指定文件名。

        以下代码是根据我们上面设计的最小阶滤波器生成的:

量化滤波器

        如果安装了 DSP System Toolbox™,边栏上会提供设置量化参数面板:

         可以使用此面板来量化和分析双精度滤波器。借助 DSP System Toolbox,可以将滤波器从双精度量化为单精度。如果有 Fixed-Point Designer,可以将滤波器量化为定点精度。请注意,不能在滤波器中混合使用浮点和定点算术。

目标

        通过滤波器设计工具的目标菜单,可以生成各种类型的代码来表示滤波器。例如,可以生成 C 头文件、XILINX 系数 (COE) 文件(使用 DSP System Toolbox)和 VHDL、Verilog 以及测试平台(使用 Filter Design HDL Coder™)。

其他功能

滤波器设计工具还集成了下列其他 MathWorks™ 产品提供的附加功能:

  • DSP System Toolbox - 增加高级 FIR 和 IIR 设计方法(例如滤波器变换、多速率滤波器),并为滤波器生成等效模块

  • Embedded Coder™ - 为 Texas Instruments C6000 处理器生成、编译和部署代码

  • Filter Design HDL Coder - 为定点滤波器生成可合成的 VHDL 或 Verilog 代码

  • Simulink® - 从原子 Simulink 模块生成滤波器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1126901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 下载首页图片

以下是一个使用RoboBrowser和Python下载首页图片的下载器程序,并使用https://www.duoip.cn/get_proxy获取代理: import os import time from robobrowser import RoboBrowser import requests ​ def get_proxy():url "https://www.duoip.cn/get_…

【Linux】Centos 8 服务器部署:阿里云端口开放与应用实例教程

目录 一、基本流程 二、进入实例安全组 (1)进入实例详情 (2)打开安全组列表 三、配置规则 (1)默认安全组 (2)自定义安全组 ① 创建安全组添加入方向端口 ② 编辑安全组导入…

紫光同创FPGA实现图像去雾 基于暗通道先验算法 纯verilog代码加速 提供2套工程源码和技术支持

目录 1、前言免责声明本去雾模块的特点 2、目前我这里已有的图像处理方案3、设计思路框架SD卡初始化SD卡读操作SD卡读图片OV5640摄像头配置及采集HDMA图像缓存输入输出视频HDMA缓冲FIFOHDMA控制模块 图像去雾模块详解HDMI输出 4、PDS工程1详解:SD卡提供有雾图片5、P…

用“qwer”打造类似梦幻西游中比巧克力还丝滑的状态机

点击上方亿元程序员关注和★星标 引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。 梦幻西游是流量密码吗&…

Trace 在多线程异步体系下传递最佳实践

JAVA 线程异步常见的实现方式有&#xff1a; new ThreadExecutorService 当然还有其他的&#xff0c;比如fork-join&#xff0c;这些下文会有提及&#xff0c;下面主要针对这两种场景结合 DDTrace 和 Springboot 下进行实践。 引入 DDTrace sdk <properties><java.…

Sui特性将推动下一波游戏大发展

随着游戏行业的竞争日益激烈&#xff0c;区块链技术为游戏工作室提供了必要的优势&#xff0c;以保持观众对他们的兴趣。实际上&#xff0c;区块链技术可能是未来游戏设计中最令人愉快和吸引人的关键。游戏在深入探索世界方面表现很棒&#xff0c;它们通过视觉、叙事和社区建设…

Scala入门到放弃—02—函数

文章目录 函数方法定义默认参数命名参数可变参数条件语句循环表达式 函数 方法定义 def 方法名(参数: 参数类型): 返回值类型 {//方法体//最后一行作为返回值(不需要使用return) } def max(x: Int, y: Int): Int {if(x > y)xelse y }package org.example object App {de…

C++ 模板的编译链接讨论

//头文件 #ifndef Test_h__ #define Test_h__ template<class T> class Test1 { public: static T Add(const T& x, const T& y); }; #endif // Test_h__ //cpp文件 #include "Test.h" template<class T> T Test1<T>::Add(const …

Qt 案例 使用QNetworkReply或者URLDownloadToFile 下载http、https资源到本地路径

Qt 使用QNetworkReply或者URLDownloadToFile两种不同方式下载http、https链接资源文件&#xff0c;并且获取下载进度。 目录 一、 使用 URLDownloadToFile 下载二、 使用 QNetworkReply 下载三、 打包好的可执行程序示例下载四、 会员或订阅专栏下载源码 一、 使用 URLDownload…

USB协议学习(二)设备枚举过程分析

USB协议学习&#xff08;二&#xff09;设备枚举过程分析 笔者来聊聊设备枚举过程分析. 这里写自定义目录标题 USB协议学习&#xff08;二&#xff09;设备枚举过程分析USB设备运行过程USB设备枚举USB设备通信构成USB设备请求USB枚举过程分析如何改变文本的样式插入链接与图片如…

【算法训练-动态规划 二】【线性DP问题】最长递增子序列

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【动态规划】&#xff0c;使用【数组】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

跨境电商:经济合作新引擎,技术赋能新亮点

随着数字化浪潮席卷全球&#xff0c;跨境电商正蓬勃发展&#xff0c;成为中国外贸高质量发展的新引擎。中国的跨境电商行业在"买全球、卖全球"方面正经历着显著的增长&#xff0c;延展出新的商业生态&#xff0c;以技术创新和国际合作为支撑&#xff0c;促进了中国制…

Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)

Linux中的shell外壳与权限[包含目录文件的权限,粘滞位的来龙去脉] 一.shell外壳的理解1.为什么需要有shell外壳的存在?2.什么是shell外壳?3.shell外壳的运行原理是什么?4.shell和bash的关系 二.Linux中的用户权限1.用户分类与身份切换1.用户分类2.root用户切换为普通用户1.s…

操作系统学习笔记7-IO管理

文章目录 1、IO管理学什么(学习逻辑图)2、IO管理硬件知识-IO设备的分类(硬件分类)3、IO管理硬件知识-IO控制方式的发展过程4、IO管理硬件知识-IO控制方式-程序直接控制方式5、IO管理硬件知识-IO控制方式-中断控制方式6、IO管理硬件知识-IO控制方式-DMA控制方式7、IO管理硬件知识…

JSX 样式处理

学习目标&#xff1a; 能够在 JSX 中实现 CSS 样式处理  1. 行内样式 实现&#xff1a; 在元素身上绑定一个 style 样式   - 行内样式 style function APP(){return (<div className"App"><div style{{color:red,fontSize:10px}}>this is div</d…

Swagger基本使用

文章目录 1. 接口文档2. Open API3. Swagger 简介4. Springfox5. Swagger 基本用法6. Swagger-UI使用7. Swagger配置 1. 接口文档 接口文档对于前后端开发人员都十分重要。尤其近几年流行前后端分离后接口文档又变成重中之重。接口文档固然重要&#xff0c;但是由于项目周期等…

MySQL数据同步到达梦数据库

1.服务器配置 达梦数据库的初始状态是不兼容其他任何数据库模式的&#xff0c;所以必须先设置系统的兼容性&#xff0c;从安装路径的tool文件夹中打开console工具&#xff08;DM控制台工具&#xff09;&#xff0c;设置兼容MySQL。 2.创建用户&#xff08;需要分配权限的操作&…

K8s 之 Helm 部署 MySQL 5.7

Author&#xff1a;rab 目录 一、环境二、部署2.1 安装 NFS2.2 安装 Helm2.3 安装 MySQL2.3.1 创建 Namespace2.3.2 创建 PV2.3.3 配置 MySQL2.3.4 部署 MySQL 2.4 MySQL 可用性验证 小结 一、环境 # K8s版本 v1.23.6# Docker版本 v20.10.20# Helm版本 v3.10.3# NFS v4说明&am…

建筑能源管理(6)——建筑能源监管

中国建筑(公共机构)能耗的总量逐年上升&#xff0c;在能源总消费量中所占的比例已从20世纪70年代末的10%&#xff0c;上升到近年的超过30%。2006年&#xff0c;《中华人民共和国国民经济和社会发展第十一个五年规划纲要》提出了“十一五”期间单位国内生产总值能耗降低20%左右&…

SocketBase类库

SocketBase类库主要是方便创建Socket客户端和Socket服务端的基础实现。 抽象基类&#xff1a;主要实现创建Socket public abstract class NetworkBase{} 通用基类&#xff1a;指定了消息的解析规则&#xff0c;指定了数据转换的规则 的基本实现 /// <summary>/// 支持长…