短时傅里叶变换matlab程序.doc

短时傅里叶变换matlab程序.doc

ID:54946090

大小:14.00 KB

页数:2页

时间:2020-04-24

短时傅里叶变换matlab程序.doc_第1页
短时傅里叶变换matlab程序.doc_第2页
资源描述:

《短时傅里叶变换matlab程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、function[Spec,Freq]=STFT(Sig,nLevel,WinLen,SampFreq)%计算离散信号的短时傅里叶变换;%Sig待分析信号;%nLevel频率轴长度划分(默认值512);%WinLen汉宁窗长度(默认值64);%SampFreq信号的采样频率(默认值1);if(nargin<1),error('Atleastoneparameterrequired!');end;Sig=real(Sig);SigLen=length(Sig);if(nargin<4),SampFreq=1;endif(nargin<3),WinLen=64

2、;endif(nargin<2),nLevel=513;endnLevel=ceil(nLevel/2)*2+1;WinLen=ceil(WinLen/2)*2+1;WinFun=exp(-6*linspace(-1,1,WinLen).^2);WinFun=WinFun/norm(WinFun);Lh=(WinLen-1)/2;Ln=(nLevel-1)/2;Spec=zeros(nLevel,SigLen);wait=waitbar(0,'Undercalculation,pleasewait...');foriLoop=1:SigLen,waitba

3、r(iLoop/SigLen,wait);iLeft=min([iLoop-1,Lh,Ln]);iRight=min([SigLen-iLoop,Lh,Ln]);iIndex=-iLeft:iRight;iIndex1=iIndex+iLoop;iIndex2=iIndex+Lh+1;Index=iIndex+Ln+1;Spec(Index,iLoop)=Sig(iIndex1).*conj(WinFun(iIndex2));end;close(wait);Spec=fft(Spec);Spec=abs(Spec(1:(end-1)/2,:));Freq=

4、linspace(0,0.5,(nLevel-1)/2)*SampFreq;t=(0:(SigLen-1))/SampFreq;clfset(gcf,'Position',[20100500430]);set(gcf,'Color','w');axes('Position',[0.10.450.530.5]);mesh(t,Freq,Spec);axis([min(t)max(t)0max(Freq)]);colorbarxlabel('t/s');ylabel('f/Hz');title('STFT时频谱图');axes('Position',[0.10

5、.10.550.25]);plot(t,Sig);axistightylabel('x(t)');title('时域波形');axes('Position',[0.730.450.240.5]);PSP=abs(fft(Sig));Freq=linspace(0,1,SigLen)*SampFreq;plot(PSP(1:end/2),Freq(1:end/2));title('频谱');

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。