Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-09-07
年龄: 37
帖子: 1
声望力: 0 ![]() |
![]()
语音信号FFT频谱分析与显示
================= function spgram(swavefilenam,winsiz,shift,base,coltype); swavefilenam='voice.wav' [signl,fs]=wavread(swavefilenam); nseg=floor((length(signl)-winsiz)/shift)+1; a=zeros(winsiz/2+1,nseg); for i=1:nseg n1=(i-1)*shift+1;n2=n1+(winsiz-1); xx=signl(n1:n2);xx=xx.*hamming(winsiz); y=fft(xx);y=y(1:winsiz/2+1); y=y.*conj(y);y=10*log10(y);a(:,i)=y; end l1=(a>base);l0=(a<base);b=a.*l1+base*l0; c=(b-base)./(max(max(b))-base); y=[0:winsiz/2]*fs/winsiz;x=[0:nseg-1]*shift; if coltype==1 colormap(hot); else mycoltype=gray;mycoltype=mycoltype(64:-1:1, ![]() colormap(mycoltype); end imagesc(x,y.c);axis xy; ================= 在MATLAB程序提示符下运行: >>spgram(voice,256,64,0,0); 生成声音文件后还是错误 在c=(b-base)./(max(max(b))-base);这句里的./上 可能是矩阵什么的错误 本人不才 大家多多帮忙 |
![]() |
![]() |