2016年北航数字信号处理上机实验二实验报告

上传人:xmg****18 文档编号:121220727 上传时间:2020-02-19 格式:DOC 页数:14 大小:446.82KB
返回 下载 相关 举报
2016年北航数字信号处理上机实验二实验报告_第1页
第1页 / 共14页
2016年北航数字信号处理上机实验二实验报告_第2页
第2页 / 共14页
2016年北航数字信号处理上机实验二实验报告_第3页
第3页 / 共14页
2016年北航数字信号处理上机实验二实验报告_第4页
第4页 / 共14页
2016年北航数字信号处理上机实验二实验报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《2016年北航数字信号处理上机实验二实验报告》由会员分享,可在线阅读,更多相关《2016年北航数字信号处理上机实验二实验报告(14页珍藏版)》请在金锄头文库上搜索。

1、. . .离散时间信号处理实验报告实验二FIR数字滤波器的设计与实现班 级 学 号 姓 名 日 期 .专业资料. . .实验二FIR数字滤波器的设计与实现滤波器设计与实现是数字信号处理中最基本的内容之一。我们知道滤波器分IIR滤波器(无限冲激响应滤波器)和FIR滤波器(有限冲激响应滤波器)两种。FIR滤波器的设计方法以直接逼近所需离散设计系统的频率响应为基础。FIR滤波器可以很容易地获得线性相移特性,不存在不稳定的问题,是实际系统中广为采用的一种数字滤波器。FIR滤波器的设计,通常有窗函数设计法、频率抽样设计法和最佳逼近设计法。窗函数设计法比较简单,它的频率特性是理想滤波器频谱与窗的频谱的卷积

2、,因而,其频率特性取决于窗的类型和长度。频率抽样设计法比较直观,但由于频域的采样会造成时域的混叠,从而滤波器叠性能不可能很高,为提高滤波器的性能,可以在过渡带加上01之间的过渡点。本实验主要采用窗函数设计法。FIR滤波器在Matlab中的实现包括时域卷积和filter滤波等方法,通过本实验可以对两种方法的实现过程和实现效果进行分析比较。相关Matlab函数说明1、有限冲激响应数字滤波器设计函数fir1和fir2Matlab函数fir1和fir2可以用来设计加窗的有限冲激响应数字滤波器。两个函数均产生一个线性相位设计。函数fir1可用于设计常规的低通、高通、带通和带阻线性相位有限冲激响应滤波器。

3、对于抽样频率为2Hz的情况,命令b = fir1(N,Wn)在向量b中返回以的升幂排列的N阶低通或带通滤波器的冲激响应系数。对于低通设计,归一化截止频率由标量Wn给定,它是在0和1之间的一个数。对于带通设计,Wn是包含指定通带边界的一个双元素向量Wn1,Wn2,其中0Wn1Wn21。命令b = fir1(N,Wn,high)其中N为一个偶数,用于设计高通滤波器。命令b = fir1(N,Wn,stop)其中Wn是一个双元素向量,用于设计带阻有限冲激响应滤波器。若没有指定,用海明窗作为默认值。命令b = fir(N,Wn,taper)使用在向量taper中给定的长度为N+1的窗系数。然而,窗系数

4、必须事先用一个适当的MATLAB函数来产生,如blackman,hamming,hanning,chebwin或kaiser。用到的命令为taper = blackman(N) taper = hamming(N) taper = hanning(N) taper = chebwin(N) taper = kaiser(N,beta)函数fir2可用于设计带有任意形状幅度响应的线性相位有限冲激响应滤波器。在其基本形状中,命令是b = fir2(N,fpts,mval)它在长度为N+1的向量b中返回以的升幂排列的冲激响应系数。fpts是给定的频率点向量,在0到1范围内以递增的顺序排列,其中第一个

5、频率点是0,而最后的频率点是1。和前面一样,抽样频率被假定为2Hz。mval是给定频率点的给定幅度值的向量,因此也必须和fpts的长度一样,默认使用海明窗。为使用其他窗口,所用到的命令是b = fir2(N,fpts,mval,taper)其中向量taper包含给定的窗系数。2、FIR滤波器的实现(1) FIR滤波器的时域卷积实现滤波器是一种能够让某些频率分量通过而拒绝其他频率成分或对某些频率成分进行修正的系统。对于一个线性时不变系统,其时域输入和输出关系可用卷积的方法描述,。对时域而言,均为数字信号,可在数字系统中实现。滤波器按照单位脉冲响应在某一有限区间外是否为零分为有限冲击响应(FIR)

6、滤波器和无限冲击响应(IIR)滤波器。若单位脉冲响应在某一有限区间以外都是零,称为有限冲击响应FIR系统;若单位脉冲响应在某一有限区间外不是零,则称为无限冲击响应IIR系统。在线性时不变系统的卷积描述中,对于FIR滤波器,为有限项,范围从0到M,故。即通过卷积运算,可实现对输入信号的滤波处理。(2) FIR滤波器的filter滤波实现MATLAB中有滤波函数filter,用法为y=filter(b,a,x)。其中b和a为差分方程系数,x为输入序列,y为滤波输出序列。对于FIR滤波器,a设置为1即可。MATLAB实现主要包括两个部分,即滤波器设计和滤波。代码如下:%fir滤波器系数设计fl_ka

7、iser = 750 1150;fl_mag = 1 0;fl_dev = 0.01 0.05;fl_n_kaiser,fl_wn,fl_beta,fl_ftype = kaiserord(fl_kaiser,fl_mag,fl_dev,fs);h = fir1(fl_n_kaiser,fl_wn,fl_ftype,kaiser(fl_n_kaiser+1,fl_beta);%滤波函数y = filter(h,1,x);3、wav格式音频文件读取函数 y = wavread(file)y,fs,nBits = wavread(file)输入参数:file为wav格式的音频文件。输出参数:y为存

8、放音频数据的矩阵;fs为该音频文件的采样频率;nBits表示语音信号的每个采样点所占用的位数。4、wav格式音频文件写入函数wavwrite(y,fs,nBits,wavfile)wavwrite(y,fs,wavfile)wavwrite(y,wavfile)输入参数:y是存放要写入文件的音频数据,fs是写入文件的音频信号采样频率,缺省的情况下默认fs为8000Hz。nBits是表示语音信号的每个取样点所占用的位数,它必须是8,16,24或32。nBits缺省的情况下默认为16。wavfile是生成的WAV文件的文件名。实验题目1、已知两个信号序列:用conv函数求两个序列的卷积和,并绘制三

9、个序列的波形。(1)MATLAB 源代码:clc;n1=0:20;n2=0:10;y1=0:30;x1n=0.8.n1;x2n=ones(1,11);y=conv(x1n,x2n);subplot(3,1,1)stem(n1,x1n);subplot(3,1,2)stem(n2,x2n);subplot(3,1,3)stem(y1,y);(2)实验结果:第一张图为f1,第二张图为f2,第三张图为f1*f22、利用wavread函数(或者audioread函数)将加噪声的音频文件“第一场雪加噪声.wav”读入Matlab的工作空间,利用load函数从h40.mat文件中读取40阶离散时间带通滤波

10、器的脉冲响应,用conv函数求两个序列的卷积和,并利用wavwrite函数(或者audiowrite函数)将结果写入音频文件“第一场雪滤波40.wav”中。绘制两个音频信号的波形,并通过音频播放器比较两个音频信号的区别。(1)MATLAB 源代码:a,Fs,bits = wavread(第一场雪加噪声);load(h40.mat);a=a;a1=a(1,1:end);a2=a(2,1:end);h1n=h40;Y1=conv(a1,h1n);subplot(6,1,1)plot(a1);xlabel(n1);ylabel(a1);subplot(6,1,2)plot(h1n);xlabel(n

11、2);ylabel(h1n);subplot(6,1,3)plot(Y1);xlabel(y1);ylabel(a1*h1n);Y2=conv(a2,h1n);subplot(6,1,4)plot(a2);xlabel(n1);ylabel(a2);subplot(6,1,5)plot(h1n);xlabel(n2);ylabel(h1n);subplot(6,1,6)plot(Y2);xlabel(y2);ylabel(a2*h1n);ak=zeros(2,3109334);ak(1,1:end)=Y1;ak(2,1:end)=Y2;ak=ak;wavwrite(ak,Fs,bits,第一场

12、雪滤波40.wav);(2)实验结果:说明:n1为左声道信号,n2为右声道信号3、利用wavread函数(或者audioread函数)将加噪声的音频文件“第一场雪加噪声.wav”读入Matlab的工作空间,利用load函数从h392.mat文件中读取392阶离散时间带通滤波器的脉冲响应,用conv函数求两个序列的卷积和,并利用wavwrite函数(或者audiowrite函数)将结果写入音频文件“第一场雪滤波392.wav”中。绘制两个音频信号的波形,并通过音频播放器比较两个音频信号的区别。(1)MATLAB 源代码:a,Fs,bits = wavread(第一场雪加噪声);load(h392

13、.mat);a=a;a1=a(1,1:end);a2=a(2,1:end);n1=1:3109295;n2=1:393;y1=1:(3109295+393-1);h1n=h392;Y3=conv(a1,h1n);subplot(6,1,1)plot(n1,a1);xlabel(n1);ylabel(a1);subplot(6,1,2)plot(n2,h1n);xlabel(n2);ylabel(h1n);subplot(6,1,3)plot(y1,Y3);xlabel(y1);ylabel(a1*h1n);Y4=conv(a2,h1n);subplot(6,1,4)plot(n1,a2);xl

14、abel(n1);ylabel(a2);subplot(6,1,5)plot(n2,h1n);xlabel(n2);ylabel(h1n);subplot(6,1,6)plot(y1,Y4);xlabel(y2);ylabel(a2*h1n);ak=zeros(2,3109687);ak(1,1:end)=Y3;ak(2,1:end)=Y4;ak=ak;wavwrite(ak,Fs,bits,第一场雪滤波392.wav);plot(fft(a)(2)实验结果:说明:n1为左声道信号,n2为右声道信号(3)分析与说明通过音频播放器播放原始音频信号及经2、3处理后的音频信号可以发现,原始信号能听到明显的噪声,而2、3处理后噪声音量变小,信噪比变大,说明经过带通滤波器噪声被较好地滤除。同时发现经393阶带通滤波器处理后的音频噪声比经40阶带通滤波器处理后的音频噪声小,说明阶数越高滤波效果越好。.专业资料.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号