急!!!!!matlab hanning函数 滤波器急!!!!!

基于MATLAB+GUI滤波器设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于MATLAB+GUI滤波器设计
上传于||文档简介
&&本​文​档​是​本​科​毕​业​论​文​,​利​用​M​A​T​L​A​B​ ​G​U​I​来​设​计​滤​波​器
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩61页未读,继续阅读
你可能喜欢查看: 15692|回复: 48|关注: 0
Matlab窗函数设计FIR滤波器
一、设计目的
1、熟悉FIR滤波器设计的基本方法。
2、掌握用窗函数设计FIR滤波器的基本原理和方法,熟悉MATLAB语言。
3、熟悉线性相位FIR滤波器的幅频特性和相位特性。
4、了解各种不同窗函数对滤波器性能的影响。
5、熟悉MCS51系列单片机基本原理。
6、掌握MCS51系列单片机基本指令和编程。
7、利用MATLAB仿真的数据,用单片机实现FIR滤波器的设计。
二、原理和方法
(一)FIR滤波器的设计
滤波器是设计来进行频率选择或频率分辨任务的线性时不变系统的通用名称。离散时间LTI(线性时不变)系统称为数字滤波器。按照LTI系统的单位脉冲响应长度是否有限可以分为有限长度脉冲响应(FIR)滤波器和无限长度脉冲响应(IIR)滤波器。
LTI离散系统可以用下列形式的线性常系数差分方程来描述:
& && && && && &&&(1)
& & (1)式中的下列部分描述的是一个因果FIR滤波器。
& && && && && && && &&&(2)
& & (1)式中的下列部分描述的是一个递推滤波器,其中输出y(n)可用其以前算得的值
& && && && && && && && &(3)
递推计算而得,所以也称为自回归(AR)滤波器。因为脉冲响应是无限长,所以称为IIR滤波器。FIR滤波器也称为非递推或滑动平均(MA)滤波器。式(1)中有两个部分:一个AR部分和一个MA部分。
FIR滤波器可以利用快速傅立叶变换进行快速卷积来实现,另外,FIR滤波器具有严格的相位特性,这对于语音信号处理和数据传输是很重要的。IIR滤波器的优异幅度响应是以相位的非线性为代价的,而非线性相位会引起频率色散。目前FIR滤波器的设计方法主要有三种:窗函数法、频率采样法和切比雪夫等波纹逼近的最优化设计方法。最常用的是窗函数法和切比雪夫等波纹逼近的最优化设计法。本设计中用的窗函数法比较简单,可以应用现成的窗函数公式,在技术要求不高的时候是比较方便灵活的。它从时域出发,用一个窗函数截取理想的hd(n)得到h(n),以有限长序列h(n)近似理想的hd(n);如果从频域出发,用理想的Hd(ejw)在单位圆上等角度取样得到h(k),根据h(k)得到h(z)将逼近理想的hd(z),这就是频率取样法。
(二)性能指标
数字滤波器的指标形式应为频域中的幅度和相位响应。在通带中通常希望具有线性相位响应,在FIR滤波器中,可以得到精确的线性相位。
幅度指标可以以两种方式给出。第一种叫做绝对指标,它提供对幅度响应函数| H(ejw)|的要求。第二种方法叫做相对指标,它以分贝(dB)值的形式提出要求,其值定义为:
为了说明这些指标,下面以低通滤波器设计为例进行讨论。
低通滤波器的典型绝对指标如图1a所示。其中
o[0,ωp]段叫做通带,δ1是理想通带响应中能接受的容限(或波动)。
o[ωs,π]段叫做阻带,δ2是相应的容限。
o[ωp,ωs]段叫做过渡带,在此段上对幅度响应没有限制。
相对指标(dB)
低通滤波器的典型相对技术指标如图1b所示。其中
oRp是通带波动。
oAs是阻带衰减的dB数。
图1&&FIR滤波器技术指标:(a)绝对&&(b)相对
& && &&&显然,上述两种指标里给定的参数存在一定的关系。由于绝对指标中的|Hd(ejw)|max
等于1+δ1,因此,有
二、MATLAB实现的内容及步骤(一)编制实验用主程序及相应子程序
1、在实验编程之前,认真复习有关FIR滤波器设计的有关知识,尤其是窗函数法的有关内容,阅读本实验原理与方法,熟悉窗函数及四种线形相位FIR滤波器的特性,掌握窗函数设计滤波器的具体步骤。
2、编制窗函数设计FIR滤波器的主程序及相应子程序。
(1)根据Hd(ejw),利用傅立叶变换,编制产生理想单位脉冲响应hd(n)的简单子程序。
(2)根据公式(7)到公式(10)编制相应的窗函数序列的子程序。
(3)在上述子程序的基础上设计主程序完成线性相位
FIR滤波器的窗函数法设计。
(二)上机实验内容
在计算机上调试自己设计好的窗函数法设计FIR线性相位滤波器设计程序。以下是一个例题及其标准答案,用于在调试过程中做参考。
[例]用窗函数法设计一个长度M等于11的线性相位FIR滤波器,其理想的幅频特性为
以下是参考答案:
hd(0)= hd(10)= -0.0450
hd(1)= hd(9)= 0.0000
hd(2)= hd(8)= 0.0750
hd(3)= hd(7)= 0.1592
hd(4)= hd(6)= 0.2251
hd(5)= 0.2500
窗函数类型h(0) =h(10)h(1) =h(9)h(2) =h(8)h(3) =h(7)h(4) =h(6)h(5) 矩形窗-0.04500.00000.07500.15920.22510.2500Hanning窗-0.00300.00000.03750.11940.21000.2500Hamming窗-0.00360.00000.02980.10860.20530.2500Blackman窗-0.00000.00000.01510.08110.19110.2500Kaiser窗(β=8.5)-0.00010.00000.01540.08190.19160.2500程序调试成功以后,请完成以下实验内容:
(1)用Hanning窗设计一个线形相位带通滤波器,其长度M=30,技术指标要求如下:
低端阻带边缘:ω1s=0.2π ;
低端通带边缘:ω1p=0.35π高端通带边缘:ω1p=0. 65π
高端阻带边缘:ω1s=0.8π绘制幅频和相位特性曲线、理想脉冲响应和实际脉冲响应离散数据图。如果M=45,重复这一设计,观察幅频和相位特性的变化,注意长度M变化对结果的影响。
(2)改用矩形窗和Blackman窗,设计步骤(1)中的带通滤波器,观察并记录窗函数对滤波器幅频和相位特性的影响,比较这三种窗函数的特点。
(3)用Kaiser窗设计一个专用的线性相位滤波器。M=40,理想幅频特性如下:
当β值分别为4,6,8时,设计相应的滤波器,比较它们的幅频和相位特性,观察并分析β值不同的时候对结果有什么影响。
有些公式没有显示出来&&原稿见附件
20:40 上传
点击文件名下载附件
387.83 KB, 下载次数: 6808
这个论坛上人不怎么热情啊 哎 还好搞定了
不错啊,急需:lol
这个单片机实验程序有没有啊?
还有思考题的答案有嘛?
谢谢分享~很有幫助~
非常感谢!!!!
谢谢楼主,FIR的matlab实现一直搞不太清楚
感谢 楼主分享好东西 非常需要 仔细学习学习 谢谢
站长推荐 /3
Powered bymatlab 数字带通滤波器_百度知道
matlab 数字带通滤波器
以前我做的一个完整的信号滤波前后的程序,可能数据有些不一样,但用MATLAB做滤波器的大体思路都差不多,希望对你有用。(完全自创,要给分哦)f=8*10^3;
%信号频率f1=30*10^3;
%噪声频率l=100;
%信号的长度fs=100*10^3; %采样频率%%%%%%%%%%%%%%%%生成信号t=(0:l-1)/s=0.5*sin(2*pi*f*t)+cos(2*pi*f1*t);figure(1);subplot(1,2,1);plot(fs*t(1:60),s(1:60)); title('时域波形');xlabel('时间');ylabel('幅度');nf=2^nextpow2(l);Y=fftshift(fft(s,nf));%k=-fs/2+(0:nf-1)*fs/
k=fs*linspace(0,1,nf)-fs/2;subplot(1,2,2);plot(k,abs(Y));
%信号的频谱图title('信号频谱');xlabel('频率');ylabel('幅度');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%滤波器设定ws=10*10^3;
%通带截止频率ws1=20*10^3;
%阻带起始频率ds=50;
%阻带衰减wt=2*pi*ws/
%经采样后的通带截止角频率wz=2*pi*ws1/
%阻带的wc=(wt+wz)/2;
%归一化后的滤波器截止频率n=ceil(6.6*pi/(wz-wt));
%t=(n-1)/2; q=fir1(n-1,wc/pi,hanning(n));%滤波器时域函数w=linspace(0,pi,512);h1=freqz(q,1,512); %进行512个点的傅里叶变换figure(2);plot(w/pi,20*log10(abs(h1)));title('滤波器频谱图');xlabel('频率');ylabel('幅度');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%经滤波器后的信号signal=conv(s,q);nx=(0:n+l-2)/figure(3);subplot(1,2,1);plot(nx(n:60)*fs,signal(n:60));title('经滤波后的信号时域图');xlabel('时间');ylabel('幅度');lx=2^nextpow2(nx);Y=fftshift(fft(signal,lx));k=-fs/2+(0:lx-1)*fs/
%subplot(1,2,2);plot(k,abs(Y));
%信号的频谱图title('滤波后信号频谱');xlabel('频率');ylabel('幅度');
其他类似问题
为您推荐:
带通滤波器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁急!MATlab,图像用高斯低通滤波器滤波,我已经把时域高斯滤波器h(n),现要用fft把图像和h(n)转化到频域。_百度知道
急!MATlab,图像用高斯低通滤波器滤波,我已经把时域高斯滤波器h(n),现要用fft把图像和h(n)转化到频域。
所以图像在做fft后要进行zero padding,希望会的大神能告诉我如何去做,我不知如何做zero padding。谢谢contine,我要做3*3的fft2的变换
我有更好的答案
用padarray函数做。具体用法请看帮助文档。
你好,你知道为什么要用高斯低通滤波器而不用fft的方法来滤波吗?
fft2本身不能滤波啊,只是变换到频域而已。你是要问空域滤波和时域滤波的等价性吗?
其他类似问题
为您推荐:
低通滤波器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁基于MATLAB实现滤波器设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于MATLAB实现滤波器设计
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
你可能喜欢}

我要回帖

更多关于 matlab hanning 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信