S转换

S转换(s-transform)是一种时频分析的工具。

和其他时频分析工具一样，透过S转换，我们可以同时从时域以及频域观察一个信号的能量分布。S转换的特别之处在它既保持与傅立叶变换的直接关系，又可在不同频率有不同的分辨率。此外，S转换与小波转换（wavelet transform）有密切的关系，或可视为连续小波转换（continuous wavelet transform）的变形。S转换的清晰度略优于加伯转换（Gabor transform），而不如韦格纳分布（Wigner distribution function）、科恩克莱斯分布、改良式韦格纳分布（Modified Wigner distribution function）。

## 定义

一个信号x(t)的S转换为

$$S_x(t,\,f)=\int_{-\infty}^{\infty} x(\tau)\,|f|\,e^{-\pi(t-\tau)^2f^2} e^{-j2\pi f\tau}\, d\tau$$

其中窗函数为高斯窗函数

$$w(t,f) = |f|e^{-\pi t^2f^2}$$

### 另种表示-频谱表示式

借着折积定理

$$x(t)\ast h(t) = \mathcal{F}^{-1}(X(f)\cdot H(f))$$

S转换能以频域 $X(f)$ 表示。

$$S_x(t,f) = \int_{-\infty}^{\infty} (x(\tau) e^{-j2 \pi f \tau})(|f|e^{- \pi (t- \tau)^2 f^2})\, d\tau$$

这里可将$S_x(t,f)$看成$x(t) e^{-j2 \pi ft}$与$|f|e^{-\pi t^2 f^2}$的卷积。

将$x(\tau) e^{-j2 \pi f \tau}$ 以及 $|f|e^{-\pi (t-\tau)^2 f^2}$分别取傅立叶变换可得

$$S_x(t,f) = \int_{-\infty}^{\infty} X(f+\alpha)\,e^{-\pi\alpha^2 /f^2}\,e^{j2\pi\alpha t}\, d\alpha$$

## 窗函数(window function)

对一讯号$x(t)$进行S转换，写为

$$S_x(t,f)=\int_{-\infty}^{\infty} x(\tau)\,w(t-\tau,f) e^{-j2\pi f\tau}\, d\tau$$

其中 $w(t,f)$为S转换之窗函数，常见之窗函数为高斯函数，即

$$w(t,f) = |f|e^{-\pi t^2f^2}$$

事实上，S转换之窗函数并不局限于高斯函数，考虑以下一般化型态的S转换(generalized S transform):

$$S_x(t,f,P)=\int_{-\infty}^{\infty} x(\tau)\,w(t-\tau,f,P) e^{-j2\pi f\tau}\, d\tau$$

其中 $w(t,f,P)$为 一般化之窗函数(generalized window function), 参数 P 为一系列数值而组成之矩阵，可控制window function，举例来说

$w(t,f,\gamma) = |f|e^{-\pi t^2f^2/\gamma^2}$，此时 $\gamma$ 为矩阵 P 内之唯一数值

通过选取较小的 $\gamma$ 值，可得到时域上较窄的窗函数，提高时间轴的分辨率，然而，频率轴上的分辨率将因此变差。

改善时频两域分辨率的问题，可选择非对称的窗函数(asymmetric window)，在正方向(forward direction)上有较陡峭之斜率，反方向(backward direction)上有较缓之斜率，借由牺牲终端时间的分辨率(一般而言较不重要)换取初始时间上更好的分辨率。

## 逆S转换(inverse S-transform)

S转换可以沿着时间轴方向积分，将可以得到$x(t)$的频谱$X(f)$。推导如下。

利用Gaussian window所包含面积等于1的特性。

$$\int_{-\infty}^{\infty}|f|e^{-\pi (t-\tau)^2 f^2}\, dt= |f|\int_{-\infty}^{\infty}e^{-\pi (t-\tau)^2 f^2}\, dt= 1$$

因此，沿着时间轴t积分。

$$\int_{-\infty}^{\infty}S_x(t,f)\, dt = \int_{-\infty}^{\infty} x(\tau) \left[\int_{-\infty}^{\infty} |f|\,e^{-\pi(t-\tau)^2f^2}\, dt\right]\,e^{-j2\pi f\tau}\, d\tau = X(f)$$

这表示S频谱是可逆的，同时也提供一个简单的逆转换。

$$x(\tau) = \int_{-\infty}^{\infty}\left[\int_{-\infty}^{\infty}S_x(t,f)\, dt\right]\,e^{j2\pi f\tau}\, df$$

$$= \int_{-\infty}^{\infty}X(f)\,e^{j2\pi f\tau}\, df$$

### 滤波应用(Filtering)

S转换如同其他时频分析转换，皆可以设计波器来达到消除噪声留下讯号的功用。

利用逆S转换，我们可以设计一个S域的滤波器U(t,f)，对x(t)进行讯号处理

$$x_{filter}(\tau) = \int_{-\infty}^{\infty}\left[\int_{-\infty}^{\infty}S_x(t,f)\cdot U(t,f) \, dt\right]\,e^{j2\pi f\tau}\, df$$

## 离散时间S转换

S转换相较于加伯转换，虽在清晰度有较好的改善，但也有其缺点，就是运算复杂度变高，积分的范围会随着$f\,$的增加而增加。

因此，这里利用上面推导的频谱表示式来推导离散时间S转换频谱表示式

$S_x(t,f) = \int_{-\infty}^{\infty} X(f+\alpha)\,e^{-\pi\alpha^2 /f^2}\,e^{j2\pi\alpha t}\, d\alpha$

令$t = n\Delta_{T}\,\, f = m\Delta_{F}\,\, \alpha = p\Delta_{F}$

$\Delta_{T}\,$表示取样时间间隔$, \Delta_{F}\,$表示取样频率

如果要使用FFT的方式来实作，必须另加条件

$$\Delta_{T} \cdot \Delta_{F}=1/N$$

首先先对$x(t)$做傅立叶变换得到$X(f)$

$X[m\Delta_{F}]=\frac{1}{N}\,\sum_{k=0}^{N-1}x[k\Delta_{T}]\,e^{\frac{-j2\pi mk}{N}}$

接着带入频谱表示式中。

$$S_{x}(n\Delta_{T}\, ,m\Delta_{F}) = \sum_{p=0}^{N-1} X[(p+m)\,\Delta_{F}]\,e^{-\pi\frac{p^2}{m^2}}\,e^{\frac{j2pn}{N}}$$

当 m=0 时，S转换就定义成

$S_{x}(n\Delta_{T}\, ,0)= \frac{1}{N}\,\sum_{k=0}^{N-1}x[k\Delta_{F}$

### 流程

Step1 : 计算$X[p\Delta_{F}]\,$,这个步骤只需要计算一次。

Step2 : 计算$e^{-\pi \frac{p^2}{m^2}}$for $f=m\Delta_{F}$ Step3 : 将$X[p\Delta_{F}]$移动至$X[(p+m)\Delta_{F}]$ Step4 : 将Step2,Step3的结果相乘得到

$B[m,p] = X[(p+m)\Delta_{F}]\cdot e^{-\pi \frac{p^2}{m^2}}$

Step5 : 对Bm,p取逆离散傅立叶变换(IDFT)可得到，$S_{x}(n\Delta_{T}\, ,m\Delta_{F})$在$f=m\Delta_{F}$的行向量Step6 : 重复Step2~5直到$S_{x}(n\Delta_{T}\, ,m\Delta_{F})$全部定义完成。

## S转换特性

S转换与加伯转换(Gabor Transform)很相似。

$$G_{x}(t,f)=\int_{-\infty}^{\infty}x(\tau)\,e^{-\pi (t-\tau)^2} e^{-j2\pi f \tau}\, d\tau$$

$$S_{x}(t,f)=\int_{-\infty}^{\infty}x(\tau)\,|f|e^{-\pi (t-\tau)^2 f^2} e^{-j2\pi f \tau}\, d\tau$$

唯一的不同就在于S转换的Gaussian Window的宽度会随着$f$改变。

低频｜时域分辨率差｜频域分辨率佳

高频｜频域分辨率差｜时域分辨率佳

原因就是$f\,$在高频时，Gaussian Window宽度变小，时域分辨率好；反之，$f\,$在低频时，Gaussian Window宽度变宽，频域分辨率好。

但是，当$f\rightarrow0$时，Gaussian Window会无穷无尽的变宽，就丧失时频分析只做局部分析的精神。

一种解决的方式是:使Gaussian Window宽度不再因$f^2\,$改变，产生带宽剧烈的变化。

S转换一般式

$$S_{x}(t,f)=|s(f)|\int_{-\infty}^{\infty}x(\tau)\,e^{-\pi (t-\tau)^2 s^2(f)} e^{-j2\pi f \tau}\, d\tau$$

$s(f)$是一个相对平缓的曲线(见底下示意图)，当$f\rightarrow0$时，$s(f)\neq 0$

S转换是一种运算量高的时频分析工具，尤其在低频部分，Gaussian Window宽度变宽，频域分辨率比加伯转换来的好，所以S转换对于低频讯号分析比较有优势例如:声音讯号，人耳对高频的部分没有太特别的感觉，但在低频部分却比较敏感，如:中央Do = 262Hz,高八度Do = 512Hz 可以很清楚的听出两个不同的音。

但10000Hz 和 10170Hz对人来说差别不大，再说人耳对3KHz以内的声音最敏感，所以能分析低频讯号就显得重要。

此时，就可以使用S转换，来强调低频讯号的频率分辨率，而牺牲高频讯号的频率分辨率。

<image>

## 与韦格纳分布的比较

韦格纳分布是时频分析工具中，具有高清晰度的一个，但最大的缺点是有交叉项（cross-term）的问题。若一个信号是由数个信号成分组合而成，那么使用韦格纳分布来分析时就会受到两两信号成分之间的交叉项干扰，这将会产生一些不必要的噪声。信号x的韦格纳分布为

$$W_x(t,f)= \int_{-\infty}^{\infty} x(t+\frac{\tau}{2})x^*( t-\frac{\tau}{2})e^{-j2\pi\tau f}\, d\tau$$

交叉项是在积分中两个x项相乘时产生的。S转换的计算原理与韦格纳分布不同，其作为线性变换直接对$x(\tau)$进行转换，不会有交叉项的问题。

## 与加伯转换的比较

加伯转换的定义为

$$G_x(t,f)=\int_{-\infty}^{\infty} x(\tau)e^\left [ -\pi(t-\tau)^2f^2 \right ]e^\left ( -j2\pi f\tau \right )d\tau$$

我们知道加伯转换是短时距傅立叶转换的一种特殊形式，其中只要把短时距傅立叶转换的窗函数用高斯函数来替代就成了加伯转换；S转换则可视为一种窗函数会随频率f变化的加伯转换；随着频率的升高，高斯函数在时域上的宽度会越来越窄，使得时域上的分辨率会增加，同时牺牲频域上的分辨率。

加伯转换和S转换原理相同，两者唯一不同的地方就是窗函数的$f^2$和强度$f$，基本上都是由短时距傅立叶转换延伸而来；两者共有的好处是不会像韦格纳分布一样会有交叉项；又S转换在低频时的频率分辨率会优于加伯转换。

## 与小波转换的关系

连续小波转换可以视为将一个信号对小波做相关（correlation）：

$$W(\tau,\,d)=\int_{-\infty}^{\infty} x(t)\,W(t-\tau,\,d)\, dt$$

而S转换可以视为连续小波转换乘上一个相位项：

$$S(\tau,\,f)=e^{-j2\pi\tau f}W(\tau,\,d)$$

而其用的母小波为：

$$w(t,\,f)=|f|\,\exp[-\pi t^2f^2] \exp[-j2\pi ft]$$

## S转换，加伯转换和短时距傅立叶转换的比较

假设我们想要对讯号$x(t)$做时频分析

$$x(t) = \left\{ \begin{aligned} \cos(2\pi t) &,\ t<10 \\ \cos(6\pi t) &, \ 10\le t< 20\\ \cos(4\pi t) &, 20 \le t \end{aligned} \right.$$

如果使用一个宽度为1秒的矩形函数来做短时距傅立叶转换会得到

<image>

如果使用一个加伯转换会得到时频分析图

<image>

如果用S转换会得到时频分析图

<image>

由上三图可知，S转换是一个在低频时频域分辨率高，高频时时域分辨率高的时频分析；举例来说，对于100Hz与300Hz和1000Hz与1200Hz这两组声音，哪一组对于人耳会有明显的差异呢? 答案是100Hz和300Hz，低频时的频率差异对于人耳较明显，当频率越高时，人耳就越难分辨出频率的差异；同样的道理，S转换便符合我们的需求，低频时讯号变化慢拥有低的时域分辨率和拥有高的频域分辨率，高频时因为讯号变化很快则拥有高的时域分辨率和低的频域分辨率。