问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

时频分析之S变换

创作时间:
作者:
@小白创作中心

时频分析之S变换

引用
CSDN
1.
https://blog.csdn.net/wzz110011/article/details/145042233

S变换原理解析

S变换的提出

1996年,由R.G Stockwell 提出了S变换,和其他时频分析工具一样,通过S变换,我们可以同时从时域以及频域观察一个信号的能量分布。S变换融合了短时傅里叶变换和小波变换的优点。关于S变换,最早发表于TSP上的文章Localization of the complex spectrum: the S transform:

Stockwell R G , Mansinha L , Lowe R P . Localization of the complex spectrum: the S transform[J]. IEEE Transactions on Signal Processing, 2002, 44(4):998-1001.

S变换采用高斯函数作为窗,且该时间窗和频率有关,在低频部分时窗较大,在高频部分时窗时窗较小。作为线性时频分析方法,它的频率分辨率和时间分辨率无法同时达到最优。

由于在高频时,时窗较小,当信号在高频比较丰富时,S变换得到的时频分辨率就会出现比较严重的混叠现象。

S变换的定义

对应信号$x(t) \in L^2(R)$,$L^2(R)$为能量有限函数空间,$x(t)$的S变换的表达式为

$$
S(\tau,f)=\int_{-\infty}^{+\infty}x(t)\frac{|f|}{\sqrt{2\pi}}\mathrm{e}^{-\frac{(t-\tau)^2f^2}{2}}\mathrm{e}^{-j2\pi ft}dt
$$

式中,$x(t)$是关于时间的连续函数,$\tau$是一个控制参数,用来确定高斯窗在时间轴上的位置,$f$是频率。其中高斯窗函数定义为:

$$
\omega(t,f)=\frac{1}{\sigma(f)\sqrt{2\pi}}\mathrm{e}^{-\frac{t^2}{2\sigma(f)^2}}
$$

窗口的标准差为:

$$
\sigma(f)=\frac{1}{|f|}
$$

由上式可以看出,标准差$\sigma(f)$为频率的函数,取值为绝对值的倒数。由此可知$\omega(t,f)$会随着频率的变换而自适应调整。


图1 不同频率对应的时窗

可以看到,随着频率的增大,高斯窗的方差逐渐减小,窗的宽度也随之变小。因此时窗宽度与频率成反比。此外,S变换还具有不受线性交叉项的影响和无损可逆性的优点,即可根据S变换得到的时频分布无损地还原被分析的时域信号。

因此S变换的时频分辨率和频率的关系入下:

  1. 在处理低频信号时,S变换的窗口较宽,这有助于捕捉低频信号的细微变化,从而提高频率分辨率。
  2. 相反,在处理高频信号时,S变换的窗口较窄,这有助于精确地定位高频信号的时间位置,从而提高时间分辨率。

S变换实例

下面我们对一个线性调频信号进行测试

SampFreq = 1000; %采样频率
t = 0 : 1/SampFreq : 1;
LFM_k0 = -200; % 调频斜率
LFM_f0 = 300; % 载频
LFM_A0 = exp(-0.5*t); % 调幅
Sig = LFM_A0.*cos(2*pi*(LFM_f0*t+(LFM_k0/2)*t.^2)); %线性调频信号

对线性调频信号Sig进行绘制:

figure
plot(t,Sig,'linewidth',1);
xlabel('Time(s)');ylabel('Amplitude');
title('原始数据');

图2 线性调频信号的时域波形

调用st()函数进行S变换,st()函数的matlab代码可以参考S变换matlab实现

ST = st(Sig); %进行S变换
fre = 1 : 1 : SampFreq / 2;
figure; %绘制时频图
imagesc(t,fre,abs(ST));
colormap('parula'); %指定色系:parula、turbo、jet等等
colorbar; %显示图像的颜色条,提供对图像色彩和值的对应
xlabel('Time(s)');ylabel('Frequency(Hz)');
title('S变换');
axis xy; %设置为普通坐标形式

图3 线性调频信号的时频分布

可以看到,由于线性调频信号的调频斜率为负数,因此沿着时间轴信号的瞬时频率逐渐减小,在高频处存在明显的频率发散现象。

S逆变换

由S变换的结果$S(\tau,f)$,可以通过逆变换得到时域信号:

$$
s(t)=\int_{-\infty}^{+\infty}\left{\int_{-\infty}^{+\infty}S(\tau,f)d\tau\right}\mathrm{e}^{j2\pi ft}df
$$

测试程序入下:

figure
restore = real(inverse_st(ST));
plot(restore);
title('S逆变换');


图4 逆S变换结果

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号