您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Matlab语音信号分析大作业
语音信号分析求解及报告实验程序1.语音信号的采集利用Windows下的录音机,录制一段自己的话音,时间在1s左右。将文件命名为a格式转化为wav,放在E盘目录下。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样。确认E:\a.wav为文件路径2.语音信号的频谱分析要求首先画出语音信号的时域波形;%原始语音信号采样后的时域分析[x1,fs,bits]=wavread('E:\a.wav');figure(1)subplot(2,1,1);plot(x1)title('原始语音采样后时域信号');xlabel('时间轴n');ylabel('幅值');然后对语音号进行快速傅里叶变换,得到信号的频谱特性。%采样后的FFT变换分析y1=fft(x1,8182);subplot(2,1,2);plot(abs(y1(1:512)))title('原始语音FFT频谱')xlabel('点数N');ylabel('幅值');3、在采集得到的语音信号中加入高斯白噪声信号(可用randn函数来实现,注意要根据语音的强度来控制白噪声的强度),然后对加入噪声信号后的语音号进行快速傅里叶变换,得到信号的频谱特性。并利用sound试听前后语音信号的不同。%加入噪声信号后的语音信号的时域分析[x1]=wavread('E:\a.wav');x1=x1+0.01*randn(34816,2);figure(2)subplot(2,1,1);plot(x1)title('原始语音采样后时域信号');xlabel('时间轴n');ylabel('幅值');%加入噪声信号后的语音信号采样后的FFT变换分析y1=fft(x1,8182);subplot(2,1,2);plot(abs(y1(1:512)))title('原始语音FFT频谱')xlabel('点数N');ylabel('幅值');分别设计IIR和FIR滤波器,对加入噪声信号的语音信号进行去噪,画出并分析去噪后的语音信号的频谱,并进行前后试听对比。语音信号的主要频率范围为100~4000Hz,据此来给出数字低通滤波器性能指标;阻带最小衰减Rs=45dB,通带最大衰减Rp=3dB,采样频率根据自己语音信号采样频率设定。方法一:双线性变换法设计IIR数字滤波器%双线性变换法设计IIR数字滤波器[x1]=wavread('E:\a.wav');x1=x1+0.01*randn(34816,2);Ts=1/fs;R1=10;wp=2*pi*100/fs;ws=2*pi*4000/fs;Rp=3;Rs=45;wp1=2/Ts*tan(wp/2);ws1=2/Ts*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');[Z,P,K]=buttap(N);[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);[bz,az]=bilinear(b,a,fs);[H,W]=freqz(bz,az);figure(3)plot(W*fs/(2*pi),abs(H))gridxlabel('频率/Hz');ylabel('幅度')title('IIR低通滤波器')f1=filter(bz,az,x1);figure(4)subplot(2,1,1)plot(x1)title('IIR低通滤波器滤波前的时域波形');subplot(2,1,2)plot(f1);title('IIR低通滤波器滤波后的时域波形');F0=fft(f1,8182);f=fs*(0:511)/8182;figure(5)y2=fft(x1,8182);subplot(2,1,1);plot(f,abs(y2(1:512)));sound(f1,44100);title('IIR低通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');subplot(2,1,2)F1=plot(f,abs(F0(1:512)));title('IIR低通滤波器滤波后的频谱')xlabel('频率/Hz');ylabel('幅值');方法二:窗函数法设计FIR数字滤波器%窗函数法设计FIR数字滤波器[x1]=wavread('E:\a.wav');x1=x1+0.01*randn(34816,2);Ts=1/fs;R1=10;wp=2*pi*100/fs;ws=2*pi*4000/fs;Rp=3;Rs=45;wdelta=ws-wp;N=ceil(8*pi/wdelta);wn=(ws+wp)/2;[b,a]=fir1(N,wn/pi,hamming(N+1));figure(6)freqz(b,a,512);title('FIR低通滤波器');f2=filter(b,a,x1);figure(7)subplot(2,1,1)plot(x1)title('FIR低通滤波器滤波前的时域波形');subplot(2,1,2)plot(f2)title('FIR低通滤波器滤波后的时域波形');sound(f2,44100);F0=fft(f2,8192);f=fs*(0:511)/8192;figure(8)y2=fft(x1,8192);subplot(2,1,1);plot(f,abs(y2(1:512)));title('FIR低通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');subplot(2,1,2)F2=plot(f,abs(F0(1:512)));title('FIR低通滤波器滤波后的频谱')xlabel('频率/Hz');ylabel('幅值');结果分析
本文标题:Matlab语音信号分析大作业
链接地址:https://www.777doc.com/doc-5744717 .html