2019年山西师范大学吴飞祥基于MATLAB的DTFT滤波器的设计与实现.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
山西师范大学本科毕业论文
基于MATLAB的FFT滤波器的设计与实现
姓名倪瑞
院系物理与信息工程学院
专业电子信息工程专业
班级0705
学号0752030242
指导教师行小帅
答辩日期
成绩
基于MATLAB的FFT滤波器的设计与实现
内容摘要
随着科学技术的发展,数字信号分析与处理在当代社会中发挥着越来越重要的作用,数字滤波器也得到了广泛的应用,MATLAB为数字滤波器的设计提供了一个宽广的平台。
它是一门高级语言,主要应用于数据分析与工程计算。
本文综合应用了设计数字滤波器所需的知识和信号频谱分析的知识,来实现信号的滤波。
本文给出了数字滤波器的定义,设计原理,通过对录音机采集信号,运用MATLAB对书铺信号进行仿真,得出其频谱图,对加入干扰信号后的频谱变化进行分析,选择适当类型地滤波器进行滤波,恢复原有信号。
通过着这种方法,可以达到去除噪音的目的。
关键词:滤波器 MATLAB仿真频谱变化
Based on the MATLAB FFT filter of design and implementation
Abstract
Along with the technological development of digital signal processing is playing more and more important role, digital filters also a wide range of applications, for the design of filter MATLAB provides a platform. It is a language used for data analysis and engineering calculation high-level language. The paper gives the definition of digital filter, design principle, through to the recorder, using MATLAB signal collecting book shop signal, and simulation region.the spectrum diagrams, to join the jamming signal spectrum change after analysis, choose proper type to filter for filter, restore original signal. Through this method, reach the purpose of removing noise.
Keywords: filter MATLAB simulation Spectrum change;
目录
一、引言 (1)
二信号分析处理的内容 (1)
三数字滤波器 (1)
(一)数字滤波器的定义以及类型的选择 (1)
(二)数字滤波器的实验设计过程 (2)
(三) FIR滤波器与IIR滤波器的比较 (2)
(四) FIR滤波器设计原理 (2)
(五)用MATLAB实现DTFT系统 (3)
四、信号采集 (3)
五、选择并设计相应滤波器除噪 (5)
六、结束语 (7)
参考文献 (8)
致谢 (9)
基于MATLAB的FFT滤波器的设计与实现
学生姓名:倪瑞指导教师:行小帅
一、引言
噪音污染在现代社会中显现的越来越严重。
各种各样的噪声污染都将会影响到人们的日常生活。
数字滤波器能够针对不同的噪声进行滤波并恢复原有信号。
本文通过对滤波器类型的选择,运用MATLAB软件对采集的信号除噪,达到滤波的效果。
二信号分析处理的内容
对信号进行分析与处理,能够充分获取信息和有效利用的信息。
什么是信号分析,信号分析就是通过测试方法或解释方法找出不同信号的特征,进而了解其特性,掌握它们随时间或者频率变化的频率过程。
通过信号分析,可以用一组有限的参量去表示一个复杂波形的信号,并能够用这些分量的组成情况或者这组参量去考察信号特性。
还可以将一个复杂信号分解成若干个简单信号之和。
信号分析是获取信号传递系统特征信息或者信号源信息的一种非常重要的手段,我们通常会对信号特征深入分析,得到系统特性或者信号源。
信号处理就是指通过对信号的变换和加工,把一个信号变换成另一个信号的过程。
例如,采用一定手段去除原信号中混杂的噪声,恢复原信号,这就是最基本信号处理过程。
所以可以将信号处理理解成为了获得特定的目的,通过一定的手段去改造信号的过程。
与模拟信号处理方法相比较,数字信号处理方法有非常多明显有点:(1)精度很高。
在模拟信号处理中,要想元器件精度非常高是比较困难的,但对于数字信号处理系统,只要有足够字长就能够达到很高的精度或者分辨率。
(2)稳定性很好。
数字信号处理系统由少量大规模集成电路的标准组件组成,工作起来稳定可靠,但是模拟系统的元器件,容易产生感应和寄生振荡等,也非常容易受温度影响。
(3)便于大规模集成。
在数字信号处理中,数字部件具有高度规范性,没有模拟电路中各种各样模电感器、电容器和非标准型器件。
特别是在处理低频信号时,运用模拟电路,各个器件数值和体积都非常大,不能获得很好的选择性,这时若采用数字信号处理就能够体现出它的优越性。
(4)灵活性很强。
数字信号处理是采用专门的或通用的数字系统。
性能由乘法器各个系数和运算程序决定。
这些全都存储在数字系统中,所以我们只需要改变运算程序或者系数,就可以改变系统的特性,这样子就比模拟系统方便得多。
(5)数字信号处理系统能够实现多维的信号处理。
能够利用庞大的存储单元来存储二维图像的信号,也能够实现二维或者多维滤波。
(6)数字信号处理系统能够获得很高性能指标。
比如在有限长有限长脉冲响应数字滤波器中能够实现非常准确的线性相位的特性,但模拟系统就不可以。
三数字滤波器
(一)数字滤波器的定义以及类型的选择
数字滤波器是指能够改变输入信号中某些频率成分或这滤去某些频率成分,它是通过一种数值运算来改变输入信号的频谱结果,所以也可以说是一种频率选择器。
数字滤
波器字信号处理方面起着非常重要的作用,在信号的检测方面,过滤方面还有参数的估计方面等都得到了广泛应用。
数字滤波器按其频率响应可以分为低通滤波器、高通滤波器、带通滤波器还有带阻滤波器带。
数字滤波器对不同频率的信号有着不同的作用:在通带内能够使信号受到非常小的衰减而通过;在通带与阻带之间的一段过渡带可以使信号受到不同程度的衰减;在阻带内可以使信号受到很大的衰减而起到抑制作用。
滤波器按照单位冲激响应可以分为:有限长冲激响应滤波器(FIR 数字滤波器)和无限长冲激响应滤波器(IIR 数字滤波器),其中 IIR 数字滤波器只需要用较低的阶数就可以获得非常好的选择性,而且存储单元少,运算量也小,但相位是非线性的。
而且选择性越好,它的非线性就越明显。
FIR 滤波器能够获得线性相位特性,但是阶数要求往往较高,这样才能够获得很好选择性。
它是一种时间离散的系统。
它有很多种优点:精度非常高、可靠性很强、能够程控改变特性或者复用、非常便于集成。
数字滤波器在图像信号处理方面、医学生物信号处理方面、语言信号处理方面以及其他的应用领域都有着非常广泛应用。
(二)数字滤波器的过程设计
(1)根据实际的需要来确定滤波器性能指标要求;
(2)选择用稳定的、因果的离散线性时不变系统去逼近这个性能指标; (3)利用有限的精度运算去实现所设计的系统功能;
(4)检验模拟验证所设计系统是否能够满足所给定的性能要求指标。
(三)FIR 滤波器与IIR 滤波器的优缺点
与IIR 滤波器相比较,FIR 滤波器是能够比较容易的设计成“线性相位”的。
意思也就是说线性相位滤波器延迟出入信号,但不会产生失真信号。
在大部分的微型处理器上都可以通过一个命令循环就可以完成FIR 计算。
FIR 滤波器非常适合多级应用。
有了多级功能,我们能够减少样本率,或者可以增加样本率,不管是增加或者减少,FIR 滤波器都允许忽略其中一些计算,这样也就提高了计算机的高效性。
如果使用IIR 滤波器,则每一个输出的结果都要求有理想的数值属性。
在日常应用中,DSP 滤波器需要有限的字节数通过精确的计算这样才能够完成任务。
为什么精确的有限的计算在IIR 中都将会引起非常显著的问题,那是因为IIR 具有反馈作用。
但是FIR 就没有反馈,他们运用比较少的字节数就可以完成相应的工作任务。
FIR 滤波器也能够通过部分计算来完成工作。
FIR 滤波器有哪些缺点:与IIR 滤波器相比较,FIR 滤波器有时需要更多存储空
间。
(四) FIR 滤波器的设计原理
通过以上滤波器的性能分析,提出滤波器的性能要求:用最小的滤波器阶次来满足一定的性能指标。
FIR 滤波器单位脉冲响应为有限长的,网络中也没有反馈回路。
FIR 滤波器频率响应函数:1
0()()N jw
jwn n H e h n e --==∑,其中N 为长度。
也可以用
()()()jw j w H e Hg w e θ=来表示,其中()w θ为相位特性函数,Hg(w)为幅度特性函数。
对于第一类线性相位,相位特性函数()w θ=w τ-,(τ是常数)。
线性相位条件:对于第一类线性相位FIR 的约束条件:要求τ和h(n)满足
()w θ=w τ-,其中τ=
1
2
N -;h(n)=h(N-n-1),其中01n N ≤≤-。
对
Hg(w)的约束:(1)当h(n)=h(N-n-1),N
为奇数时,
Hg(w)=h(τ)+10
2()cos[()]M n h n w n π-=-∑由上式可以看出Hg(w)关于w=0, π,2π三点偶对称,
所以其可以实现低通滤波器,高通滤波器,带通滤波器和带阻滤波器。
(2)当h(n)=h(N-n-1),
N 为偶数时,Hg(w)=
1
2()cos[()]M n h n w n π-=-∑,其中τ=
1
2
N -,有上式可以看出Hg(w)关于w= π奇对称,关于w=2π偶对称,所以对这种情况不能够实现高通滤波器,带阻滤波器。
(五)用MATLAB 实现DTFT 系统
MATLAB 工具箱只通过简单函数调用,就为滤波器的设计与实现开辟了广阔的天地,这就为滤波器的设计和应用提供了非常丰富而简便的方法。
设输入一个离散信号x[n],则其DTFT :()[]jw
jwn
n x e x n e
∞
-=-∞
=
∑.其反变换x [n]=
1()2jw jwn x e e dw π
π
π
-
⎰.用MATLAB 计算一个信号DTFT 时,若x[n]是无限长信号时,则将
x[n]截断到一个有限长信号,计算时需要注意到()jw x e 时定义在连续变量。
我们求值时 只能在离散样本上去求解。
所以频率样本要多选择一些,以免减少误差。
合适的样本应 该选择在02w π≤≤上,2/k w k N π=,其中k=0,1… N-1.当01n M ≤≤-,x[n]对应
频率特性1
2/0
()[]k
M jw j kn N n x e
x n e π--==∑,K=0,1,…,N-1
由于FFT 在MATLAB 应用中能高效实现,则在设计程序时,用FFT 来实现信号的DTFT 。
四、信号采集
我们首先运用windows 中录音机的设备录制一段语音信号,然后对语音信号进行采集并进行采样,就可以得到数据文件。
我们将它命名为'sxsd.wav'。
然后在Matlab 中写入path ,将’sxsd .wav’加入MATLAB 路径中,然后在MATLAB 下键入: [a ,Fs ,Nbits] =wavread (′sxsd ′);
这样就可以的得到声音的数据变量a ,然后我们把得到信号放入Matlab 中,通过fft 变换就可以得到采集到的原信号及其频谱。
程序:
[y,fs,nbits]=wavread('sxsd'); sound(y,fs,nbits);%回放语音信号 n=length(y);%求出信号长度 Y=fft(y,n);%傅里叶变换 subplot(2,1,1);
plot(y);
subplot(2,1,2);
plot(abs(Y));
图一是原有信号频谱
构造干扰信号:s=10※sin(2※pi※2000※t);
我们把声音数据变量a和干扰信号变量s相加便可以得到的含有噪声语音信号a1,然后播放a1:
sound(a1,Fs);
我们通过扬声器能够明显听到"山西师大"的声音里含有干扰噪声。
图2是伴有噪声的语音信号a1的频谱。
我们可以看到a1的频谱与原信号频谱的区别,这是因为加入干扰噪声所造成的。
图一:a1原信号及其频谱
加入干扰信号的程序:
[y,fs,nbits]=wavread('sxsd');
n=length(y);
t=0:1:100;
noise=10*sin(2*pi*2000*t);
s=y+noise;
subplot(2,1,1);
plot(s);
S=fft(s);
subplot(2,1,2);
plot(abs(S));
图2
五、选择并设计相应滤波器除噪
通过对所得待处理信号的频谱分析,数字特征,信号的特点,滤波器选择原理,我们应该选择低通数字滤波器进行滤波。
低通数字滤波器的归一化性能指标如下:信号采样频率1000HZ ,截止频率100HZ,阶数为100。
rp=1;rs=30;
FIR
我们可以采用数字滤波器或者IIR数字滤波器来实现,本文利用Matlab软件,然后通过采用FIR数字滤波器的设计方法,来实现三角窗的低通滤波器的设计,程序如下:passrad=0.3*pi;
w1=boxcar(101);
n=1:1:101;
hd=sin(passrad*(n-51))./(pi*(n-51));
hd(51)=passrad/pi;
h=hd.*rot90(w1);
[MAG,RAD]=freqz(h);
plot(RAD,20*log10(abs(MAG)));
本文采用双线性变换法来对噪声信号进行滤波,程序如下:
[y,fs,nbits]=wavread('sxsd');
n=length(y);
t=0:1:100;
noise=10*sin(2*pi*2000*t);
s=y+noise;
S=fft(s);
z11=filter(num11,den11,s);
m11=fft(z11);
subplot(2,2,1);
plot(abs(m11),'r');
grid;
subplot(2,2,3);
plot(s);
rid;
subplot(2,2,4);
plot(z11);
grid;
图3为运行结果
图3
六、结束语
语音信号处理是一门语言与数字信号处理箱结合的学科,但在这里不是纯粹研究语音学,而是把它当成一种特殊的输入信号来研究,一种输入向量来处理。
通过MATLAB 应用软件,我们可以画出原始信号,可以获得其频谱图,通过滤波器的分析与设计可以对加噪信号进行滤波。
我们将这一过程应用于某一实际领域,即对某一信号加噪并进行处理。
论文特色:我们将一实际语音信号数字化了,这样我们可以只通过数字信号处理将语音信号进行分析处理。
通过比较加噪信号前后的频谱,可以得到低通滤波器滤波效果最好。
由此可知语音信号主要分布在低频段。
写论文是一个不断学习的过程,从最初刚写论文时对问题的模糊认识到最后能够对该设计有深刻的认识,通过翻阅大量资料,对信号处理与滤波器的设计以及特性的选择有了更加深入的了解。
总之,通过毕业设计,我体会到要做好一件事情,需要有系统的思维方式和方法,对待要解决的问题,要有耐心、要善于运用已有的资源来补充自己。
参考文献
[1].薛年喜编著,MATLAB在数字信号处理中的应用,清华大学出版社,2003。
[2].王嘉梅编著,基于MATLAB的数字信号处理与实践开发,西安电子科技大学出版社,2007。
[3].方勇主编,数字信号处理-原理与实践,清华大学出版社,2006.3。
[4].周辉董正宏编著,数字信号处理及MATLAB实现,北京希望电子出版社,2005。
[5].陈后金编著,信号分析与处理实验,高等教育出版社,2006.8。
[6]. 徐科军主编,信号分析与处理,清华大学出版社,2006年4月第一版。
[7].张永顺冯存前赵宗保,基于MATLAB的DRFM系统仿真和分析,现代电子技术,200年
第7期。
[8].李凌冰徐娅萍李蒙熊平,基于MATLAB的测控系统滤波器设计,中国制造业信息
化 2008年第3期。
[9].祈翔,基于MATLAB的系统频域分析的实现,井冈山学院学报,2007年第12期。
致谢:在这大学即将结束的时刻,回想四年的学习生活在老师朋友的大力支持帮助下,走得辛苦却也还算充实,在论文即将搁笔之际,思绪万千,心情久久都不能平静。
我在这里要把我的敬意和赞美献给一位平凡的人——我的导师,行老师。
您学识渊博,治学严谨,思维缜密,视野宽阔,不论在什么时候你总是那样耐心地教育我,指导我,使我在学习中不断进步。
使我树立了鉴定的学术目标,领会了基本的思考方式,从论文题目的选定到开题报告的指导,到论文中期报告以至结束都是您的精心辅导下完成的。
谢谢你,我尊敬的老师。
在这里我还要感谢我的爸爸妈妈,谢谢你们的养育之恩,大学生活中遇到的坎坎坷坷,总是你们在我背后默默鼓励支持,谢谢你们。
你们的健康快乐是我今生最大的心愿。
我还要感谢大学里我的舍友,我的朋友,谢谢你们给我大学生涯增添了活力,增添了色彩。
从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我最诚挚的谢意。