请教关于声音信号处理中的困惑
用这个程序输入声音:=WAVREAD('d:\111.wav');
plot(Y); title('声音信号'); xlabel('n'); ylabel('Sound'); grid on
画出的图单位是什么?为什么有10∧5呢?我这个声音文件播放时是20秒,如何将横坐标做成从1到20呀?
尔后进行FFT变换:
(1)
y=fft(Y,1024); pyy=y.*conj(y)/512;f=1000*(0:256)/512; plot(f,pyy(1:257));
(2)
Freq=fft(Y,1024); plot(abs(Freq(1:512)));
(1)与(2)画出的图差不多,只有微小不同,请问它们的意义一样吗?得到FFT图后,图像小如何放大呢?
做FFT变换用上述的程序可以吗? 谢谢指教!
[ 本帖最后由 ChaChing 于 2010-5-9 16:43 编辑 ] 1. 请把 plot 的第一个参数改为 x (参考你自己的第二个问题)
2. 一个是幅值,一个是幅值的平方,你说一样吗
[ 本帖最后由 ChaChing 于 2010-5-9 15:01 编辑 ] 画出的图单位是什么?为什么有10∧5呢?我这个声音文件播放时是20秒,如何将横坐标做成从1到20呀?
横坐标应该是点数,修改一下代码就可以将横坐标改成时间:=WAVREAD('d:\111.wav'); =size(Y);
plot(linspace(0,20,m),Y);
title('声音信号'); xlabel('t'); ylabel('Sound'); grid on
如果不知道声音文件的实际时间长度,则可以改写为下面代码
=wavread('type.wav'); =size(Y);
plot(linspace(0,m/FS,m),Y);
title('声音信号'); xlabel('t'); ylabel('Sound'); grid on
[ 本帖最后由 ChaChing 于 2010-5-9 16:49 编辑 ] 多谢了!我刚好要用到!
页:
[1]