matlab乘法器数量级统一,基于matlab的数字滤波器的设计

1 数字滤波器的概述

数字滤波器可以用差分方程、单位取样相应以及系统函数等表示,对于研究系统的实现方法,及它的运算结构来说,用狂徒便是最为直接。

一个给定的输入输出关系,可以用多种不同的数字网络来实现。在不考虑量化影响是,这些不同的实现方法是等效的;但在考虑量化影响时,这些不同的实现方法性能上就有差异。因此,运算结构是很重要的,同一系统函数H(Z),运算结构的不同,将会影响系统的精度、误差、稳定性、经济型以及运算速度等许多重要性能。IIR(无限冲击响应)滤波器与FIR(有限冲击响应)滤波器在结构上有自己不同的特点,在设计时需综合考虑。

1.1 数字滤波器的基本结构

作为线形时不变的数字滤波器可以用系统函数来实现,而实现一个系统函数表达式所表示的系统可以用两种方法:一种方法是采用计算机软件实现;另一种方法是用加法器、乘法器、和延迟器等元件设计出专用的数字硬件系统,即硬件实现。不论软件实现还是硬件实现,在滤波器设计的过程中,由同一系统函数可以构成很多不同的运算结构,对于无限精度的系数和变量,不同结构可能是等效的,与其输入和输出特性无关。

1.1.1 IIR 滤波器的基本结构

一个数字滤波器可以用系统函数表示为:

(2-1)

由这样的系统函数可以得到表示系统输入与输出关系的常系数线形差分程为:

(2-2)

可见数字滤波器的功能就是把输入序列 x(n)通过一定的运算变换成输出序列 y(n)。不 同的运算处理方法决定了滤波器实现结构的不同。无限冲激响应滤波器的单位抽样响应 h(n)是无限长的,其差分方程如(2-2)式所示,是递归式的,即结构上存在着输出信号到输 入信号的反馈,其系统函数具有(2-1)式的形式,因此在 z 平面的有限区间(0

前面已经说明,对于一个给定的线形时不变系统的系统函数,有着各种不同的等效差 分方程或网络结构。由于乘法是一种耗时运算,而每个延迟单元都要有一个存储寄存器, 因此采用最少常熟乘法器和最少延迟支路的网络结构是通常的选择,以便提高运算速度和 减少存储器。然而,当需要考虑有限寄存器长度的影响时,往往也采用并非最少乘法器和 延迟单元的结构。

IIR 滤波器实现的基本结构有: (1)IIR 滤波器的直接型结构:

优点:延迟线减少一半,变为 N 个,可节省寄存器或存储单元; 缺点:其它缺点同直接 I 型。

通常在实际中很少采用上述两种结构实现高阶系统,而是把高阶变成一系列不同组合 的低阶系统(一、二阶)来实现。 (2)IIR 滤波器的级联型结构;

5

特点:

? 系统实现简单,只需一个二阶节系统通过改变输入系数即可完成; ? 极点位置可单独调整; ? 运算速度快(可并行进行);

? 各二阶网络的误差互不影响,总的误差小,对字长要求低。 缺点:

不能直接调整零点,因多个二阶节的零点并不是整个系统函数的零点,当需要准确的 传输零点时,级联型最合适。 (3)IIR 滤波器的并联型结构。 优点:

? 简化实现,用一个二阶节,通过变换系数就可实现整个系统;

? 极、零点可单独控制、调整,调整 α1i、α2i 只单独调整了第 i 对零点,调整 β1i、

β2i 则单独调整了第 i 对极点 对极点;

? 各二阶节零、极点的搭配可互换位置,优化组合以减小运算误差; ? 可流水线操作。 缺点:

二阶阶电平难控制,电平大易导致溢出 电平小则使信噪比减小。 1.1.2 FIR 滤波器的基本结构

FIR 滤波器【7】的单位抽样响应为有限长度 一般采用非递归形式实现。通常的 FIR 数 的单位抽样响应为有限长度,数字滤波器有横截性和级联型两种。 FIR 滤波器实现的基本结构有: (1)FIR 滤波器的横截型结构

表示系统输入输出关系的差分方程可写作:

(2)FIR 滤波器的级联型结构

将 H(z)分解成实系数二阶因子的乘积形式 分解成实系数二阶因子的乘积形式:

这时 FIR 滤波器可用二阶节的级联结构来实现,每个二阶节用横截型结构实现,如图所示:

FIR滤波器的级联结构

这种结构的每一节控制一对零点,因而在需要控制传输零点时可以采用这种结构。

1.2 数字滤波器的设计原理

数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤 波器和有限长冲激响应(FIR)滤波器。IIR 滤波器的特征是,具有无限持续时间冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和

6

Chebyshev逼近法等等。随着 MATLAB 软件尤其是 MATLAB 的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。 数字滤波器设计的基本步骤如下: (1) 确定指标

在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很 多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给 出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响 应函数的要求,一般应用于 FIR 滤波器的设计。第二种指标是相对指标。它以分贝值的形 式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统 在通频带中具有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包 含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为 N 的滤波器(阶数为 N-1),计算量为 N/2 数量级。因此,本文中滤波器的设计就以线性相位 FIR 滤波器的设计为例。 (2) 逼近

确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。 (3) 性能分析和计算机仿真

上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可 以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真 实现设计的滤波器,再分析滤波结果来判断。 1.2.1 滤波器的性能指标

我们在进行滤波器设计时,需要确定其性能指标。一般来说,滤波器的性能要求往往 以频率响应的幅度特性的允许误差来表征。以低通滤波器特性为例,频率响应有通带 、过 渡带及阻带三个范围。

在通带内:

在阻带中:

其中 ωc 为通带截止频率 st 为阻带截止频率,Ap 为通带 为通带截止频率,ω 误差, Ast 为阻带误差。

与模拟滤波器类似,数字滤波器按频率特性划分为低通、高通、带通、带阻、全通等类型 ,由于数字滤波器的频率响应是周期性的,周期为 2π 。 1.2.2 IIR 数字滤波器的设计方法

目前,IIR 数字滤波器设计最通用的方法是借助于模拟滤波器的设计方法 。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图 表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便 ,IIR数字滤波器的设计步骤是:

(1)按一定规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标 ; (2)根据转换后的技术指标设计模拟低通滤波器 H(s); (3)在按一定规则将 H(s)转换为 H(z)。

若所设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通、带通或者带阻滤波器,那么还有步骤:

(4)将高通、带通或者带阻数字滤波器的技术指标先转化为低通滤波器的技术指标,然后按上述步骤(2)设计出模拟低通滤波器 H(s),再由冲击响应不变法或双线性变换将H(s)转换为

7

所需的 H(z)。

s - z 映射的方法有:冲激响应不变法 、阶跃响应不变法、双线性变换法等。下面讨论双线性变换法。

双线性变换法[8]是指首先把 s 平面压缩变换到某一中介平面 s1 的一条横带(宽度为 2 πT,即从- πT 到πT) ,然后再利用 z = exp(s1T) 的关系把 s1 平面上的这条横带变换到整个 z 平面。这样 s 平面与 z 平面是一一对应关系,消除了多值变换性, 也就消除了频谱混叠现象。

s 平面到 z 平面的变换可采用Ω= tan(Ω1T/2) (2-5)

令jΩ=s,jΩ1=s1 有:

从s平面到 z 平面的变换可采用 z =exp(s1T) (2-8)

代入上式,得到:

一般来说,为使模拟滤波器的某一频率与数字滤波器的任一频率有对应关系,可引

入代定常数 c ,

这种 s 平面与 z 平面间的单值映射关系就是双线性变换。 有了双线性变换,模拟滤 平面间的单值映射关系就是双线性变换。有了双线性变换 波器的数字化只须用进行置换 进行置换。

1.2.3 FIR 数字滤波器的设计方法

IIR 滤波器[7]的优点是可利用模拟滤波器设计的结果,缺点是相位是非线性的,若需 要用全通网络进行校正 。FIR 滤波器的优点是可方便地实现线性相位。 FIR 滤波器单位冲激响应 h(n)的特点:

其单位冲激响应 h(n)是有限长 ,系统函数为 :

在有限 Z 平面有(N-1)个零点 ,而它的(N-1)个极点均位于原点 z=0 处。 Fir 滤波器线性相位的特点:

如果 FIR 滤波器的单位抽样响应 h(n)为实数,而且满足以下任一条件 : 偶对称 h(n)=h(N-1-n) 奇对称 h(n)=-h(N-1-n)

其对称中心在 n=(N-1)/2 处,则滤波器具有准确的线性相位。

窗函数设计法: 一般是先给定所要求的理想滤波器频率响应 H d (e jω ) ,由 H d (e

8

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

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

相关文章

spring 计划任务_与Spring的计划任务一起按时运行

spring 计划任务您是否需要每天像闹钟一样在同一时间运行某个流程? 然后,Spring的预定任务适合您。 允许您使用Scheduled注释方法,以使其在指定的时间或内部间隔运行。 在本文中,我们将研究建立一个可以使用计划任务的项目&#x…

小程序 input自动换行_直播 | 最实用的微信小程序自动化测试技术独家揭秘

随着微信小程序的功能和生态日益完善,很多企业级小程序项目的页面越来越多,业务逻辑也越来越复杂。如何做好微信小程序的自动化测试成为测试同学面临的一大难题。如何合理构建多端架构和自动化测试体系?如何深入理解微信小程序特性和技术原理…

sit matlab,LabView SIT工具包的使用和安装说明

之前一直在用Simulink做仿真模型,现在要做测试需要用NI的设备和LabView软件,通过一段时间的学习,在SIT的使用上有了点小认识拿来跟大家分享一下。需要注意的是,必须是先安装MatLab Simulink 然后安装SIT工具包,如果先安…

php cdi_CDI中的事务异常处理

php cdi在Java EE中,在执行事务性业务方法期间引发的异常导致事务回滚。 但是,只有系统异常(即运行时异常)才是这种情况,该方法异常未在方法签名中声明。 对于应用程序异常(即检查的异常)或任何…

opencv 把3通道图像转成单通道_小强学Python+OpenCV之-1.4.3图像(矩阵)加减运算

引入问题引入,考虑以下几个问题:Q1. 一个3通道像素p的BGR分量(8bit表示)值均相同,那么这个像素是什么颜色的?Q2. 该像素p加上自己,即,像素p的各个通道值翻倍,那么这个像素…

Linux(CentOS 7.x) 下如何设置 nginx 开机启动?

CentOS 7 以上是用 Systemd 进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统,Systemd 服务文件以 .service 结尾。 使用命令 yum 安装 nginx 如果用 yum install 命令安装 nginx,yum 命令会自动在目录 /usr/lib/systemd/system …

mvc 404错误 php,java - springmvc 请求无法到达controller,出现404错误

springmvc 请求无法到达controller,出现404错误web.xmltestmvcindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspspringmvcorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:springmvc-servlet.xml1springmvc/org.…

jdk 1.8 不可变常量_在JDK 10中不可变与不可修改

jdk 1.8 不可变常量大约两个月前, 斯图尔特马克斯 ( Stuart Marks)写道:“ 不变性就像葡萄酒 。” 然后,他提醒读者注意叔本华的熵定律 :“如果将一勺酒倒入装满污水的桶中,就会产生污水。 如果…

diff算法_传统Diff算法为什么时间复杂度要O(n ^3)

原文链接:https://juejin.im/post/6892671384976097287很多文章提到的都是新旧DOM树需要两两对比,但是没有说清楚为什么。思考大家想一下,如果让你来设计将一棵树转换为另一棵树,你会怎么设计?可能是直接暴力的根据ind…

CentOS 7 Linux 的初始化系统(系统服务管理和控制程序/Init System) -- systemd 详解

文章目录一、systemd 的由来(一)常用的 init 系统(二)init 程序的缺点(三)systemd 简介(四)systemd 架构图二、服务管理三、unit 配置文件(一)概述&#xff0…

python 指针指向的内容,python-文件的读取及指针位置

文件的读取及指针位置打开文件的三步:打开->操作->关闭文件的读取:f open(/tmp/passwd)打开f.close()操作完,关闭文件判断文件对象拥有的权限print(f.readable())是否拥有可读权限True or Falshprint(f.writable())是否拥有可写权限文…

jax-rs jax-ws_对状态代码使用JAX-RS异常

jax-rs jax-ws从JAX-RS资源发送特定HTTP(错误)状态代码的一种方法是使用javax.ws.rs.core.Response类及其类似Builder Pattern的API。 如果要根据响应主体指定返回类型,则仍然可以这样做,并通过抛出WebApplicationException针对错…

Linux 及其它类 Unix 系统的系统服务管理和控制程序(初始化系统/init system)简单梳理

文章目录一、Linux 的启动过程二、初始化程序(一)System V init(二)Upstart init(三)systemd(四)Launchd(五)Epoch(六)Mudar一、Linux…

matplotlib 柱状图_Matplotlib数据可视化:柱状图与直方图

↑↑点击上方蓝字,回复资料,嘿嘿,10个G的惊喜柱状图和直方图是两种非常类似的统计图,区别在于:直方图展示数据的分布,柱状图比较数据的大小。直方图X轴为定量数据,柱状图X轴为分类数据。因此&am…

php怎样完成批量审核,CMS_DedeCMS 批量取消审核文档的实现方法,今天修改了几个地方的代码 实 - phpStudy...

今天修改了几个地方的代码 实现了在原来dede文章批量管理的地方 添加一个 “取消审核” 如下图:实现方法:修改管理目录(默认为dede)下的文件:archives_do.php 插入以下代码(位置随意 可以放审核文档下面 方便记忆):复制代码代码如…

groovy.run 脚本_Picocli 2.0:类固醇上的Groovy脚本

groovy.run 脚本Picocli 2.0增加了对其他JVM语言(尤其是Groovy)的支持。 当Groovy语言具有CliBuilder类的内置CLI支持时,为什么还要使用picocli? 您可能喜欢picocli的使用帮助,默认情况下会显示ANSI 颜色和样式 。 您…

Linux 系统服务管理和控制程序(初始化系统/Init System) -- systemd 介绍

文章目录systemd 简介systemd 启动过程概述Systemd的争议systemd 简介 开发systemd的主要目的就是减少系统引导时间和计算开销。systemd(系统管理守护进程),最开始以GNU GPL协议授权开发,现在已转为使用GNU LGPL协议,…

mongodb msi安装包_跟我快速学数据存储:MongoDB非关系型数据库

想要学习更多编程,就点上方蓝字关注我们MongoDB概述01与Redis半持久化,存储于内存和硬盘不同,MongoDB是直接持久化,存储于硬盘的缓存系统。MongoDB非常流行,其中阿里云提供了云数据库MongoDB版。https://blog.csdn.net…

php页面 info,通过PATH_INFO方法实现页面伪静态_php

/*函数url_parse用于解析url,使用时需要在前面定义define(PATH_INFO,true);需要解析时调用该函数,取值方法用回$_GET[xxx]即可*/function url_parse(){if(!(isset($_SERVER[PATH_INFO])&&defined(PATH_INFO))){return;}$url substr($_SERVER[PA…

767 重构字符串_重构字符串型系统

767 重构字符串去年,我加入了一个项目,该项目从另一个软件公司接手,但未能满足客户需求。 如您所知,在“继承”的项目及其代码库中,有许多事情可以并且应该加以改进。 可悲的是(但并不奇怪)领域…