语音信号处理程序 下载本文

内容发布更新时间 : 2024/6/30 15:45:41星期一 下面是文章的全部内容请认真阅读。

原始信号的时域波形与FFt频谱分析

[x,fs,bits]=wavread(‘音频文件’);%读取一个音频文件 x=x(:,1); figure(1); subplot(3,1,1); plot(x);grid on;

xlabel(‘时间’);ylabel(‘幅值’);title(‘幅频特性’); subplot(3,1,2); wx=fft(x);

plot(abs(wx));grid on;

xlabel(‘时间’);ylabel(‘幅值’);title(‘幅频特性’); subplot(3,1,3); plot(angle(wx));grid on;

xlabel(‘频率’);ylabel(‘相位’);title(‘幅频特性’); 产生回声 N=36000;

y=[x;zeros(N,1)]+0.5*[zeros(N,1)]; wavwrite(y,’加回声信号后的信号’); figure(2); subplot(3,1,1); plot(y);grid on;

xlabel(‘时间’);ylabel(‘幅值’);title(‘加回声信号后的时域波形’);

subplot(3,1,2); wy=fft(y);

plot(abs(wy));grid on;

xlabel(‘频率’);ylabel(‘幅值’);title(‘幅频特性’); subplot(3,1,3); plot(angle(wy));grid on;

xlabel(‘频率’);ylabel(‘相位’);title(‘相频特性’);

产生回声信号后的时域波形,FFt频谱分析 r=xcorr(y); figure(3); plot(r); grid on;

title(‘y的自相关函数’); [u,v]=max(r); r1=r;

r1(v-5000:v+5000,1)=0; [u1,v1]=max(r1); N=v-v1; Title(N); N for k=1:2

t(k)=(-1)^k*y(36000*(k-1)+1,1); end roots(t)

从带有回声的声音中消除回声信号且估计反射物的距离 a=[1,zeros(1,35999),0.5]; b=[1]; x1=filter(b,a,y);

wavwrite(x1,’恢复后的信号’); figure(4); subplot(3,1,1); plot(x1);grid on;

xlabel(‘时间’);ylabel(‘幅值’);title(‘恢复后的信号时域波形’); subplot(3,1,2); wx1=fft(x1);

plot(abs(wx1));grid on;

xlabel(‘频率’);ylabel(‘幅值’);title(‘幅频特性’);