⽤simulink分析傅⾥叶变换、短时傅⾥叶变换和⼩波变换1、FFT,分析基波的参与时间对傅⾥叶变换的影响
基波为4个余弦波,⽤matlab程序控制其参与输⼊信号的增益。
当增益为1,4基波全时参与时,输⼊信号为:
注意:FFT后在Vector Scope显⽰每帧的频率图时,应设置采样频率,否则,频率计算可能有误!
⽐如,Buffer设置 overlap不为0时。
输⼊信号的控制程序为:
function y=get_a(t)
%根据仿真时间控制输⼊信号的增益
if(t<0.25)
y(1)=1;
else
y(1)=0;
end
if(t>=0.25&&t<0.5)
y(2)=1;
else
y(2)=0;
end
if(t>=0.5&&t<0.75)
y(3)=1;
else
y(3)=0;
end
if(t>=0.75)
y(4)=1;
else
y(4)=0;
end
三种信号的FFT变换结果如下:
从上图可知,不同的时域信号可能有相同的幅值谱,更多的信息应该隐藏在相位谱中,可是怎么分析相位谱呢FFT⽆法取得基波参与的时间信息。对时域信号加窗进⾏STFT,是⼀个⽅法。
2、STFT 直接⽤spetrogram()更⽅便。
Fs = 1000;
t=0:1/Fs:0.249;
y1=cos(2*pi*10*t);
y2=cos(2*pi*20*(t+0.250));
y3=cos(2*pi*50*(t+0.500));
y4=cos(2*pi*100*(t+0.750));
y=[y1,y2,y3,y4];
t=0:1/Fs:0.999;
plot(t',y')
% 将信号lenSignal=1000点划分成长度为window=100个点,使⽤海明窗加窗,使⽤noverlap=80个样本重叠,
%估计[100/2+1]=51个频率点,fix((1000-80)/(100-80))=46个时间点
%FFT计算点数nfft=100
spectrogram(y,100,80,100,Fs,'yaxis')
view(-77,72)
shading interp
colorbar off
%[s,f,t,p]=spectrogram(y,100,80,100,Fs);%s:51x46,f:51x1,t:1x46
%spectrogram(...) plots the power spectral density (PSD) estimate for each segment on a surface in a figure window. The plot is created using %surf(T,F,10*log10(abs(P)));
%axis tight;
%view(0,90);
%绘制图谱,对每列t,求最⼤功率谱密度PSD(dB),标记红⾊点
[s,f,t,p] = spectrogram(y,100,80,100,Fs);matlab求傅里叶变换
[q,nd] = max(10*log10(p));
hold on
plot3(t,f(nd),q,'r','linewidth',4)
hold off
当窗⼝改⼤为250时(时间点减少),结果如下,频率分开了,但是时间上模糊了。
窄窗⼝时间分辨率⾼、频率分辨率低,宽窗⼝时间分辨率低、频率分辨率⾼。对于时变的⾮稳态信号,⾼频适合⼩窗⼝,低频适合⼤窗⼝。然⽽STFT的窗⼝是固定的,在⼀次STFT中宽度不会变化,所以STFT还是⽆法满⾜⾮稳态信号变化的频率的需求。
奈奎斯特定理(采样定理),采样频率⼤于信号频率的2倍,才能复现该信号。⼀般实际应⽤中保证采样频率为信号最⾼频率的2.56~4倍。
下⾯⽤STFT绘制时频谱图,然后和⼩波分析的结果进⾏对⽐:
t=0:0.001:0.249;
y1=cos(2*pi*10*t);
y2=cos(2*pi*20*(t+0.250));
y3=cos(2*pi*50*(t+0.500));
y4=cos(2*pi*100*(t+0.750));
y=[y1,y2,y3,y4];
%subplot(1,2,1)
figure
plot(y)
Fs = 1000;
% 将信号划分成长度为100个点,使⽤海明窗加窗,使⽤80个样本重叠,估计[100/2+1]=51个频率点,不使⽤默认%的颜⾊棒。
%subplot(1,2,2)
%figure
[s,f,t,p]=spectrogram(y,100,80,100,Fs,'yaxis');
surf(t,f,abs(s));
set(gca,'Yscale','log');
set(gca,'ytick',[1:9,10:10:90,100:100:900,1000,2000]);
view(0,90);
%view(-77,72)
shading interp
colorbar off

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。