FIR滤波器设计 下载本文

内容发布更新时间 : 2024/12/26 11:07:25星期一 下面是文章的全部内容请认真阅读。

基于FIR滤波器实现有噪非平稳信号的增强

班级:通信工程 姓名:雷佳 学号:1328404056

一、 实验目的

(1)巩固对FIR滤波器的认识和理解。

(2)熟悉并掌握有噪非平稳信号的滤波方法。 (3)掌握FIR滤波器的窗函数设计方法。

二、 实验原理

实现去噪的方法有很多种目前最主要的有: FIR滤波法:

FIR工作原理:在进入FIR滤波器前,首先要将信号通过A/D进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来还需经过数模转换,因此FPGA构成的FIR滤波器的输出须外接D/A模块。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。

三、 实验内容

在通信,信息处理以及信号检测等应用领域广泛使用滤波进行去噪和信号增强。FIR滤波器由于可实现线性相位特性以及固有的稳定特性而得到广泛应用,此次实验的主要内容是利用FIR滤波器对上次实验的噪声信号进行滤除,达到去除无用新号,增强有用信号的目的。 (1)对非平稳信号进行加383点窗,其中重叠部分为128点。 (2)设计合适的滤波器将采样得到的数据分别进行滤波 (3)画出图形,分析实验数据,并与原始信号作对比。

四、 实验过程

MATLAB实验代码:

fid = fopen('D:\\data1328404056.dat', 'rb'); FRM_LEN = 256;

data = fread(fid, inf, 'int16'); fs=8000; t=1:19;

fy=zeros(19,256); fz=zeros(19,256); fm=zeros(19,19); j=1;

N=FRM_LEN/2; for n=1:19

d=data((n-1)*256+1:(n-1)*256+383);

y=fft(d); b=abs(y); a=mean(b); m=0; c=1;

y1=zeros(1,383); y2=0; w1=0;

m=zeros(1,19); for k=1:192

if abs(y(k))>7*a && abs(y(k))>abs(y(k+1)) && abs(y(k))>=abs(y(k-1)) m(c)=k-1;

fm(j,c)=fs*m(c)/384; c=c+1; end

if m(1)>0&&m(2)==0

w1=fm(j,1)./4000+0.001; w4=fm(j,1)./4000-0.001; w2=max(w1); w3=max(w4); B=fir1(N,[w3,w2]); y1=filter(B,1,d); y2=fft(y1); end

if m(1)>0&&m(2)>0 w1=fm(j,1)./4000-0.01; w2=fm(j,2)./4000+0.01; B=fir1(N,[w1,w2]); y2=filter(B,1,d); w3=fm(j,1)./4000+0.0001; w4=fm(j,2)./4000-0.0001; B=fir1(N,[w3,w4],'stop'); y1=filter(B,1,y2); y3=fft(y1); y4=fft(y2); end

for h=1:256 t=0; t=h+127;

fz(j,h)=d(t);

fy(j,h)=y1(t); end end j=j+1; end zz=fz.'; zy=fy.';

tz=reshape(zz,256*19,1); ty=reshape(zy,256*19,1); subplot(1,2,1) plot(0:4863,tz); subplot(1,2,2); plot(0:4863,ty);

运行后得到的图像: 原始图像

滤波图像

五、 实验总结

滤波器设计在数字信号处理中占有极其重要的地位,FIR滤波器和IIR滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。

本次实验基于FIR滤波器实现有噪非平稳信号的增强,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现。

本次实验是我对MATLAB更加熟悉,对窗函数的调用和使用方法更加了解,对FIR滤波器的性质和特性认识的更加全面。此次实验是在上一次上实验之上的延拓,逐步提升了我们在数字信号处理方面的能力,对我以后的学习生活有着很大的帮助。