您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于MATLAB的数字信号滤波处理..
数字信号处理课程设计报告(选题:基于MATLAB的数字信号滤波处理)系(院):信息学院专业:10通信工程班级:通信一班学号:14102301239姓名:粟清明完成日期:2013年5月21日数字信号处理课程设计2目录1课程设计内容求...............................11.1设计内容.........................................11.2设计要求.........................................12课程设计理论基础..............................12.1FIR滤波器........................................12.2窗函数法设计FIR滤波器的原理......................22.3窗函数类型的选择.................................33课程设计的具体实现及仿真结果分析...............43.1语音信号采集....................................43.2语音信号的时频分析...............................43.3语音信号加噪与频谱分析........................43.4设计FIR数字滤波器................................53.4.1低通滤波器的设计.............................53.4.2带通滤波器的设计..............................63.4.3高通滤波器的设计.............................73.5用滤波器对噪音信号进行滤波........................83.6比较滤波前后语音信号的波形及频谱..................83.6.1低通滤波前后语音信号的波形及频谱..............83.6.2带通滤波前后语音信号的波形及频谱.............93.6.3高通滤波前后语音信号的波形及频谱.............104设计总结......................................11数字信号处理课程设计31课程设计内容及要求1.1设计内容了解wavread()函数的使用方法,利用wavread()函数对语音信号进行采集,将语音信号转换成计算机能够运算的有限长序列,加一定的噪声,并选择适当的滤波器进行滤波观察滤波后的效果。1.2设计要求①语音信号采集,采用(.wav)格式②运用wavread()函数对采集的语音信号进行时频分析③运通rand()或randn()函数给语音信号加一定的噪声信号,并且对加噪后的语音信号进行时频分析④用窗函数法设计FIR低通滤波器,其设计具体指标如下:低通滤波器:fp=1000Hzfc=1200HzAp=1DBAs=100DB高通滤波器:fp=3500Hzfc=4000HzAp=1DBAs=100DB带通滤波器:fp1=1200Hzfc1=1000HzAp=1DBAs=100DBfp2=3000Hzfc2=3200Hz⑤运用fftfilt()函数对加噪语音信号进行滤波处理2课程设计理论基础2.1FIR滤波器FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。有限长单位冲激响应(FIR)滤波器有以下特点:(1)系统的单位冲激响应h(n)在有限个n值处不为零;(2)系统函数H(z)在|z|0处收敛,极点全部在z=0处(因果系统);(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。数字信号处理课程设计4FIR滤波器的系统函数用下式表示:。H(n)就是FIR滤波器的单位脉冲响应。FIR滤波器最重要的优点就是由于不存在系统极点,FIR滤波器是绝对稳定的系统。2.2窗函数法设计FIR滤波器的原理设所希望的滤波器的理想的频率响应函数为jdeH,则其对应的单位脉冲响应为deeHnhjjdd21(4.1)窗函数设计法的基本原理是用有限长单位脉冲响应序列nh逼近nhd。由于nhd往往是无限长序列,而且是非因果的,所以用窗函数n将nhd截断,并进行加权处理,得到:nnhnhd(4.2)nh就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数jeH为njNnjenheH10(4.3)式中,N为所选窗函数n的长度。我们知道,用窗函数法设计的滤波器性能取决于窗函数n的类型及窗口长度N的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表4.1。数字信号处理课程设计5表1各种窗函数的基本参数窗函数旁瓣峰值幅度/dB过渡带宽阻带最小衰减/dB矩形窗-134π/N-12三角形窗-258π/N-25汉宁窗-318π/N-44哈明窗-418π/N-53不莱克曼窗-5712π/N-74凯塞窗(α=7.865)-5710π/N-80这样选定窗函数类型和长度N之后,求出单位脉冲响应nnhnhd,并按照式(4.3)求出jeH。jeH是否满足要求,要进行演算。一般在nh尾部加零使长度满足2的整数次幂,以便用FFT计算jeH。如果要观察细节,补零点数增多即可。如果jeH不满足要求,则要重新选择窗函数类型和长度N,再次验算,直至满足要求。如果要求线性相位特性,则nh还必须满足nNhnh1根据上式中的正、负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。要根据所设计的滤波特性正确选择其中一类,例如,要设计线性相位低通特性,可以选择nNhnh1这一类,而不能选择nNhnh1这一类。2.2窗函数类型的选择本次课程设计选用凯塞窗(Kaiser),Kaiser窗可以通过调整参数值来折中选择主办宽度和旁办衰减,采用Kaiser窗设计FIR滤波器具有很大的灵活性。凯塞窗是一种适应性较强且比较灵活的窗函数,它的表达式为:数字信号处理课程设计6这种窗函数是近似于给定旁办电平,使主办具有最大能量意义下的最佳窗函数。其中β是形状参数,用以调节主办宽度和旁办电平,一般β选为4<β<9,此时旁办电平约在30dB和-67dB之间。(当β=5.44时,接近汉明;β=8.5,接近布莱克曼;β=0,为矩形。)3课程设计的具体实现及仿真结果分析3.1语音信号采集用录音设备录下一段音频以yr.wav格式存储在电脑的中,以便接下的过程中使用。3.2语音信号的时频分析利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。接下来,对语音信号yr.wav进行采样,具体程序如下:[y,fs,nbits]=wavread('yr.wav');sound(y,fs,nbits);%回放语音信号N=length(y);%求出语音信号的长度Y=fft(y,N);%傅里叶变换subplot(2,1,1);plot(y);title('原始信号波形');subplot(2,1,2);plot(abs(Y));数字信号处理课程设计7title('原始信号频谱')程序结果图如下:3.3语音信号加噪与频谱分析在本次课程设计中,我们是利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。在这里,选用Randn(m,n)函数。语音信号添加噪声及其频谱分析的主要程序如下:[y,fs,nbits]=wavread('yr.wav');N=length(y);%求出语音信号的长度Noise=0.01*randn(N,2);%随机函数产生噪声Si=y+Noise;%语音信号加入噪声sound(Si);subplot(2,1,1);plot(Si);title('加噪语音信号的时域波形');S=fft(Si);%傅里叶变换subplot(2,1,2);plot(abs(S));title('加噪语音信号的频域波形');程序结果图如下:数字信号处理课程设计83.4设计FIR数字滤波器用窗函数法设计FIR滤波器的步骤。如下:(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。(2)构造希望逼近的频率响应函数。(3)计算h(n).。(4)加窗得到设计结果。3.4.1低通滤波器的设计设计指标为:fp=1000Hzfc=1200HzAp=1DBAs=100DB具体设计程序如下:rp=1;rs=100;(阻带最小衰减)p=1-10.^(-rp/20);%通带阻带波纹s=10.^(-rs/20);wp=0.2;(通带截止频率)ws=0.28;(阻带截止频率)fpts=[wpws];数字信号处理课程设计9mag=[10];dev=[ps];[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev);%计算出凯塞窗N,beta的值b21=fir1(n21,wn21,Kaiser(n21+1,beta));%由fir1设计滤波器[h,w]=freqz(b21,1);%得到频率响应plot(w/pi,abs(h));title('FIR低通滤波器');程序结果图如下:3.4.2带通滤波器的设计设计指标:fp1=1200Hzfc1=1000HzAp=1DBAs=100DBfp2=3000Hzfc2=3200Hz具体设计程序如下:[n,wn,bta,ftype]=kaiserord([0.160.240.60.68],[010],[0.010.10870.01]);%用kaiserord函数估计出滤波器阶数n和beta参数b22=fir1(n,wn,ftype,kaiser(n+1,bta),'noscale');[hh1,w1]=freqz(b22,1,256);figure(1)subplot(2,1,1)plot(w1/pi,20*log10(abs(hh1)))gridxlabel('归一化频率w');ylabel('幅度/db');程序结果图如下:数字信号处理课程设计103.4.3高通滤波器的设计设计指标:fp=3500Hzfc=4000HzAp=1DBAs=100DB具体设计程序如下:rp=1;rs=100;p=1-10.^(-rp/20);%通带阻带波纹s=10.^(-rs/20);wp=0.9;ws=0.7;fpts=[wswp];mag=[01];dev=[ps];[n23,wn23,beta,ftype]=kaiserord(fpts,mag,dev);b23=fir1(n23,wn23,'high',Kaiser(n23+1,beta));%由fir1设计滤波器[h,w]=freqz(b23,1);%得到频率响应plot(w*12000*0.5/pi,abs(h));title('FIR高通滤波器');axis([3000600001.2]);程序结果图如下:数字信号处理课程设计113.5用滤波器对噪音信号进行滤波用自己设计的各滤波器分别对加噪的语音信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波。函数fftfilt用的是重叠相加法实现线性卷积的计
本文标题:基于MATLAB的数字信号滤波处理..
链接地址:https://www.777doc.com/doc-3808324 .html