如何在不使用wav
的情况下绘制FFT
声音的傅里叶变换?
我在整个信号上采用大小为256
的矩形窗口。
以下是我的代码:
我的代码:
[wave,fs]=wavread('.\Sound clip 32.wav');
sound(wave,fs);
t=1:1/fs:length(wave)-1/fs;
plot(t,wave);
n=length(wave)-1;
for l=1:n,
x(l)=0;
end
for i=1:n,
for h=1:256,
x(i)=x(i)+wave(h)*(exp(-(j*2*pi*i*h)/n));
end
end
f=1:fs/n:n;
wavefft=abs(x);
plot(f,wavefft);
但我收到此错误
错误:
???使用==>时出错绘制
矢量必须长度相同。==>中的错误alirezabahrami at 8 plot(t,wave);
如何解决此问题?
答案 0 :(得分:2)
第一个绘图错误是由t
和wave
长度不同引起的。你可以截断那两个中最长的然后绘制,但无论如何,t
只是一个线性增加的向量,所以你可以写
plot (wave)
它会显示相同的东西,即你的音频波。
如果你写plot(t)
,你就会得到一条对角线。
进一步向下你有完全相同的问题,所以只需写:
plot(wavefft)