MATLAB设计二维matlab低通滤波器程序

2252人阅读
本文演示如何使用Matlab的FilterBuilder工具设计低通滤波器,并演示其滤波功能。
1.在Matlab中输入 filterbuilder
2.设置如下图所示,其中FS为信号采样率,本实验中,信号采样率为10Hz
3.点击View Filter Response可以查看信号频率响应
4.回到matlab工作界面,此时matlab中有个Hlp的变量,滤波器的参数保存在该变量中。。
5.由前面的设置可知道,当前滤波器的带宽为2Hz,截止频率为3Hz。故我们生成包含2Hz和3Hz频率的测试数据。
代码如下:
&& t=0:1/10:100;
&& y=sin(2*pi*2*t)+sin(2*pi*3*t);
&& Y=fft(y);
&& Y=abs(Y);
&& Y=Y/length(Y);
&& F=linspace(0,10,length(t));
&& plot(F(1:501),Y(1:501))
6.用生成的滤波器对数据y进行滤波。
&& d=filter(Hlp,y);
7.观察滤波后数据的频谱。
&& D=fft(d);
&& D=abs(D);
&& D=D/length(D);
&& plot(F(1:501),D(1:501))
附录:完整的源程序
&& filterbuilder
The variable 'Hlp' has been exported to the workspace.
&& t=0:1/10:100;
&& y=sin(2*pi*2*t)+sin(2*pi*3*t);
&& Y=fft(y);
&& Y=abs(Y);
&& Y=Y/length(Y);
&& F=linspace(0,10,length(t));
&& plot(F(1:501),Y(1:501))
&& d=filter(Hlp,y);
&& D=fft(d);
&& D=abs(D);
&& D=D/length(D);
&& plot(F(1:501),D(1:501))
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:294203次
积分:5820
积分:5820
排名:第2200名
原创:274篇
转载:93篇
评论:23条
(3)(11)(9)(16)(6)(2)(4)(2)(7)(5)(5)(2)(3)(5)(9)(7)(8)(1)(2)(2)(2)(1)(1)(1)(1)(1)(1)(2)(7)(2)(9)(11)(11)(6)(3)(9)(9)(15)(8)(7)(1)(1)(4)(1)(1)(4)(8)(13)(24)(19)(26)(5)(16)(10)(4)(1)(2)(1)(8)(4)用matlab编写使用二维高斯低通滤波器的函数,使用大小为3*3,标准差分别为0.5,1.5,2.5_百度知道
用matlab编写使用二维高斯低通滤波器的函数,使用大小为3*3,标准差分别为0.5,1.5,2.5
灰度图像真彩色图像伪彩色图像进行滤波
高斯低通滤波图像进行低通滤波代码灰度图像彩色图像取RGB三量进行滤波再整合I1=imread('flower.jpg');
%读取图像I=rgb2gray(I1);
%图像变灰度图象%灰度图像二维连续Frourier变换零频率移频谱s=fftshift(fft2(I));[M,N]=size(s);
%别返s行数M列数Nn=2;
%n赋初值%GLPF滤波d0=5<img class="word-replace" src="/api/getdecpic?picenc=0ad<img class="word-replace" src="/api/getdecpic?picenc=0ad(程序d0=30例) d0=30;
%初始化d0n1=floor(M/2);
%M/2进行取整n2=floor(N/2);
%N/2进行取整for i=1:M
d=sqrt((i-n1)^2+(j-n2)^2);
%点(i,j)傅立叶变换距离
h=1*exp(-1/2*(d^2/d0^2));
%GLPF滤波函数
s(i,j)=h*s(i,j);
%GLPF滤波频域表示
endends=ifftshift(s);
%s进行反FFT移%s进行二维反离散Fourier变换取复数实部转化符号8位整数s=uint8(real(ifft2(s)));
%创建图形图像象imshow(s);
%显示GLPF滤波处理图像title(&#39;GLPF滤波(d0=30)&#39;);
%经GLPF滤波图像添加标题
其他类似问题
为您推荐:
您可能关注的推广
低通滤波器的相关知识
其他2条回答
太简单丢啊
我也等答案着呢,知道了告诉我一声啊,
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁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,
阶数预测函数:
buttord, cheb1ord, cheb2ord,
低通模拟原型函数:
besselap, buttap, cheb1ap, cheb2ap,
频率变换函数:
lp2bp, lp2bs, lp2hp, lp2lp
滤波器离散函数:
bilinear, impinvar
通过逼近线性幅值响应直接在离散域设计数字滤波器
广义巴特沃斯滤波器设计
设计零点多于极点的低通巴特沃斯滤波器
通过逼近给定的时域或频域响应得到数字滤波器
时域建模函数:
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
任意响应设计,包括非线性相位、复频域滤波器
Raised Cosine
平滑正弦过渡的低通响应
Sptool信号分析工具箱GUI
Wintool窗函数查看工具箱GUI
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。维库欢迎您!
微信扫一扫关注我们
当前位置:&>>&&>>&&>>&基于MATLAB与QUARTUS II的 FIR滤波器设计与验证
  1 引言
  FIR数字能够满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器的温漂和噪声等问题,具有精确的线性相位、易于硬件实现和系统稳定等优点,可广泛应用于现代通信系统。实际信号处理应用往往要求系统兼具实时性和灵活性,而现有设计方案(如)则难以同时达到这两方面要求。而使用具有并行处理特性的FPGA实现FIR滤波器,具有很强的实时性和灵活性,因此为数字信号处理提供一种很好的解决方案。
  在嵌入式导航计算机工程项目中,石英挠性加速度计的输出信号需进行数字滤波才能为导航计算机提供原始数据,为此需要设计一款FIR数字滤波器。这里使用MATLAB软件和公司的FPGA开发软件QuartusⅡ进行FIR滤波器的设计仿真,该设计方案能够直观检验滤波器的设计效果,提高设计效率,缩短设计周期。
  2 使用FIR IP Core设计滤波器
  Altera公司提供的FIR Compiler是一个结合Altera FP-GA器件的FIR
Core,DSP Builder与FIR Compiler紧密结合。DSP Builder提供一个FIR Core的应用环境和仿真验证环境。而FIR滤波器设计实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等,这里采用窗函数法。
  2.1 滤波器指标设计
  FIR滤波器设计需达到以下指标:低通滤波,采样频率Fs为1 000 Hz,截止频率Fc为100 Hz,最小阻带衰减As为50dB,16阶滤波器,16位输入数据宽度,14位系数数据宽度。
  2.2 利用FIR IP Core生成FIR模块
  在FIR编译器中,将FIR滤波器设置为16阶低通滤波器,单速率采样。采样频率为1 000 Hz,截止频率为100 Hz,窗类型选择海明窗,然后生成系数并保存。滤波器系数的计算以所能达到最高精度为目的,计算出的滤波器系数未考虑有限字长效应,必须量化滤波器系数。由于在FPGA内要使用硬件实现滤波器,因此采用定点计算。按照指标要求设置参数,生成的FIR模块如图1所示。
  3 验证方法的确定
  基于FPGA的复杂DSP系统的调试验证是一项繁琐工作,采用传统的逻辑分析方法调试基于FPGA器件实现的设计几乎不可能。验证方法决定验证结果的准确性和验证工作量的大小。目前对基于FPGA的FIR数字滤波器的验证,通常采用输入一个信号序列(白噪声、多频谱混合信号等)作为激励,对滤波器的输出结果进行分析对照,判断滤波器是否符合设计要求。
  4 利用Simulink检验滤波效果
  Simulink是MATLAB中一个专门用于对动态系统进行建模、仿真和分析的软件包。通过调用模块,可以构成仿真数字滤波器特性的结构框图。输入低频50 Hz和高频400 Hz的2个信号,利用所设计的滤波器进行滤波。建立仿真电路结构,导入前面所设计的FIR滤波器,如图2所示。
  图3为输入波形在Simulink中Scopel的波形,图4为输出波形在Simulink中Scope的波形。比较图3和图4可看出,该FIR滤波器可有效滤除高频部分。因为在DSPbuilder中,输入正弦波形是通过查找表得到的每个周期256个点的量化值形式,故无物理单位,因此输出波形也是量化值形式。
  5 使用ModelSim进行RTL级仿真
  完成Simulink软件中的模型设计,仿真成功后,需要在ModelSim中仿真。因为Simulink中的仿真属于系统验证性质,是对mdl文件进行算法级仿真,而生成描述是RTL级,针对具体硬件结构。二者之间可能存在软件理解上的差异,转换后的VHDL代码实现可能与mdl模型描述的情况不完全相符,这就需要使用ModelSim进行RTL级功能仿真。图5所示是采用ModelSim仿真的结果,即低通滤波器的输出。可看出,与simulink中的仿真结果基本一致。
  6 使用Quartus实现时序仿真
  ModelSim完成的RTL级仿真只是功能仿真,其仿真结果并不能精确反映电路的全部硬件特性,因此,时序仿真仍十分重要。图6是用QuartusⅡ实现的时序仿真,可看出,时序仿真满足设计要求。
  7 使用嵌入式逻辑SignalTap II测试
  只进行工程软件仿真远远不够,还必须进行硬件仿真。signalTap II是Quartus II软件中集成的一个内部逻辑分析软件,使用它可以观察设计的内部信号波形,方便用户查找引起设计的缺陷。从Simulink建模仿真到Mod-elsim RTL仿真和Quartus II时序仿真,输入正弦波都是仿真信号,而不是实际信号源。在硬件实际运行时,可以从外部信号源接入器件内部或者在其内部存储正弦波数据。这里采用后者,即在顶层文件中引入LPM_ROM宏模块,在其中存入正弦波数据的mif文件(存储初始化文件),FIR滤波器模块直接从ROM中读取数据。实际测试发现,经过设计的低通滤波器后,高频信号被滤除,只有输出低频信号(标准的正弦波),滤波效果满足系统要求,嵌入式中的输出波形如图7所示。
  8 结束语
  本文在FPGA内利用DSPBuilder实现FIR数字低通滤波器,通过Simulink算法仿真和ModelSim进行RTL仿真,接着在Quartus中进行时序仿真。最后用嵌入式逻辑分析仪SignalTapII进行实际测试,结果证明采用该方法设计的FIR数字低通滤波器功能正确,性能良好,可以提高FIR滤波器的设计质量,加快设计进程,验证结果直观明了。随着各类数字信号处理的IP Cores的进一步完善,基于FPGA的DSP系统的应用会更加广泛。&&参考文献:[1].&mdl&datasheet&.[2].&mif&datasheet&.来源:
技术资料出处:kingpoo
该文章仅供学习参考使用,版权归作者所有。
因本网站内容较多,未能及时联系上的作者,请按本网站显示的方式与我们联系。
【】【】【】【】
上一篇:下一篇:
本文已有(0)篇评论
发表技术资料评论,请使用文明用语
字符数不能超过255
暂且没有评论!
12345678910
12345678910
12345678910
随着网络的飞速发展,物联网带入了更多的私人信息,网络安全越来越显得重要,防火墙是网络安全的一个重要组成部分。本文包括三种不同的硬件Fire Wall解决方案,针对不同的标准而设定不同的解决方案,满足网络安全的需求。
[][][][][][][][][][]基于MATLAB的低通滤波器设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于MATLAB的低通滤波器设计
上传于||文档简介
&&《&#8203;通&#8203;信&#8203;系&#8203;统&#8203;的&#8203;综&#8203;合&#8203;设&#8203;计&#8203;与&#8203;实&#8203;践&#8203;》&#8203;―&#8203;―&#8203;基&#8203;于&#8203;M&#8203;A&#8203;T&#8203;L&#8203;A&#8203;B&#8203;的&#8203;低&#8203;通&#8203;滤&#8203;波&#8203;器&#8203;设&#8203;计
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩14页未读,继续阅读
你可能喜欢

我要回帖

更多关于 matlab 低通滤波器 的文章

 

随机推荐