滤波器设计

来源:http://www.360doc.com/content/17/0518/21/1832721_655109467.shtml

滤波器设计概要

在信号系统领域,基于傅里叶变换的谱分析和滤波器设计是两个最基本的问题。在模拟系统中,常常用电子元件逼近所需的传递函数,而在数字系统中,则是用差分方程法去逼近所需传递函数。在硬件实现上,主要是用FPGA中的若干和积门来完成。

3.FIR滤波器设计

FIR滤波器很简单,它实际上是一个全零点模型(MA滑动平均模型),滤波器系数只包含滑动平均的B,而自回归的A=1。滤波过程就是XB的卷积,再联系滤波器的原理,容易知道,FIR滤波器的系数B就是滤波器的冲激响应h。

因此它的设计就简单了,只要设定滤波器的频率响应H,进行ifft后就得到冲激响应h,把h直接作为滤波器系数B对原信号滤波即可。

如上图,是设定的一个低通滤波器的频响,注意了,数字系统有周期延拓的特点。把它ifft得到的冲激响应h(t),注意了,t从负到正的,这里把它平移到正位置,这也是造成FIR滤波器零相位响应变为线性相位响应的原因。还有一点,原来h(t)不是因果的,平移之后就变成因果的了,这样理解对吗??

另外,所得h(t)的长度较长,可截取一段,降低阶数。

如上图所示可见,截取的越长,所得的频响越接近设定频响,第二组就是截取61点(fftl=512)的频响,几乎和设定频响一样。第一组是截取的21点的频响,也大差不差,不过滤波器要做21阶,用硬件做还是比较浪费资源的。在看其相频响应,如下图

下面来看一个例子,用上面设计的FIR滤波器,得到滤波系数h,直接用matlab函数y=filter(h,1,x)进行滤波,即以h为BA为1进行滤波,得到的谱如图:

用FIR设计带通、高通等滤波器也十分简单,和上面方法一样,如下图:

综上,FIR滤波器设计及其简单,且具有线性相位,对各个频率分量的时间延时都相同。其缺点是,所需阶数一般较多,实现起来浪费硬件资源。

原文地址:https://www.cnblogs.com/MCSFX/p/12050147.html

时间: 2024-10-10 19:43:26

滤波器设计的相关文章

FIR滤波器设计

FIR滤波器的优越性: 相位相应为严格的线性,不存在延迟失真,只有固定的时间延迟: 由于不存在稳定性问题,设计相对简单: 只包含实数算法,不涉及复数算法,不需要递推运算,长度为M,阶数为M-1,计算值约为M/2. 关于FIR滤波器的幅频特性和相频特性.在人们不关心相位时,可以让幅频特性常为正,原来为负的部分只需相位加上pi来补偿. 但当相位很重要,不允许随便增减时,幅频特性就必须区分正负.我们这里称为符幅特性. 符幅特性负值部分向上反褶就和我们平时看到的幅频特性一样,还是满足对称性的. 4类FI

Python在信号与系统中的应用(1)——Hilbert变换,Hilbert在单边带包络检波的应用,FIR_LPF滤波器设计,还有逼格高高的FM(PM)调制

多谢董老师,董老师是个好老师! 心情久久不能平静,主要是高频这门课的分析方法实在是让我难以理解,公式也背不过,还是放放吧. 最近厌恶了Matlab臃肿的体积和频繁的读写对我的Mac的损害,所以学习了一下Python这一轻量级的脚本,发现"Python自诞生那天就跟科学计算分不开"这个事实.无聊,写写心得. 配置环境什么的还是弄了几个晚上的.在Mac下用PyCharm还是很好滴,装上NumPy,SciPy等等一众免费的,很不错的Python包,就可以灰了! 1.Hilbert变换及其在单

基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成

一.摘要 除了采用编程的方法实现滤波器之外,Mat l ab中自带工具箱FDATool 也能很方便快速的实现滤波器的设计.另外FPGA.DS P等实现数字滤波器算法时,经常要用到滤波器系数,采用FDATool 工具箱也能快速的得到滤波器系数.二.实验平台 Matlab7.1三.实现步骤3.1 滤波器指标若需要设计一个16阶的FIR滤波器(h(0)=0),给定的参数如下:(1) 低通滤波器(2) 采样频率Fs 为48kHz ,滤波器Fc为10.8kHz(3) 输入序列位宽为9位(最高位为符号位)在

例说信号处理与滤波器设计

许多公式在转换时成了乱码,相应的word版本请点这里 目录 数字时代    2 数字信号处理的应用    3 频率——信号的指纹    5 卷积可以不卷    8 向量运算的启示    11 滤波器设计征程    16 最后一击——滤波的实现方法    22 纵览全局    27 数字时代 信号处理是对原始信号进行改变,以提取有用信息的过程,它是对信号进行变换.滤波.分析.综合等处理过程的统称.数字信号处理是将信号以数字方式表示并处理的理论和技术:模拟信号处理是指用模拟系统对模拟信号进行处理的方

基于MATLAB的IIR滤波器设计与实现

基于MATLAB的IIR滤波器设计与实现 IIR滤波器的设计主要有经典设计法.直接设计法和最大平滑滤波器设计法三种方法. 1.经典设计法是基于模拟滤波器的变换原理,首先根据滤波器的技术指标设计出相应的模拟滤波器,然后再离散化为满足给定技术指标的数字滤波器.对应的工具函数由完全设计函数——butter.cheby1.cheby2.ellip.besself:阶数估计函数——buttord.cheb1ord.cheb2ord.ellipord:低通模拟原型滤波器函数——buttap.cheb1ap.

VIVADO FIR滤波器设计与仿真(二)

VIVADO FIR滤波器设计与仿真(二) 在VIVADO FIR滤波器设计与仿真(一)中产生了两路正弦信号,频率分别为4MHz和5MHz,今天要进行FIR滤波器设计,在进行滤波器设计之前,需要对滤波器的参数进行设置,需要借助MATLAB软件或者Filter Solutions软件,这次使用Filter Solutions来进行参数设定. 关于Filter Solutions软件的使用,这里有一篇博客比较详细的介绍了它的用法,可以作为参考: Filter Solutions之滤波器设计 滤波器参

FPGA的FIR抽取滤波器设计

摘 要:本文介绍了FIR抽取滤波器的工作原理,重点阐述了用XC2V1000实现FIR抽取滤波器的方法,并给出了仿真波形和设计特点. 关键词:FIR抽取滤波器:流水线操作:FPGA 用FPGA实现抽取滤波器比较复杂,主要是因为在FPGA中缺乏实现乘法运算的有效结构,现在,FPGA中集成了硬件乘法器,使FPGA在数字信号处理方面有了长足的进步.本文介绍了一种采用Xilinx公司的XC2V1000实现FIR抽取滤波器的设计方法. 具体实现 结构设计 基于抽取滤波器的工作原理,本文采用XC2V1000实

记录。8,23之fir滤波器设计。

尝试设计FIR滤波器(低通,高通,带通),由5种频率组成的信号,傅里叶变换后的频谱上看,这个滤波器貌似很好. 滤波前信号频谱 低通滤波 高通滤波 带通滤波

[Matlab]椭圆滤波器设计:低通、高通、带通和带阻

椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter): 这是在通带和阻带等波纹的一种滤波器. 椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动. 它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦.阻带等波纹或是阻带平坦.通带等波纹的切比雪夫滤波器. 测试代码: % EllipticFilter.m % 椭圆滤波器的设计 % clear; close all; clc; fs = 1000; %Hz