当前位置:首页 > Matlab信号处理应用大作业
MATLAB信号处理应用大作业 姬宇程 3008202329
Matlab信号处理应用大作业
题目:个人语音信号的时频特征提取与分析
学生姓名姬宇程
学院名称精密仪器与光电子工程 专业生物医学工程
学号 3008202329
1 / 7
MATLAB信号处理应用大作业 姬宇程 3008202329
大作业安排:录制自己的一段语音:“天津大学精密仪器与光电子工程学院生物医学工程X班XXX, College of precision instrument and opto-electronics engineering, biomedical engineering”,时间控制在15秒到30秒左右;利用wavread函数对自己的语音进行采样,记住采样频率。
(1)画出原始语音信号的时域波形,而后以1秒为间隔,求出每秒数据的功率谱。 (2)根据语音信号特点,分别设计FIR及IIR滤波器,分别画出滤波器幅频和相频特性曲线。用设计的滤波器对信号滤波,画出滤波后时域波形。用sound函数回放语音信号。
(3)求出特征频段语音信号随时间变化的曲线(每间隔0.05秒求一次功率谱)。 程序源代码如下:
function homework()
[xn,fs]=wavread('C:\\Users\\JYC\\Documents\\FFOutput\\Sound clip 01.wav') figure(1);plot(xn); nfft=4000;
y=resample(xn,nfft,fs); figure(2);plot(y,'g'); R=14; for n=1:R
m=(n-1)*nfft+1:n*nfft; z=fft(y(m),nfft); p=z.*conj(z)/nfft;
figure(3);subplot(7,2,n);plot(p(1:nfft/2)); end
m=[0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0];
f=[0 295/(nfft/2) 300/(nfft/2) 330/(nfft/2) 355/(nfft/2) 380/(nfft/2) 465/(nfft/2) 470/(nfft/2) 500/(nfft/2) 505/(nfft/2) 510/(nfft/2) 530/(nfft/2) 555/(nfft/2) 600/(nfft/2) 605/(nfft/2) 610/(nfft/2) 670/(nfft/2) 675/(nfft/2) 680/(nfft/2) 1]; N=40;
dt=fir2(N,f,m,hamming(N+1)); figure(4);freqz(dt,1,nfft/2); grid;
signal=3*conv(y,dt); figure(5);plot(signal,'g'); sound(signal,nfft);
Q=13;
a1=0;a2=0;a3=0;a4=0;a5=0; for ny=1:0.05:Q
zy=fft(y((ny-1)*nfft+1:ny*nfft),nfft); py=zy.*conj(zy)/nfft;
pj1=sum(py(301:350))/(175-125); pj2=sum(py(471:500))/(250-220);
2 / 7
MATLAB信号处理应用大作业 姬宇程 3008202329
pj3=sum(py(511:570))/(285-225); pj4=sum(py(561:610))/(305-260); pj5=sum(py(631:640))/(320-310); a1=[a1 pj1]; a2=[a2 pj2]; a3=[a3 pj3]; a4=[a4 pj4]; a5=[a5 pj5]; end
figure(6);plot(a1); figure(7);plot(a2); figure(8);plot(a3); figure(9);plot(a4); figure(10);plot(a5);得到如下结果:
3 / 7
2原时域响应
1取样后时域响应
MATLAB信号处理应用大作业 姬宇程 3008202329
3每秒数据功率谱
4滤波器幅相特性曲线
4 / 7
共分享92篇相关文档