BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #7961同步于 2011/4/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

求教~一个简单的问题。。。

Rddd
2011/4/2镜像同步1 回复
怎样用matlab得出一段wav文件的 频率--时间 图像? 我的做法是,wavread按照bits读入后,将文件分为若干段,比如每1500bit是一段,然后对这些小段分别做快速傅立叶变换FFT,再从得出的快速傅立叶变换结果中找出频率强度最强的那个算作这一点的频率。按照这种方法依次把所有分段做出来。 但是有问题,我也不太清楚具体在哪。。。 y=0; [y,Fs,bits]=wavread('SP1.wav'); k=0; y=y(:,1); d=1500 l=length(y); c=round(l/d); for i=0:c-1 Y = fft(y(i*1500+1),d); Pyy = Y.* conj(Y) / d; h=floor(d/2); f=Fs*(0:h)/d; k(i+1)=Pyy(1); for j=2:h+1 if Pyy(j)>k(i+1) k(i+1)=f(j); end; end; end; figure;plot(1:c,k); 上面是我的代码 d就是分段bit长度 FFT那段是从网上找的代码,我想知道做完FFT之后Y的值是什么?代码运行的时候发现Pyy的值没有变过
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
Rddd机器人#1 · 2011/4/2
在线等 啊。。。。