时频分析之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 ) ∈ L 2 ( R ) x(t)\in L^2(R) x(t)L2(R) L 2 ( R ) L^2(R) L2(R)为能量有限函数空间, x ( t ) x(t) x(t)的S变换的表达式为
S ( τ , f ) = ∫ − ∞ + ∞ x ( t ) ∣ f ∣ 2 π e − ( t − τ ) 2 f 2 2 e − j 2 π f t d t 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 S(τ,f)=+x(t)2π fe2(tτ)2f2ej2πftdt
式中, x ( t ) x(t) x(t)是关于时间的连续函数, τ \tau τ是一个控制参数,用来确定高斯窗在时间轴上的位置, f f f是频率。其中高斯窗函数定义为:
ω ( t , f ) = 1 σ ( f ) 2 π e − t 2 2 σ ( f ) 2 \omega(t,f)=\frac{1}{\sigma(f)\sqrt{2\pi}}\mathrm{e}^{-\frac{t^2}{2\sigma(f)^2}} ω(t,f)=σ(f)2π 1e2σ(f)2t2
窗口的标准差为:
σ ( f ) = 1 ∣ f ∣ \sigma(f)=\frac{1}{|f|} σ(f)=f1
由上式可以看出,标准差 σ ( f ) \sigma(f) σ(f)为频率的函数,取值为绝对值的倒数。由此可知 ω ( t , f ) \omega(t,f) ω(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 ( τ , f ) S(\tau,f) S(τ,f),可以通过逆变换得到时域信号:
s ( t ) = ∫ − ∞ + ∞ { ∫ − ∞ + ∞ S ( τ , f ) d τ } e j 2 π f t d f s(t)=\int_{-\infty}^{+\infty}\left\{\int_{-\infty}^{+\infty}S(\tau,f)d\tau\right\}\mathrm{e}^{j2\pi ft}df s(t)=+{+S(τ,f)dτ}ej2πftdf
测试程序入下:

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

在这里插入图片描述

图4 逆S变换结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nwsuaf_huasir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值