您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Matlab语音信号采集
1.语音信号的采集:1)利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道),录制一段自己的话音“信号”,时间控制在2秒左右,然后将音频文件保存“C:\DocumentsandSettings\Administrator\桌面\fan.wav”2)在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。[z1,fs,bits]=wavread('C:\DocumentsandSettings\Administrator\桌面\fan.wav')运行结果:fs=8000bits=8wavread函数调用格式:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。y=wavread(file,N),读取前N点的采样值放在向量y中。y=wavread(file,[N1,N2]),读取从N1点到N2点的采样值放在向量y中。2.语音信号的频谱分析①首先画出语音信号的时域波形z1=wavread('C:\DocumentsandSettings\Administrator\桌面\fan.wav');plot(z1);图像输出如图10②对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性z1=wavread('C:\DocumentsandSettings\Administrator\桌面\fan.wav');y1=z1(1:8192);Y1=fft(y1);n=0:8191;plot(n,Y1);2.3.加噪后语音信号的程序设计:x=wavread('C:\DocumentsandSettings\Administrator\桌面\fan.wav');N=length(x);n=x+noise;%噪声信号的叠加sound(s)Subplot(2,1,1);plot(s);title('加噪后的时域波形');S=oise=rand(N,1)/10;sfft(s);Subplot(2,1,2);plot(abs(S));title('加噪后的频域波形');axis([0,30000,0,400]);grid;41.设计IIR低通滤波器滤波程序如下:clear;closeall[z1,fs,bits]=wavread('C:\DocumentsandSettings\Administrator\桌面\fan.wav')y1=z1(1:8192);Y1=fft(y1);fp=1000;fc=1200;As=100;Ap=1;;Fs=8000;wc=2*fc/Fs;wb=2*fp/Fs;[n,wp]=cheb1ord(wc,wb,Ap,As);[b,a]=cheby1(n,Ap,wp);figure(1);freqz(b,a);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,4000,0,0.03]);title('滤波后信号频谱');subplot(2,2,3);plot(z1);title('滤波前信号波形');subplot(2,2,4);plot(x);title('滤波后信号波形');sound(x,fs,bits);
本文标题:Matlab语音信号采集
链接地址:https://www.777doc.com/doc-2887883 .html