支持输入波形长度及时变特性参数调整
支持FFT点数调整
支持STFT步进调整
支持窗含数据类型调整
支持数据格式调整double、single
%%对照组,直接FFT
Wave_Length=10240;
PointNum=256;
Steps=64;
Times=(Wave_Length-PointNum)/Steps+1;
Waveform_Step=500;
Waveform=TimeVarying_Signal_Para(Wave_Length,Waveform_Step); %产生时变正弦信号,注意,与原始的时变波形在模块有差异,因为产生逻辑有小区别;尾部部分信号的处理纠正过
%Waveform=TimeVarying_Signal_Gen();
%%不同窗函数的测试
% Windows_Coe = rectwin(PointNum); %产生矩形窗系数
Windows_Coe = hann(PointNum,‘symmetric’); %产生汉宁窗系数
% Windows_Coe = hamming(PointNum,‘symmetric’); %产生汉明窗系数
% Windows_Coe = gausswin(PointNum); %产生高斯窗系数
% Windows_Coe = blackmanharris(PointNum,‘symmetric’); %产生blachmanHarris窗系数
% Windows_Coe = kbdwin(PointNum,10); %产生kbdwin窗系数 Kaiser_Bessel
%%加窗处理
Waveform_Original_Record=zeros(1,TimesPointNum);
Waveform_Windowing_Record=zeros(1,TimesPointNum);
for iteration = 0:1:Times-1
Addr_Bias=iterationPointNum;
Step_Bias=iterationSteps;
Waveform_Original_Record(1,Addr_Bias+1:Addr_Bias+PointNum)=Waveform(1,Step_Bias+1:Step_Bias+PointNum);
Waveform_Windowing_Record(1,Addr_Bias+1:Addr_Bias+PointNum)=(Windows_Coe.’).Waveform(1,Step_Bias+1:Step_Bias+PointNum);
end
%用Matlab加窗数据做FFT
Matlab_Windowing_Data=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_Result=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_Real=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_Image=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_Amplitude=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_Phase=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_DataSingle=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_ResultSingle=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_RealSingle=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_ImageSingle=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_AmplitudeSingle=zeros(1,length(Waveform_Windowing_Record));
Matlab_Windowing_FFT_PhaseSingle=zeros(1,length(Waveform_Windowing_Record));
for iteration=0:1:(length(Waveform_Windowing_Record))/PointNum-1 %%29轮
Addr_Bias=iterationPointNum;
Step_Bias=iterat
Matlab实现短时傅里叶变换
最新推荐文章于 2024-04-23 09:16:54 发布