滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。

滤波器设计的目标是实现数据序列的频率成分变更。严格的设计规格需要指定通带波纹数、阻带衰减、过渡带宽度等。更准确的指定可能需要实现最小阶数的滤波器、需要实现任意形状的滤波器形状或者需要用fir滤波器实现。指定的要求不同,滤波器的设计也不同。

Matlab的信号处理工具箱软件提供了两种方式设计滤波器:面向对象的和非面向对象的。面向对象的方法首先创建一个滤波器对象fdesign,然后调用合适的design参数设计。如实现一个5阶的低通巴特沃斯滤波器,3dB截止频率为200Hz,采样频率1000Hz,代码如下

Fs=1000; %Sampling Frequency

time = 0:(1/Fs):1; %time vector

% Data vector

x = cos(2*pi*60*time)+sin(2*pi*120*time)+randn(size(time));

d=fdesign.lowpass('N,F3dB',5,200,Fs); %lowpass filter

specification object

% Invoke Butterworth design method

Hd=design(d,'butter');

y=filter(Hd,x);

非面向对象的方法则适用函数实现滤波器设计,如butter、firpm。所有非面向对象的滤波器设计函数使用的是归一化频率,归一化频率[0,

1]之间,1表示πrad。将Hz频率转化为归一化频率的方法为乘以2除以采样频率。设计上面同样的滤波器,使用非面向对象的方法如下

Wn = (2*200)/1000; %Convert 3-dB frequency

% to normalized frequency: 0.4*pi rad/sample

[B,A] = butter(5,Wn,'low');

y = filter(B,A,x);

滤波函数

* filter:利用递归滤波器(IIR)或非递归滤波器(FIR)对数据进行数字滤波;

* fftfilt:利用基于FFT的重叠相加法对数据进行滤波,只适用于非递归滤波器(FIR);

* filter2:二维FIR数字滤波;

* filtfilt:零相位滤波(IIR与FIR均可)。

滤波器特性分析

* 脉冲响应Impz

等价于使用函数filter输入一个脉冲信号x=[1;zero(N-1,1)]。

* 频率响应freqz与freqs

Freqz:求解数字滤波器的频率响应

Freqs:求解模拟滤波器的频率响应

* 幅频和相频abs与angle、unwrap

Unwrap:解卷绕

* 群延迟grpdelay

群延迟即为滤波器相位响应的负一阶导数,是滤波器平均延迟的度量。

* 零极点分析zplane

IIR数字滤波器设计

模拟低通滤波器设计

* 巴特沃斯低通滤波器设计buttap

* 切比雪夫低通滤波器设计cheb1ap与cheb2ap

* 椭圆低通滤波器设计ellipap

模拟滤波器最小阶数的选择

* 巴特沃斯滤波器Buttord

* 切比雪夫1型滤波器Cheb1ord

* 切比雪夫2型滤波器Cheb2ord

* 椭圆滤波器Ellipord

模拟高通、带通、带阻滤波器设计

* 模拟低通到模拟低通lp2lp

* 模拟低通到模拟高通lp2hp

* 模拟低通到模拟带通lp2bp

* 模拟低通到模拟带阻lp2bs

IIR实频变换

* IIR实频率移位变换iirshift

* 实低通到实低通的频率移位变换iirlp2lp

* 实低通到实高通的频率移位变换iirlp2hp

* 实低通到实带通的频率移位变换iirlp2bp

* 实低通到实带阻的频率移位变换iirlp2bs

* 实低通到实多带的频率移位变换iirlp2mb

* 实低通到实多点的频率移位变换iirlp2xn

IIR复频变换

* IIR复频率移位变换iirshiftc

* 实低通到复带通的频率移位变换iirlp2bpc

* 实低通到复带阻的频率移位变换iirlp2bsc

* 实低通到复多带的频率移位变换iirlp2mbc

* 实低通到复多点的频率移位变换iirlp2xnc

* 复带通到复带通的频率移位变换iirbpc2bpc

模拟滤波器的离散化

* 脉冲响应不变法impinvar

* 双线性变换法bilinear

IIR滤波器的直接设计

* 贝塞尔模拟滤波器Besself

* 巴特沃斯滤波器Butter

* 切比雪夫1型滤波器Cheby1

* 切比雪夫2型滤波器Cheby2

* 椭圆型滤波器Ellip

* 递归数字滤波器Yulewalk

使用最小二乘法拟合频率响应函数。

* 一般数字滤波器Maxplat

小结

相对于FIR滤波器,IIR滤波器的主要优点在于它以比FIR更小的阶数满足指定的滤波要求。虽然IIR滤波器有非线性的相位,但matlab软件中的数据处理方式是离散的,即全部数据序列被用于滤波。这允许了零相位滤波方法存在,可以使用函数filtfilt函数实现,它可以消除IIR滤波器的非线性相位偏移。

IIR滤波方法小结

滤波方法

描述

滤波器函数

模拟原型

使用连续域的经典低通原型滤波器模型零极点,再通过频率变换和滤波器离散化得到数字滤波器

直接滤波器设计函数:

besself,butter,cheby1, cheby2,

ellip

阶数预测函数:

buttord, cheb1ord, cheb2ord,

ellipord

低通模拟原型函数:

besselap, buttap, cheb1ap, cheb2ap,

ellipap

频率变换函数:

lp2bp, lp2bs, lp2hp, lp2lp

滤波器离散函数:

bilinear, impinvar

直接设计

通过逼近线性幅值响应直接在离散域设计数字滤波器

yulewalk

广义巴特沃斯滤波器设计

设计零点多于极点的低通巴特沃斯滤波器

maxflat

参数建模

通过逼近给定的时域或频域响应得到数字滤波器

时域建模函数:

lpc, prony, stmcb

频域建模函数:

invfreqs, invfreqz

FIR数字滤波器设计

窗函数法

* 设计具有标准频率响应的FIR滤波器Fir1

* 设计具有任意频率响应的FIR滤波器Fir2(如多带通滤波器)

使用凯塞窗时可以使用kaiserord函数设计FIR参数

切比雪夫逼近法

* 最佳一致逼近法设计firpm

估计最佳一致逼近法滤波器的阶次firpmord

* 任意响应法cfirpm

约束最小二乘法

* 设计线性相位滤波器firls

* 设计多带线性相位滤波器fircls

* 设计低通或高通线性相位滤波器fircls1

设计Savitzky-Golay平滑滤波器sgolay

小结

FIR滤波器有如下主要优点:

* 准确线性相位

* 总是稳定的

* 设计方法是线性的

* 可以有效的在硬件上实现

* 滤波初始过渡阶段持续时间有限

它的主要缺点是它需要比IIR更高的阶数来实现给定的响应,相应的,它的滤波器延迟也比IIR的大。

FIR滤波方法小结:

滤波器设计方法

描述

滤波器函数

窗函数设计法

对傅里叶逆变换加窗

fir1, fir2, kaiserord

多带逼近

最小二乘法一致逼近多带频率响应

firls, firpm, firpmord

约束最小二乘法

在最大误差的约束下最小化误差平方和

fircls, fircls1

任意响应

任意响应设计,包括非线性相位、复频域滤波器

cfirpm

Raised Cosine

平滑正弦过渡的低通响应

firrcos

工具箱GUI

Sptool信号分析工具箱GUI

Wintool窗函数查看工具箱GUI

matlab fir1 filter,Matlab滤波器设计相关推荐

  1. 双线性变换 matlab,matlab和双线性变换的滤波器设计.doc

    matlab和双线性变换的滤波器设计.doc 武汉理工大学MATLAB课程设计报告书题目MATLAB课程设计基于MATLAB和双线性变换的滤波器设计初始条件MATLAB仿真软件数字信号处理与图像处理基 ...

  2. fir 低通 matlab,MATLAB常用的FIR滤波器设计方法之窗函数法

    FIR滤波器很多工科出身的人都不会陌生,在我们的学习和工作中,也常常需要设计FIR滤波器.因为FIR滤波器有两个特点:滤波器是稳定的以及具有线性相位.FIR滤波器在信号处理相关领域当然也包括本人所在的 ...

  3. Matlab幅频曲线和滤波器设计

    前言少叙,下面开始正题. 一.离散数字信号的表示 n=-3:5;subplot(221); x1=(n==0); stem(n,x1,'.'); title('单位冲击'); axis([-4,4,- ...

  4. m基于FPGA和MATLAB的数字CIC滤波器设计和实现

    目录 1.算法概述 2.仿真效果预览 3.MATLAB/FPGA部分代码预览 4.完整MATLAB/FPGA程序 1.算法概述 CIC滤波器由一对或多对积分-梳状滤波器组成,在抽取CIC中,输入信号依 ...

  5. 基于matlab的巴特沃斯滤波器设计

    一.butterworth滤波器也称最平响应特性滤波器,其特征多项式为: |K(jΩ)|^2=K(jΩ)K(-jΩ)=(Ω/Ωc)^2N 巴特沃斯滤波器的模平方函数为: |H(jΩ)|^2=1/(1+ ...

  6. 基于MATLAB FDATOOL的CIC滤波器设计

    级联积分梳状(CIC)滤波器是一种被广泛应用于软件无线电中,可以实现抽取或者插值的高效滤波器.它主要用于降低或提高采样率.CIC滤波器的主要特点是,仅利用加法器.减法器和寄存器,占用资源少,实现简单且 ...

  7. 基于matlab的陷波滤波器设计

    目录 一.理论基础 二.核心程序 三.仿真结论 一.理论基础 陷波滤波器指的是一种可以在某一个频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果的滤波器.陷波滤波器属于带阻滤波器的一种,只是它 ...

  8. [Matlab]巴特沃夫滤波器设计:低通、高通、带通和带阻

    巴特沃斯滤波器的特点: 1.通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零. 2.在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无 ...

  9. matlab模拟巴特沃斯滤波器设计,巴特沃斯滤波器matlab实现

    描述 巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零. 在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大 ...

最新文章

  1. 2020年「21篇」医学影像算法最佳综述
  2. 深入理解js的执行机制
  3. C#拾遗系列(8):异常
  4. oracle 触发器 和 常用内置程序包
  5. 用户线程和内核线程之间的区别
  6. ASP.NET 常用的33种代码(转,收藏一下,以备后查)
  7. MVC的Controller-Action布局:单独的创建/编辑页面还是创建/编辑/查看一体的页面?...
  8. 前端通过jqplot绘制折线图
  9. 农银电商项目学习笔记(一)
  10. 社区分享 | 从零开始学习 TinyML(一)
  11. PR视频编辑软件Premiere软件安装包下载地址及安装教程
  12. 数据分析案例-二手车价格预测
  13. layui 富文本编辑器和textarea值的相互传递
  14. “VBE6EXT.OLB不能被加载”解决方法
  15. 识人 用人 激人 留人 斩人
  16. 华为交换机路由器密码重置笔记
  17. 生于80年代,穷于10年代,败于90后
  18. Java——批量更改图片像素(大小)
  19. 单耳蓝牙耳机怎么连接_tws蓝牙耳机p10怎么双耳连接蓝牙?我之前是单耳连...
  20. 重走青春路……还是因到了“原点”……

热门文章

  1. 网站ftp服务器密码修改,ftp服务器忘记密码修改
  2. 2017711010137 赵栋 《面向对象程序设计》第四章学习总结
  3. 二叉树 | 二叉树的深度
  4. pygame安装(2020版超详细)
  5. git fetch批处理,遍历一个文件夹下的所有子目录,执行git fetch --all
  6. 性能篇之对象拷贝工具BeanUtils.copyProperties和BeanCopier.copy的比较
  7. 09 关于 lzf 压缩
  8. 图解Linux命令之--modprobe命令
  9. 解决npm 编译时报node_modules/optipng-bin/vendor/optipng ENOENT
  10. docker更换镜像源