基本概念
傅里叶变换只能作用于收敛信号,短时傅里叶变换的窗函数不可变,小波变换虽然窗函数可变,能进行多分辨率分析,但是其基函数选取困难;S变换介于前两者之间,结合两种方法的优势,可自适应调节分辨率且其逆变换无损可逆。S变换(ST)是地球物理学家Stockwell域1996年提出的一种时频分析方法。
推导过程
离散的S变换
示例演示
我们实现S变换和逆变换的代码,来看下变换的结果。
% code
clear all;
close all;
SampFreq = 1000;
t = 0 : 1/SampFreq : 1;
LFM_k0 = -50.34;
LFM_f0 = 100.23;
LFM_A0 = exp(-0.5*t);
%Sig = LFM_A0.*cos(2*pi*(LFM_f0*t+(LFM_k0/2)*t.^2)) ;
LFM_f1 = 5.0;
t = 0 : 1/SampFreq : 0.5;
LFM_A0 = exp(-0.5*t);
Sig1 = LFM_A0.*cos(2*pi*(LFM_f0*t+(LFM_k0/2)*t.^2)) ;
t = 0.5 : 1/SampFreq : 1.0;
Sig2 = LFM_A0.*cos(2*pi*(LFM_f1*t+(LFM_k0/2)*t.^2));
Sig = [Sig1, Sig2];
t = 0 : 1/SampFreq : 1;
ST = st(Sig);
fre = 1 : 1 : SampFreq / 2;
imagesc(t,fre,abs(ST));
title('S变换');
axis xy;
figure
plot(Sig);
title('原始数据');
figure
restore = real(ist(ST));
plot(restore);
title('S逆变换');