基于FIR的有噪声语音信号处理课程设计论文.docx
《基于FIR的有噪声语音信号处理课程设计论文.docx》由会员分享,可在线阅读,更多相关《基于FIR的有噪声语音信号处理课程设计论文.docx(20页珍藏版)》请在冰豆网上搜索。
基于FIR的有噪声语音信号处理课程设计论文
1课程设计的主要目的和内容及要求
课程设计目的:
1.通过本次课程设计,综合运用数字信号处理技术课程和其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。
2.初步培养学生对工程设计的独立工作能力,学习设计的一般方法。
3.通过课程设计树立正确的设计思想,提高学生分析问题、解决问题的能力。
4.进行设计基本技能的训练,如查阅设计资料和手册、程序的设计、调试等。
本课题设计内容:
1.利用Windows下的录音机或其他软件,选择Windows系统的“叮······”(ding.wav),并对该信号进行采样;
2.语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图;
3.产生噪声信号并加到语音信号中,得到被污染的语音信号,并回放语音信号;
4.污染信号的频谱分析,画出被污染的语音信号时域波形和频谱;
5.根据有关的频谱特性,采用Kaiser窗设计FIR数字低通,高通,带通,带阻滤波器并画出4种滤波器的幅频、相频图;
6.用自己设计的4种滤波器分别对被不同噪声污染的信号进行滤波;
7.分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;
8.回放语音信号。
设计要求:
1.熟悉离散信号和系统的时域特性。
2.掌握数字信号处理的基本概念,基本理论和基本方法。
3.掌握序列快速傅里叶变换方法。
4.学会MATLAB的使用,掌握MATLAB的程序设计方法。
5.掌握利用MATLAB对语音信号进行频谱分析。
6.掌握MATLAB设计FIR数字滤波器的方法和对信号进行滤波的方法。
3设计的详细原理
设计主要可分为原始信号部分,噪声信号部分,低通滤波部分,高通滤波部分,带阻滤波部分,带通滤波部分等六个部分。
3.1原始信号部分
本次使用的原始信号是windows系统的“叮······”(ding.wav)语音信号,可利用Windows下的录音机(wavread)或其他软件进行获取。
利用sound函数进行试听。
其中wavread的主要参数有采样频率(Fs),采样信号(x),采样位数(bits),本次设计中Fs=10000,bits=16从而可获得时间长为1s的语音信号x。
sound函数调用格式为sound(x,Fs,bits)。
对x信号进行采样y=fft(x,m),其中m=length(x)。
最后利用plot函数分别画出x信号的时域图和频域图subplot(211);plot(t,x);title('原始信号波形');xlabel('time(s)');subplot(212);plot(f,abs(y));title('原始信号频谱');xlabel('frequency(hz)');便可完成原始信号部分的设计。
同时通过图像可观察x的特性,其频率在800Hz左右。
3.2噪声信号部分
本次课程设计中主要有四种噪声信号,它们分别是高频噪声信号noise1=0.01*sin(2*pi*6000*t)低频噪声信号noise2=0.01*sin(2*pi*200*t)带阻噪声信号noise3=0.01*sin(2*pi*4000*t)+0.01*sin(2*pi*5000*t)带通噪声信号noise4=0.01*sin(2*pi*5000*t)+0.01*sin(2*pi*200*t)。
其中noise1为一个频率为5000Hz的高频信号可作为低通滤波中x的噪声输入得到X1信号,noise2为频率为200Hz的低频信号可作为高通滤波中x的噪声输入得到X2信号,noise3为频率分别为4000Hz和5000Hz的带阻信号可作为带阻滤波中x的噪声输入得到X3信号,noise4为频率分别为200Hz和5000Hz的带通信号可作为带通滤波中x的噪声输入得到X4信号。
3.3低通滤波部分
低通滤波部分可分两小部分:
噪声部分和低通滤波器设计部分。
噪声部分
低通滤波的噪声信号为noise1,使X1=x+noise1'获得噪声污染后的信号X1,并利用sound回放信号X1与原始信号x进行比较。
然后利用plot函数画X1的时域图和经采样后的频域图,与原信号时域图和频域图进行比较。
低通滤波器设计部分
所谓低通滤波器是当信号频率(w)大于通带边界频率(wp)时将无法通过此滤波器,而当w低通滤波器设计的主要参数有通带边界频率wp1,阻带截止频率ws1,3dB通带截止频率wc1。
其中wp1=2*pi*fp1/Fs,ws1=2*pi*fs1/Fs(其中fp1,fs1为模拟频率)wc1=(wp1+ws1)/2。
本次设计中fp1=2000,fs1=3000。
选定参数后利用b1=fir1(N,wc1,kaiser(N+1)),[hn1w1]=freqz(b1,1,512)语句实现低通滤波器的设计,其中N为滤波器的阶数,本次设计中假定N=38。
在通过x1get=filter(b1,1,X1);语句进行对X1信号的滤波得到信号x1get,再利用Y1get=fft(x1get,m);语句进行x1get的采样。
同时运用subplot(323);plot(w1/pi,20*log10(abs(hn1)));title('低通滤波器幅频');xlabel('w');subplot(324);plot(w1/pi,unwrap(angle(hn1)));title('低通滤波器相频');xlabel('w');语句绘出滤波器的幅频和相频图,并同时画出x1get的时域图和频域图与X1信号进行比较。
3.4高通滤波部分
高通滤波部分可分两小部分:
噪声部分和高通滤波器设计部分。
噪声部分
高通滤波的噪声信号为noise2,使X2=x+noise1'获得噪声污染后的信号X2,并利用sound回放信号X2与原始信号x进行比较。
然后利用plot函数画X2的时域图和经采样后的频域图,与原信号时域图和频域图进行比较。
高通滤波器设计部分
所谓高通滤波器是当信号频率(w)小于通带边界频率(wp)时将无法通过此滤波器,而当w>wp时信号便可通过。
高通滤波器设计的主要参数有通带边界频率wp2,阻带截止频率ws2,3dB通带截止频率wc2。
其中wp2=2*pi*fp2/Fs,ws2=2*pi*fs2/Fs(其中fp2,fs2为模拟频率)wc2=(wp2+ws2)/2。
本次设计中fp2=500,fs2=300。
选定参数后利用b2=fir1(N,wc2,'high',kaiser(N+1)),[hn2w2]=freqz(b2,1,512)语句实现低通滤波器的设计,其中N为滤波器的阶数,本次设计中假定N=38。
在通过x2get=filter(b2,1,X2);语句进行对X2信号的滤波得到信号x2get,再利用Y2get=fft(x2get,m);语句进行x2get的采样。
同时运用subplot(323);plot(w2/pi,20*log10(abs(hn2)));title('高通滤波器幅频');xlabel('w');subplot(324);plot(w2/pi,unwrap(angle(hn2)));title('高通滤波器相频');xlabel('w');语句绘出滤波器的幅频和相频图,并同时画出x2get的时域图和频域图与X2信号进行比较。
3.5带阻滤波部分
带阻滤波部分可分两小部分:
噪声部分和带阻滤波器设计部分。
噪声部分
带阻滤波的噪声信号为noise3,使X3=x+noise3'获得噪声污染后的信号X3,并利用sound回放信号X3与原始信号x进行比较。
然后利用plot函数画X3的时域图和经采样后的频域图,与原信号时域图和频域图进行比较。
带阻滤波器设计部分
所谓带阻滤波器是当信号频率(w)大于通带边界频率(wpl)小于通带边界频率(wph)时将无法通过此滤波器,而当w>wph或w带阻滤波器设计的主要参数有通带边界频率wp3l,wp3h,阻带截止频率ws3l,ws3h,3dB通带截止频率wc3。
其中wp3=[2*fpl3/Fs2*fph3/Fs];ws3=[2*fsl3/Fs2*fsh3/Fs];(其中fp3,fs3为模拟频率)wc3=(wp3+ws3)/2。
本次设计中fpl3=2000,fph3=8000,fsl3=3000,fsh3=7000。
选定参数后利用b3=fir1(N,wc3,'stop',kaiser(N+1)),[hn3wp3]=freqz(b3,1,512)语句实现低通滤波器的设计,其中N为滤波器的阶数,本次设计中假定N=38。
在通过x3get=filter(b3,1,X3);语句进行对X3信号的滤波得到信号x3get,再利用Y3get=fft(x3get,m);语句进行x3get的采样。
同时运用subplot(323);plot(w2/pi,20*log10(abs(hn3)));title('带阻滤波器幅频');xlabel('w');subplot(324);plot(w2/pi,unwrap(angle(hn3)));title('带阻滤波器相频');xlabel('w');语句绘出滤波器的幅频和相频图,并同时画出x3get的时域图和频域图与X3信号进行比较。
3.6带通滤波部分
带通滤波部分可分两小部分:
噪声部分和带通滤波器设计部分。
噪声部分
带通滤波的噪声信号为noise4,使X4=x+noise4'获得噪声污染后的信号X4,并利用sound回放信号X4与原始信号x进行比较。
然后利用plot函数画X4的时域图和经采样后的频域图,与原信号时域图和频域图进行比较。
带通滤波器设计部分
所谓带通滤波器是当信号频率(w)小于通带边界频率(wpl)大于通带边界频率(wph)时将无法通过此滤波器,而当wpl带通滤波器设计的主要参数有通带边界频率wp4l,wp4h,阻带截止频率ws4l,ws4h,3dB通带截止频率wc4。
其中wp4=[2*fpl4/Fs2*fph4/Fs];ws4=[2*fsl4/Fs2*fsh4/Fs];(其中fp4,fs4为模拟频率)wc4=(wp4+ws4)/2。
本次设计中fpl4=500,fph4=2000,fsl4=700,fsh4=1800。
选定参数后利用b4=fir1(N,wc4,kaiser(N+1)),[hn4wp4]=freqz(b4,1,512)语句实现低通滤波器的设计,其中N为滤波器的阶数,本次设计中假定N=38。
在通过x4get=filter(b4,1,X4);语句进行对X4信号的滤波得到信号x4get,再利用Y4get=fft(x4get,m);语句进行x4get的采样。
同时运用subplot(323);plot(wp4/pi,20*log10(abs(hn4)));title('带通滤波器幅频');xlabel('w');subplot(324);plot(wp4/pi,unwrap(angle(hn4)));title('带通滤波器相频');xlabel('w');语句绘出滤波器的幅频和相频图,并同时画出x4get的时域图和频域图与X4信号进行比较。
4设计的步骤和过程
本次课程设计的步骤为原始信号部分——噪声信号部分——低通滤波部分——高通滤波部分——带阻滤波部分——带通滤波部分——完成设计并运行
4.1原始信号部分的设计
程序如下:
clf;
%原始音频抽样
Fs=10000;
bits=16;
T=1;ts=1/Fs;
N=38;
[x,Fs,bits]=wavread('ding.wav');%利用Windows下的录音机,录制一段自己的语音信号,时间为1s
x=x(:
1);
m=l