FIR数字带通滤波器的设计.docx

上传人:b****8 文档编号:9947385 上传时间:2023-05-22 格式:DOCX 页数:12 大小:427.98KB
下载 相关 举报
FIR数字带通滤波器的设计.docx_第1页
第1页 / 共12页
FIR数字带通滤波器的设计.docx_第2页
第2页 / 共12页
FIR数字带通滤波器的设计.docx_第3页
第3页 / 共12页
FIR数字带通滤波器的设计.docx_第4页
第4页 / 共12页
FIR数字带通滤波器的设计.docx_第5页
第5页 / 共12页
FIR数字带通滤波器的设计.docx_第6页
第6页 / 共12页
FIR数字带通滤波器的设计.docx_第7页
第7页 / 共12页
FIR数字带通滤波器的设计.docx_第8页
第8页 / 共12页
FIR数字带通滤波器的设计.docx_第9页
第9页 / 共12页
FIR数字带通滤波器的设计.docx_第10页
第10页 / 共12页
FIR数字带通滤波器的设计.docx_第11页
第11页 / 共12页
FIR数字带通滤波器的设计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

FIR数字带通滤波器的设计.docx

《FIR数字带通滤波器的设计.docx》由会员分享,可在线阅读,更多相关《FIR数字带通滤波器的设计.docx(12页珍藏版)》请在冰点文库上搜索。

FIR数字带通滤波器的设计.docx

FIR数字带通滤波器的设计

 

FIR数字带通滤波器的设计

课程设计

题目数字FIR带通滤波器的设计

学生姓名黄迎旭学号36

所在院(系)物电学院

专业班级电信1102班

指导教师井敏英

完成地点陕西理工学院

 

2014年9月26日

数字FIR带通滤波器的设计

黄迎旭

(陕西理工学院物电学院电子信息科学与技术专业1102班)

指导教师井敏英

[摘要]数字滤波器是由数字乘法器、加法器和延时单元组成的一种装置。

它是一个离散时间系统,其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。

本论文首先介绍了数字滤波器的基本概念和设计方法。

重点介绍了FIR数字滤波器的设计方法。

即窗函数法、频率采样法和等波纹最佳逼近法。

在此基础上,用DSP虚拟实现任意阶FIR数字滤波器。

用MATLAB来编辑设计程序以实现FIR数字带通滤波器的模拟过程。

[关键字]数字滤波器、MATLAB、切比雪夫等波纹最佳逼近法

ThedesignofdigitalFIRbandpassfilter

HuangYingxu

(shaanxiinstituteoftechnologycollegeofelectronicinformationscienceandtechnologyprofessional1102class)QuickEnglishteacherswell

[to]pickeddigitalfilterisadigitalmultiplier,adderanddelayunitconsistingofadevice.Itisadiscretetimesystem,itsfunctionistoinputthenumberofdiscretesignalcodeforprocessing,inordertoachievethepurposeofthechangeofsignalspectrum.Thispaperfirstlyintroducesthebasicconceptofdigitalfilterandthedesignmethod.IntroduceddesignmethodofFIRdigitalfilter.Thewindowfunctionmethod,frequencysamplingmethodandmoirebestapproximationmethod.Onthisbasis,thevirtualrealizationofarbitraryorderFIRdigitalfilterwithDSP.UseMATLABtoeditthedesigninordertorealizethesimulationofFIRdigitalband-passfilter.

[keywords],MATLAB,chebyshevdigitalfilterripplebestapproximationmethod

摘要……………………………………………………………………1

目录……………………………………………………………………2

1数字滤波器的基本概念和设计方法…………………………………3

数字滤波器的基本概念…………………………………………3

数字滤波器的设计方法…………………………………………3

窗函数法……………………………………………………3

频率采样法…………………………………………………4

切比雪夫等波纹最佳逼近法………………………………4

2MATLAB概述…………………………………………………………5

3设计方案………………………………………………………………6

4在MATLAB上的系统仿真………………………………………………7

设计过程………………………………………………………7

设计程序……………………………………………………7

仿真结果……………………………………………………9

结果分析……………………………………………………10

5总结………………………………………………………………10

6参考文献…………………………………………………………11

7致谢………………………………………………………………12

 

1数字滤波器的基本概念和设计方法

数字滤波器的基本概念

所谓数字滤波器,是指输入、输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。

因此,数字滤波的概念和模拟滤波相同,只是信号的形式和实现滤波方法不同。

正因为数字滤波通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊滤波功能。

如果要处理的是模拟信号,可通过A/DC和D/AC,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。

数字滤波器的设计方法

数字滤波器的设计方法主要有三种:

窗函数法、频率采样法和(切比雪夫)等波纹最佳逼近法。

窗函数法

数字信号处理的主要数学工具是博里叶变换.而傅里叶变换是研究整个时间域和频率域的关系。

不过,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。

做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。

无线长的信号被截断以后,其频谱发生了畸变,原来集中在f(0)处的能量被分散到两个较宽的频带中去了(这种现象称之为频谱能量泄漏)。

为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

信号截短以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截短以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了窗函数法设计的基本思想是:

首先根据技术指标要求,选取合适的阶数N和窗函数的类型w(n),使其幅频特性逼近理想滤波器幅频特性。

其次,因为理想滤波器的hd(n)是无限长的,所以需要对hd(n)进行截断,数学上称这种方法为窗函数法。

简而言之,用窗函数法设计FIR滤波器是在时域进行的,先用傅里叶变换求出理想滤波器单位抽样相应hd(n),然后加时间窗w(n)对其进行截断,以求得FIR数字滤波器的单位抽样响应h(n)。

 

对于窗函数的选择,应考虑被分析信号的性质与处理要求。

如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

频率采样法

一个有限长的序列,如果满足频率采样定理,可以通过频谱的有限个采样点的值被准确地得以恢复。

频率取样法是指在脉冲响应h(n)为有限长度的条件下,根据频域取样定理,对所要求的频率响应进行取样,从样点中恢复原来的频率特性,达到设计滤波器的目的频率抽样法从频域出发,把给定的理想频率响应加以等间隔抽样得到Hd(k)

频率取样法先对理想频响抽样,得到样值H(k)[6]。

再利用插值公式直接求出系统函Hd(ejw)数H(z)以便实现之,或者求出频响Hd(ejw)以便与理想频响作比较。

在[O,2π]区间上对Hd(ejw)进行N点采样,等效于时域以N为周期延拓。

设理想频响Hd(ejw)的采样是H(k),k=0,1,⋯,N-1,则其IDFT是

则FIR滤波器的系统函数可写为:

所以当采样点数N已知后,

便是常数,只要采样值H(k)确定,则系统函数H(z)就可以确定,要求的FIR滤波器就设计出来了。

频率取样法设计的关键是正确确定数字频域系统函数H(k)在Ω∈[0,2π]内的N个样点,其约束条件为

0≤k≤N-1

切比雪夫等波纹最佳逼近法

等波纹最佳逼近法是一种优化设计法,它克服了窗函数设计法和频率采样法的缺点,使最大误差(即波纹的峰值)最小化,并在整个逼近频段上均匀分布。

用等波纹最佳逼近法设计的FIR数字滤波器的幅频响应在通带和阻带都是等波纹的,而且可以分别控制通带和阻带的波纹幅度,这就是等波纹的含义。

最佳逼近是指在滤波器长度给定的条件下,使加权误差波纹幅度最小化。

在数据采集系统中,输入信号均含有种种噪声和干扰,它们来自被测信号源本身、传感器和环境等。

为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。

工程上常用的软件滤波方法有:

算术平均值法、滑动平均值法、防脉冲干扰平均值法等。

但对周期性干扰尤其是工频干扰和白噪声抑制作用较差,而且平滑度不高。

切比雪夫等波纹逼近方法是FIR滤波器设计方法之一。

FIR(FiniteImpulseResponse)滤波器:

有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。

因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

它采用“最大误差最小化”优化准则,即min(max|E(ω)|),其中权函数误差E(ω)=W(ω)[Hd(ω)-H(ω)],W(ω)为加权函数,Hd(ω)为期望频率响应,H(ω)为实际频率响应。

2MATLAB概述

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

传统的数字滤波器的设计过程复杂、计算工作量大,滤波特性调整困难,影响了它的应用。

这里介绍了一种利用MATLAB信号处理工具箱(SignalProcessingToolbox)快速有效的设计由软件组成的常规数字滤波器的设计方法。

给出了使用MATLAB语言进行程序设计和利用信号处理工具箱工具进行界面设计的详细步骤。

MATLAB语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其它语言的特点

1、语言简洁紧凑,使用方便灵活,库函数极其丰富。

MATLAB程序书写形式自由,利用其丰富的库函数避开了繁杂的子程序编程任务,压缩了一切不必要的编程工作。

由于库函数都是由本领域的专家编写,所以用户不必担心函数的可靠性。

2、运算符丰富。

由于MATLAB是用C语言编写的,所以MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。

3.MATLAB既具有结构化的控制语句,又有面向对象编程的特性。

4.语法限制不严格,程序设计自由度大

5.程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

6.MATLAB的图形功能强大。

在C和FORTRAN语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。

此外,MATLAB还具有较强的编辑图形界面的能力.

7.MATLAB具有的一项重要特色是拥有功能强大的工具箱。

MATIAB包含两个部分:

核心部分和各种可选的工具箱。

核心部分有数百个核心内部函数。

其工具箱又可分为两类:

功能性工具箱和学科性工具箱。

功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。

功能性工具箱能用于多种学科。

而学科性工具箱是专业性比较强的,如controltoolbox、signalprocessingtoolbox,communicationtoolbox等。

这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。

8.源程序的开放性。

除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。

利用MATLAB设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。

3设计方案

窗函数有截短和平滑的作用,窗函数选择的好,可以在相同阶次的情况下,提高滤波器的性能,或是在满足设计要求的情况下,减少滤波器阶数。

窗函数法是从时域进行设计。

窗函数法由于简单、物理意义清晰,因而得到了较为广泛的应用不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的截短产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。

(矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高)当选用主瓣宽度较窄时,虽然得到的幅频特性较陡峭,但通带、阻带波动会明显增加;当选用较低的旁瓣幅度时,虽然得到的幅频特性较平缓匀滑,但过渡带变宽。

因此,实际的选择往往是取折衷。

频率取样法的阻带衰耗比较小,可以通过增加过渡带样点的方法增大阻带衰耗。

对于一个无限长的序列,用频率采样法必然有一定的逼近误差,误差的大小取决于理想频响曲线的形状,理想频响特性变换越平缓,则内插函数值越接近理想值,误差越小。

为了提高逼近的质量,可以通过在频率相应的过渡带内插入比较连续的采样点,扩展过渡带使其比较连续,从而使得通带和阻带之间变换比较缓慢,以达到减少逼近误差的目的。

与窗函数设计法和频率采样法比较,由于切比雪夫等波纹逼近法使最大误差均匀分布,所以设计的滤波器性能价格比最高。

阶数相同时,这种设计法使滤波器的最大逼近误差最小,即通带最大衰减最小,阻带最小衰减最大;指标相同时,这种设计方法使滤波器阶数最低。

综合上述,本文采用切比雪夫等波纹逼近法来设计数字FIR带通滤波器。

4在MATLAB上的系统仿真

设计过程

(1)根据给定的逼近指标估算滤波器阶数N和误差加权函数W(w);

(2)采用remez算法得到滤波器单位脉冲响应h(n)。

设计程序

利用MATLAB编程设计一个数字带通滤波器:

rs=60;

rp=1;Fs=50Hz;

f=[,,,];

m=[0,1,0];

dat1=(10^(rp/20)-1)/(10^(rp/20)+1);

dat2=10^(-rs/20);

rip=[dat2,dat1,dat2];

[M,fo,mo,w]=remezord(f,m,rip,Fs);

hn=remez(M,fo,mo,w);

%M为FIR数字滤波器阶数,hn长度为N=M+1

%f为边界频率变量,0≤f≤1

%m是与f对应的幅度向量,f的长度是m的两倍,m中每个元素表示f给定的一个逼近频段上希望逼近的幅度值。

%rip表示f和m描述的各逼近频段允许的波纹幅度(幅频响应最大偏差),其长度为f的一半

%Fs为采样频率,缺省时默认Fs=2Hz

%dat1和dat2分别表示滤波器的通带和阻带振荡波纹幅度

[h,f]=freqz(b,1,512);%滤波器的幅频特性图

[H,W]=freqz(b,a,M)%当N是整数时函数返回N点的频率向量和幅频响应向量

figure

(1)

plot(f*fs/(2*pi),20*log10(abs(h)));%参数分别是频率与幅值

xlabel('频率/赫兹');

ylabel('增益/分贝');

title('滤波器的增益响应');

f1=500;f2=1500;f3=2000;f4=3000;%待滤波正弦信号频率

t=(0:

200)/fs;%定义时间的步长

s=sin(2*f1*pi*t)+sin(2*f2*pi*t)+sin(2*f3*pi*t)+sin(2*f4*pi*t);%滤波前信号

sf=filter(b,1,s);%使用filter函数对信号进行滤波

figure

(2)

subplot(211)

plot(t,s);%滤波前的信号图像

xlabel('时间/秒');

ylabel('幅度');

title('信号滤波前时域图');

subplot(212)

Fs=fft(s,512);

AFs=abs(Fs);

f=fs/512*(0:

255);

plot(f,AFs(1:

256));%滤波前的信号频域图

xlabel('频率/赫兹');

ylabel('幅度');

title('信号滤波前频域图');

figure(3)

subplot(211)

plot(t,sf);%滤波后的信号图像

xlabel('时间/秒');

ylabel('幅度');

title('信号滤波后时域图');

axis([-44]);

subplot(212)

Fsf=fft(sf,512);%滤波后的信号频域图

AFsf=abs(Fsf);%信号频域图的幅值

f=(0:

255)*fs/512;%频率采样

plot(f,AFsf(1:

256));%滤波后的信号频域图

xlabel('频率/赫兹');

ylabel('幅度');

title('信号滤波后频域图');

仿真结果

 

结果分析

5总结

通过这次课设,让我能更熟练地运用MATLAB。

在编辑程序中的一些语句符号的错误,都是由于粗心的原因造成的。

在设计的过程中,我学习到了许多关于数字滤波器设计的内容,以及在网上查找的参考文献,在MATLAB中完成了这次课设。

MATLAB在数字滤波器的设计中起着至关重要的角色,而MATLAB技术在信息技术的发展中起的作用越来越大,因此学好MATLAB这一工具还是很重要的。

6参考文献

[1]高西全,丁玉美.数字信号处理(第三版).西安电子科技大学出版社,2008

[2]基于MATLAB的FIR带通数字滤波器设计(毕业论文).机电工程学院,2012

7致谢

这次课设给我一个很好的学习平台,它让我学会了如何利用MATLAB器件去设计一个FIR数字滤波器,同时也培养了我查找资料、运用手册以及资料的分析整理等实际操作能力,提高了自学能力、组织能力及自身的综合分析能力。

在课设完成过程中,指导老师井老师给我许多的指导和帮助。

设计前,她为我们提供了详细的设计任务,并提出了许多建设性的意见;在设计基本完成时,她又对我们的设计论文进行审阅,并提出了详细的修改意见,让我的论文写作水平提高了很多。

在此毕业设计顺利完成之时,我想对她表示最衷心的感谢,谢谢老师对我们的支持与帮助。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2