Matlab滤波器设计(转)
滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。
滤波器设计的目标是实现数据序列的频率成分变更。严格的设计规格需要指定通带波纹数、阻带衰减、过渡带宽度等。更准确的指定可能需要实现最小阶数的滤波器、需要实现任意形状的滤波器形状或者需要用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
转自:http://blog.csdn.net/app_12062011/article/details/7789695
Matlab滤波器设计(转)的更多相关文章
- IIR滤波器设计(调用MATLAB IIR函数来实现)
转载请注明文章来源 – http://blog.csdn.net/v_hyx ,请勿用于任何商业用途 对于滤波器设计,以前虽然学过相关的理论(现代数字信号处理和DSP设计),但一直不求 ...
- 信号、系统与滤波器设计(matlab)
0. 基本概念 AWG:Additive White(zero-mean) Gaussian,可加白噪声: AWGN:Additive White(zero-mean) Gaussian Noise ...
- FIR滤波器设计
FIR滤波器的优越性: 相位对应为严格的线性,不存在延迟失真,仅仅有固定的时间延迟: 因为不存在稳定性问题,设计相对简单: 仅仅包括实数算法,不涉及复数算法,不须要递推运算,长度为M,阶数为M-1,计 ...
- fdatool的滤波器设计
作者:桂. 时间:2017-08-15 20:28:11 链接:http://www.cnblogs.com/xingshansi/p/7367738.html 前言 本文主要记录滤波器设计的基本流 ...
- matlab进行FIR滤波器设计(一)
来源:https://blog.csdn.net/leokingszx/article/details/80041910 在实际的应用中,有时需要使用FIR根据完成一些特定功能,比如近似一阶RC低通电 ...
- matlab滤波器的设计
求出濾波器的階數以及 3dB 截止頻率後,可用相應的 Matlab 函數計算出實現傳遞函數的分子分母係數來.巴特沃斯型濾波器是通帶內最大平坦.帶外單調下降型的,其計算命令是:[b,a] = butte ...
- 基于matlab的FIR加窗滤波器设计
1.确定参数: Wp 通带截止频率 Ws 阻带截止频率 As 衰减dB Rp 纹波dB 2.根据参数确定理想 频率响应 (M (Wp + Ws )/2 ) 双边响应 3.选窗 过滤带 ...
- Python在信号与系统(1)——Hilbert兑换,Hilbert在国家统计局的包络检测应用,FIR_LPF滤波器设计,格鲁吉亚也迫使高FM(PM)调制
谢谢董老师,董老师是个好老师. 心情久久不能平静,主要是高频这门课的分析方法实在是让我难以理解,公式也背只是,还是放放吧. 近期厌恶了Matlab臃肿的体积和频繁的读写对我的Mac的损害,所以学习了一 ...
- Matlab GUI设计(2)
11. (1)界面设计 (2)添加按钮的回调函数 function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle ...
随机推荐
- [译] MYSQL索引最佳实践
近日整理文档时发现多年前的这个文档还是蛮实用的,然后在网络搜索了一下并没有相关的译文,所以决定把它翻译过来,如有不当的地方请多包涵和指正.原文地址:https://www.percona.com/fi ...
- mysql执行计划
烂sql不仅直接影响sql的响应时间,更影响db的性能,导致其它正常的sql响应时间变长.如何写好sql,学会看执行计划至关重要.下面我简单讲讲mysql的执行计划,只列出了一些常见的情况, ...
- 0012 win7x64安装CentOS7
00 准备工作 到VirtualBox官网下载Oracle VM VirtualBox 5.1.8:https://www.virtualbox.org/wiki/Downloads 到centos官 ...
- SHA-1 加密算法破解现已只需要 10 天
转自:http://www.linuxeden.com/html/news/20151009/163173.html SHA-1是如今很常见的一种加密哈希算法,HTTPS传输和软件签名认证都很喜欢它, ...
- Servlet/JSP-08 EL表达式
EL - Expression Language 一. 基本语法 EL表达式以 ${} 的形式访问变量的值 1. "." 和 "[]" 运算符 <%@ p ...
- Keepalived+MySQL双主架构
l 架构准备 Node1 192.168.15.3 Node2 192.168.15.4 VIP 192.168.15.254 l 软件 MySQL 5.6 Keepalive yum insta ...
- 王总QQ聊天对话
在吗? LeeYu 2015/11/10 9:37:11 在的,王总 王宁 2015/11/10 9:37:29 李伟,你今天把设备送到H3C吧. LeeYu 2015/11/10 9:37:43 行 ...
- Idea15/16 配置Tomcat
1:我这里使用的是Eclipse创建的项目,导出后导入到Idea中使用 2:Idea导入Eclipse项目 3:Idea项目配置(默认快捷键CTRL+SHIT+ALT+S) 3.1 Project 项 ...
- android-xxxx must implement the inherited abstract method报错
public class ContactMainFragment extends Fragment implements OnClickListener { 提示:ContactMainFragmen ...
- label的for属性
一.使用介绍 <label>专为input元素服务,为其定义标记. for属性规定label与哪个表单元素绑定 label和表单控件绑定方式又两种: 1.将表单控件作为label的内容,这 ...