資源簡介
MATLAB對一段音頻進行FFT處理,可以繪制出原聲音信號的時域波形,可以比較出直接運算和蝶形運算的語音信號FFT頻譜特性
代碼片段和文件信息
clc
clear
[xfsbits]=wavread(‘liuxiaonan.wav‘2048);%音頻信號
x1=reshape(x14096);
sound(x1fsbits);
y1=fft(x1);
N=length(x1);
t=(1:N)/fs;
figure(1)
plot(tx1);
title(‘原聲音信號的時域波形‘);
xlabel(‘時間/t‘);
ylabel(‘振幅/A‘);
grid;
M=nextpow2(x1);??????????????????????????%?求x的長度對應的2的最低冪次m?
N=2.^M;
if?length(x1) ????x1=[x1zeros(1N-length(x1))];????????????%?若x的長度不是2的冪,補零到2的整數冪?
end?
NV2=N/2;
NM1=N-1;
I=0;
J=0;
while?I ????if?I ????????T=x1(J+1);
????????x1(J+1)=x1(I+1);
????????x1(I+1)=T;
????end
????K=NV2;?
????while?K<=J
????????J=J-K;
????????K=K/2;
????end
????J=J+K;
????I=I+1;
end???????????????
%x1;?
y=x1;??????????????????????????????%?將x倒序排列作為y的初始值?
WN=exp(-i.*2.*pi./N);??????????????????%蝶形運算?????
for?L=1:M
????B=2^L/2;???????????????????
評論
共有 條評論