weipeng 发表于 2007-6-9 15:50

请教关于声音信号处理中的困惑

用这个程序输入声音:
=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 编辑 ]

eight 发表于 2007-6-9 16:06

1. 请把 plot 的第一个参数改为 x (参考你自己的第二个问题)
2. 一个是幅值,一个是幅值的平方,你说一样吗

[ 本帖最后由 ChaChing 于 2010-5-9 15:01 编辑 ]

happy 发表于 2007-6-9 16:13

画出的图单位是什么?为什么有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 编辑 ]

canerhuang 发表于 2008-3-6 19:54

多谢了!我刚好要用到!
页: [1]
查看完整版本: 请教关于声音信号处理中的困惑