滤波器设计工具简介

目录

快速入门

设计滤波器

查看其他分析

更改轴单位

标记数据点

优化设计

更改分析参数

导出滤波器

生成 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.rhkb.cn/news/168822.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud复习:(1)netflix包里的DiscoveryClient类

DiscoveryClient类实现了EurekaClient接口 它的主要作用:服务注册,服务续约,服务下线,获取服务列表。 initScheduledTasks方法用来开启定时任务来完成上述功能。 上图中的代码用来从服务器定期(默认30秒)…

[黑马程序员SpringBoot2]——基础篇1

目录: SpringBoot入门案例(Idea联网版)SpringBoot入门案例(官网创建版)SpringBoot入门案例(阿里云版)SpringBoot入门案例(手工制作版)教你一招,隐藏文件或文件…

微信小程序——后台交互

目录 后台准备 pom.xml 配置数据源 整合mtbatis 前后端交互 method1 method2 后台准备 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org…

解决Vue 3 + Element Plus树形表格全选多选以及子节点勾选的问题

文章目录 问题描述解决方案1. 创建树形表格2. 实现全选功能3. 实现多选功能4. 实现子节点勾选5. 实现父节点勾选 结论 &#x1f389;欢迎来到Java学习路线专栏~解决Vue 3 Element Plus树形表格全选多选以及子节点勾选的问题 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博…

RabbitMQ运行机制和通讯过程介绍

文章目录 1.RabbitMQ 环境搭建2.RabbitMQ简介3.RabbitMQ的优势&#xff1a;4. rabbitmq服务介绍4.1 rabbitmq关键词说明4.2 消息队列运行机制4.3 exchange类型 5.wireshark抓包查看RabbitMQ通讯过程 1.RabbitMQ 环境搭建 参考我的另一篇&#xff1a;RabbitMQ安装及使用教程&am…

数据结构数组 Array 手写实现,扩容原理

数组数据结构 数组&#xff08;Array&#xff09;是一种线性表数据结构。它用一组连续的内存空间&#xff0c;来存储一组具有相同类型数据的集合。 数组的特点&#xff1a; 数组是相同数据类型的元素集合&#xff08;int 不能存放 double&#xff09;数组中各元素的存储是有先…

(免费领源码)php#mysql红色旅游网站99214-计算机毕业设计项目选题推荐

摘 要 21世纪时信息化的时代&#xff0c;几乎任何一个行业都离不开计算机&#xff0c;将计算机运用于旅游服务管理也是十分常见的。过去使用手工的管理方式对旅游服务进行管理&#xff0c;造成了管理繁琐、难以维护等问题&#xff0c;如今使用计算机对旅游服务的各项基本信息进…

2023年10月24日程序员节

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Coreldraw2020最新64位电脑完整版本下载教程

安装之前所有的杀毒软件都要退出。无论是360&#xff0c;腾讯管家&#xff0c;或者电脑自带的安全中心&#xff0c;要不然会阻止安装。 CorelDRAW2020版win下载如下:https://wm.makeding.com/iclk/?zoneid55678 CorelDRAW2020版mac下载如下:https://wm.makeding.com/iclk/?…

linux下安装配置maven

一. 下载maven安装包 安装 maven 环境前&#xff0c;需要先安装 java 环境&#xff0c;笔者这里已经成功安装 java 环境&#xff0c;如果没有安装 java 环境&#xff0c;可以参考&#xff1a;https://blog.csdn.net/qq_44936392/article/details/133931321?spm1001.2014.3001.…

.net6部署到linux上(CentOS Linux 7)

目录 一、先在linux上配置.net环境 添加 Microsoft 包存储库 安装 SDK 安装运行时 检查 SDK 版本可使用终端查看当前安装的 .NET SDK 版本。 打开终端并运行以下命令。 二、创建.net6 mvc项目 并发布 创建项目 修改默认端口 打包发布到文件夹 运行打包项目查看项目是否…

redis 数据结构

一、为什么要扒一下底层技术 首先我是一个解决方案工程师&#xff0c;为什么要看redis底层的设计呢&#xff1f;总结下来分几点&#xff1a; 1. 让系统跑起来更放心 2. 面试中可以对跟对面的牛马侃大山、吹&#x1f42e; 3. 虚一点&#xff0c;举一反三&#xff0c;学习一下…

SocketBase类库

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

Kotlin函数作为参数指向不同逻辑(二)

Kotlin函数作为参数指向不同逻辑&#xff08;二&#xff09; fun sum(): (Int, Int) -> Int {return { a, b -> (a b) } }fun multiplication(): (Int, Int) -> Int {return { a, b -> (a * b) } }fun math(a: Int, b: Int, foo: (Int, Int) -> Int): Int {ret…

基于OpenAPI、freemarker动态生成swagger文档

前言 spring项目中可以使用springfox或者springdoc&#xff0c;通过写注解的方式生成swagger文档&#xff0c;下面介绍一种不写注解&#xff0c;动态生成swagger文档的方式&#xff0c;在某些场景会适用&#xff0c;例如接口是动态生成的&#xff0c;此时swagger就不能通过注解…

Xshell+screen解决ssh连接 服务器掉线的问题

Linux screen命令解决SSH远程服务器训练代码断开连接后运行中断_linux screen ssh-CSDN博客 Linux命令之screen命令_linux screen_恒悦sunsite的博客-CSDN博客 使用教程&#xff1a; 这里粗略介绍一下 &#xff08;1&#xff09;xshell xftp&#xff08;xshell点这个&#…

解救Kubernetes混乱:Descheduler快速实现资源平衡

By default, Kubernetes doesn’t recompute and rebalance workloads. You could have a cluster with fewer overutilized nodes and others with a handful of pods How can you fix this? 关注【云原生百宝箱】公众号&#xff0c;快速掌握云原生 默认情况下&#xff0c;Ku…

Linux_API_系列-整体概览

总论 Linux下API编程不像Windows一样&#xff0c;对每种设备和不同功能都有统一的API&#xff0c;所以有了《Windows核心编程》这种导论一类的大而全的书籍&#xff0c;整本书厚的像一块砖头。 Linux下贯彻了一贯的“一切皆文件”的宗旨&#xff0c;所以对于系统编程而言&…

RabbitMQ相关的其他知识点

RabbitMQ相关的其他知识点 一、幂等性1.1 概念1.2 消息重复消费1.3 消费端的幂等性保障 二、优先队列2.1 应用场景2.2 实现原理2.3 代码实现 三、惰性队列3.1 定义3.2 应用场景3.3 两种设置模式3.4 内存开销对比 一、幂等性 1.1 概念 用户对于同一操作发起的一次请求或者多次请…

初识JAVA,带你入门

本章重点&#xff1a; 1. Java语言简介、发展概述、语言优势、与C/C区别 2. 初识Java程序入口之main方法 3. 注释、标识符、关键字 1. Java语言概述 1.1 Java是什么&#xff1f; Java是一种优秀的程序设计语言&#xff0c;它具有令人赏心悦目的语法和易于理解的语义…