matlab里面的waveread函数,读取音频wav文件后,返回值是什么?
如图所示:使用S=wavread('D:\1.wav')之后,再进行FFT变换,如何让纵坐标的单位变成dB(分贝)呢?...
如图所示:使用S= wavread('D:\1.wav')之后,再进行FFT变换,如何让纵坐标的单位变成dB(分贝)呢?
展开
2个回答
展开全部
目测是语音加噪处理的第一步 求fft
%语音信号
[x,FS,bits]=wavread('D:\1.wav') ;
x=x(:,1);
figure(1);
subplot(211);plot(x);
%sound(x,FS,bits);
title('语音信号时域波形图')
y=fft(x,1000);
f=(FS/1000)*[1:1000];
subplot(212);
plot(f(1:300),abs(y(1:300)));
title('语音信号频谱图');
%语音信号
[x,FS,bits]=wavread('D:\1.wav') ;
x=x(:,1);
figure(1);
subplot(211);plot(x);
%sound(x,FS,bits);
title('语音信号时域波形图')
y=fft(x,1000);
f=(FS/1000)*[1:1000];
subplot(212);
plot(f(1:300),abs(y(1:300)));
title('语音信号频谱图');
2013-09-12
展开全部
如果要变成dB单位的话,可能还要在取abs后进行10*log10运算吧。
wavread读取后,自然是声音信号啦。俩输出参数的话就有采样频率。
wavread读取后,自然是声音信号啦。俩输出参数的话就有采样频率。
追问
用10*log10有没有依据?
能否给个较为详细的语句呢
追答
你不是 纵坐标变成dB吗。那应该就会对abs()后的值进行10*log10的运算啊。上面那人写的对啊,加个10*log10就成了应该。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询