课程设计-基于matlabfir滤波器设计与仿真

上传人:Bod****ee 文档编号:47555580 上传时间:2018-07-02 格式:DOC 页数:12 大小:219.50KB
返回 下载 相关 举报
课程设计-基于matlabfir滤波器设计与仿真_第1页
第1页 / 共12页
课程设计-基于matlabfir滤波器设计与仿真_第2页
第2页 / 共12页
课程设计-基于matlabfir滤波器设计与仿真_第3页
第3页 / 共12页
课程设计-基于matlabfir滤波器设计与仿真_第4页
第4页 / 共12页
课程设计-基于matlabfir滤波器设计与仿真_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《课程设计-基于matlabfir滤波器设计与仿真》由会员分享,可在线阅读,更多相关《课程设计-基于matlabfir滤波器设计与仿真(12页珍藏版)》请在金锄头文库上搜索。

1、基于基于 Matlab 的的 FIR 滤波器设计与仿真滤波器设计与仿真一、实验目的一、实验目的1、掌握基本的 MATLAB 编程方法; 2、理解 FIR 滤波器的设计原理; 3、学会用 MATLAB 来编程实现 FIR 滤波器; 4、掌握基本的 simulink 交互式仿真,并对 FIR 滤波器模型并进行仿真; 5、学会对所得的结果进行分析。二、实验内容二、实验内容1、制作数据源:用电脑采集或用软件截取 5 至 10 秒的语音(如“宁波大学”.)(注意用 wavread 函 数 将语音文件读入到 matlab 时,有“右声道”和“左声道”两个信号,只要将其中一个声道 作为信号就可以。)2、信号

2、中混入随机噪声(注意信噪比,噪声强度不要太大):事先取一个参考值为 0,再取噪声的方差,方差的取值是根据原始语音的幅度取的噪声,噪声强度不宜过大或过小,适中即可。然后通过 randn(size(a) .* sqrt(noise_var) + noise_mu;语句产生与原始语音长度相同的随机噪声,最后把这个噪声添加到原始语音中, 得到加噪语音信号。3、设计一个 FIR 滤波器对前面的混合信号进行处理、降低噪声,并对性能进行分析:有限长单位冲激响应( FIR) 数字滤波器具有严格的线性相位,又具有任意的幅频特性。 同时FIR 系统只有零点,系统是稳定的,因而容易实现线性相位和允许实现多通道滤波器

3、。 只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列, 因而总能用因果 系统来实现。FIR 滤波器由于单位冲激响应是有限长的,可以用快速傅立叶变换( FFT) 算 法来实现过滤信号,从而大大提高运算效率。由于FIR 滤波器具有以上优点,在信号处理和 数据传输中得到了广泛的应用。运用窗函数设计滤波器是FIR 数字滤波器设计的主要方法 之一,由于运算简单,又有闭合形式的公式 可循,因而很实用。 有限长FIR数字滤波器的设计方法主要 是窗函数设计法。 常用的窗函数有以下几种, 矩形窗, 三角 窗,汉宁窗, 海明窗, 布拉克曼窗, 凯泽 窗( =7. 865) ,各种窗函数基本参数比

4、较如下表 1 。由表 1 得矩形窗虽然简便, 但存在明显的吉布斯效应,主瓣和第一旁 瓣之比只有 13dB,为了克服这些缺陷,设 计时可根据给定的滤波器技术指标,选择 滤波器长度 M 和窗函数 w(n),使其具有 最窄宽度的主瓣和最小旁瓣24、用 Simulink 设计 FIR 滤波器模型并进行仿真,所得结果进行分析:Simulink 创建模型并寻找解决实际问题的方法,可以用它轻松地搭建一个系统模型, 并设置模型参数和仿真参数。由于 Simulink 是交互式的应用程序,因此在仿真过程中,可 以在线修改仿真参数,并立即观察到改变后的仿真结果。 本文将介绍在 Simulink 环境下应用数字滤波器

5、设计模块进行信号处理(滤波)的可 视化设计技术。由于调用了 Matlab 高度集成化和可视化的计算机仿真环境,用户可以不用 编写任何程序语句,仅仅通过鼠标拖放和点击操作,就可完成复杂的数字滤波器的设计工 作。下面通过一个应用示例介绍这种基于可视化的信号滤波技术,用数字滤波器设计模块 (Digital Filter Design Block)设计、分析和实现滤波器。三、实验结果与分析三、实验结果与分析1 1、制作数据源:、制作数据源:我用电脑录制了同学的一段语音,内容是:现代语音处理技术。 该语音大概有 4,5 秒之长。然后用 wavread 函数将语音文件读入到 matlab 中, 其实现的语

6、句如下: a,fs=wavread(现代语音处理技术.wav);%读入语音a=a(:,1); 从中我们知道 fs 语音的采样频率。2 2、信号中混入随机噪声:、信号中混入随机噪声:noise_mu = 0; noise_var =0.005; a0= randn(size(a) .* sqrt(noise_var) + noise_mu; a1=a+a0; 事先取一个参考值为 0,再取噪声的方差为 0.005,0.005 是根据原始语音的幅度取的噪声, 噪声强度不宜过大或过小,适中即可。然后通过 randn(size(a) .* sqrt(noise_var) + noise_mu;语句产生与

7、原始语音长度相同的随机噪声,最后把这个噪声添加到原始语音中, 得到 a1 是信号中混入随机噪声的的语音。3 3、设计一个、设计一个 FIRFIR 滤波器:滤波器:3.13.1、FIRFIR 滤波器设计的原理:滤波器设计的原理:先对原始语音进行 FFT 变换,从 FFT 图中得到 passband 和 stopband 从中我们可以知道 了 FIR 滤波器的截止频率。确定我们选择是用低通,高通还是带通来处理加噪语音。 然后我们通过:fedge=input(Band edges in Hz=); mval=input(Desired magnitude values in each band=);

8、 dev=input(Desired ripple in each band=); FT=input(Sampling frequency in Hz=); 输入从 FFT 上得到的数据,passband 和 stopband,低通或高通,带通,通带纹波和阻带纹 波,以及从 wavread 函数中得到的采样频率 fs。 通过:N,fpts,mag,wt=remezord(fedge,mval,dev,FT); b=remez(N,fpts,mag,wt); 产生滤波器的阶数 N 和滤波器的系数 b。3然后把加噪的语音 a1 与 b 进行卷积:a11=conv(b,a1) 得到的是滤波后的语音信

9、号。3.23.2、FIRFIR 滤波器设计的程序:滤波器设计的程序:a,fs=wavread(现在语音处理技术.wav);%读入宁波大学语音a=a(:,1); FS=length(a); f=0:fs/FS:(FS-1)*fs/FS;%进行 FFT 变换x=fft(a); figure(1) plot(f,abs(x);title(原始信号 a 的 fft 图);axis(0 45000 0 1000); xlabel(f); ylabel(abs(x); grid on;%设置 FIR 滤波器format long fedge=input(Band edges in Hz=); mval=i

10、nput(Desired magnitude values in each band=); dev=input(Desired ripple in each band=); FT=input(Sampling frequency in Hz=); N,fpts,mag,wt=remezord(fedge,mval,dev,FT); b=remez(N,fpts,mag,wt); disp(FIR Filter Coefficients); disp(b) h,w=freqz(b,1,256);%画出幅频特性figure(2) subplot(2,1,1); plot(w/pi,20*log10

11、(abs(h);title(幅频特性); xlabel(omega/pi); ylabel(Gain,dB); grid on;%画出相频特性subplot(2,1,2) pha=angle(h); %得到相位 plot(w/pi,pha);title(相频特性);xlabel(omega/pi); ylabel(phase(Rad);4%原始语音信号图ts=1/fs; ta=(length(a)-1)/fs; t=0:ts:ta; figure(3) subplot(3,1,1); plot(t,a);title(原始信号 a);xlabel(t); ylabel(a); grid on;%

12、添加随机噪声noise_mu = 0; noise_var =0.005; a0= randn(size(a) .* sqrt(noise_var) + noise_mu; a1=a+a0;%在原始信号上加随机噪声的信号图subplot(3,1,2); plot(t,a1);title(在原始信号上加上噪声信号 a1);xlabel(t); ylabel(a1); grid on;%求卷积a11=conv(b,a1); %经过滤波器后的信号图M=(length(a11)-1)/fs; m=0:ts:M; subplot(3,1,3); plot(m,a11);title(经过滤波器后的信号 a

13、11);xlabel(m); ylabel(a11); grid on;3.33.3、FIRFIR 滤波器设计的结果及分析:滤波器设计的结果及分析:3.31.3.31.读入原始语音读入原始语音:a,fs=wavread(现代语音处理技术.wav);%读入语音a=a(:,1); fs 结果:fs =4410053.32.3.32.运行以上程序,得到图形以及数据如下:运行以上程序,得到图形以及数据如下:Figure1:原始语音信号的 FFT 图:从中我们知道 passband Fp=2000,stopband Fs=5000,我们采用低通滤波器1 0, 已知 fs=44100,则我们可以在命令窗口

14、输入以下数据,并按回车键结束。Band edges in Hz=2000 5000 Desired magnitude values in each band=1 0 Desired ripple in each band=0.015 0.01 Sampling frequency in Hz=44100Figure2:Figure2:FIR 滤波器的幅频特性和相频特性图:6Figure3:原始语音 a,加噪语音 a1,滤波语音 a11 的图形:输出的滤波器的系数如下:输出的滤波器的系数如下:FIR Filter CoefficientsColumns 1 through 4 0.006206

15、63342537 -0.00299477157558 -0.00753465899428 -0.01357686587944Columns 5 through 8 -0.01888688837353 -0.02058093395962 -0.01577417564722 -0.00239398901676Columns 9 through 12 0.02001592066194 0.04984757639435 0.08342687932906 0.11568130477741Columns 13 through 16 0.14112694375638 0.15514195779351 0.1

16、5514195779351 0.14112694375638Columns 17 through 20 0.11568130477741 0.08342687932906 0.04984757639435 0.02001592066194Columns 21 through 24 7-0.00239398901676 -0.01577417564722 -0.02058093395962 -0.01888688837353Columns 25 through 28 -0.01357686587944 -0.00753465899428 -0.00299477157558 0.00620663342537从上面的滤波效果来看,这个低通滤波器的效果还不错,基本上能把原始语音的滤波出来,虽然不能做到很好的把噪声滤除

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

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