对于一个特定的信号来说,有时域与频域两个表达形式,时域表现的是信号随时间的变化,频域表现的是信号在不同频率上的分量。在信号处理中,通常会对信号进行傅里叶变换得到该信号的频域表示,从而得到信号在频域上的特性,进而可以对该信号进行频域上的处理。不过对于随机过程这种不确定的信号是无法直接进行傅里叶转换的,那么是否就意味着我们无法知晓随机过程的频域特性呢?

对于随机过程,我们也是有办法得到其频域特性的,其频域特性可以用PSD来表达。我们下面将讨论WSS Process的PSD是如何表达出其频域特性的。

Definition

如果把随机过程$x(t)$看作是单位电阻上的电压,那么$x^2(t)$则表示的是瞬时功率(能量)。当$x(t)$是WSS时,$x(t)$的瞬时功率期望$E[x^2(t)]$是固定值,期望值为

$\begin{align*}E[x^2(t)] = R_{xx}(0)
&= \mathcal{F}^{-1}\{S_{xx}(j\omega)\}(0)\\
&= \frac{1}{2\pi}\int_{-\infty}^{\infty}S_{xx}(j\omega)e^{j\omega 0}d\omega\\
&= \frac{1}{2\pi}\int_{-\infty}^{\infty}S_{xx}(j\omega)d\omega
\end{align*}$

其中随机变量的correlation,即$R_{xx}(\tau)$,是一个固定函数,因此它具有傅里叶变换$S_{xx}(j\omega)$,$\omega$就是频率。对于这个式子,我们可以这么理解:$S_{xx}(j\omega)$表示了功率(能量)期望值$E[x^2(t)]$在频域上的分布状况,宽度为$d\omega$的频率所蕴含的能量大小为$\frac{1}{2\pi}S_{xx}(j\omega)dw$。在所有的$\omega$上都有$S_{xx}(j\omega)>0$。

因此$S_{xx}(j\omega)$被称为Power Spectral DensityPSD)。

WSS Process Spectral Processing

通过PSD我们可以得到随机过程的频域特性,而获得频域特性的目的是为了对信号进行频域处理而服务的,接下来就需要验证这个频域特性是否满足频域处理的需求。

考虑WSS Process通过一个理想带通滤波器,得到的输出为$y(t)$,该输出process的瞬时功率期望为

$\displaystyle{E[y^2(t)] = R_{yy}(0) = \frac{1}{2\pi}\int_{-\infty}^{\infty}S_{yy}(j\omega)dw}$

带通滤波器系统如下

带通滤波器$H(j\omega)$为实LTI系统,也就是说$H(j\omega)$是左右对称的,因此可以知道该带通滤波器在频域上有如下频谱

此外,在上一篇文章中我们讨论过WSS Process在经过LTI系统后所得的process的PSD为$S_{yy}(j\omega) = S_{xx}(j\omega)|H(j\omega)|^2$。因此$y(t)$的PSD如下图

可见对WSS Process进行频域上的处理是能体现在PSD上的,这表明PSD确实能表现出WSS Process的频域特性。而PSD是auto-correlation的傅里叶变换,这表明了一个WSS Process的频域特性只与不同采样点之间的相关性有关系,跟采样点的内部PDF无关。

How to get PSD

这一小节通过Einstein-Wiener-Khinchin Theorem来引入获取PSD的方法。

假设有一WSS Process,它的一个realization为$x(t)$,我们给这个realization加上一个宽度为$2T$的窗以得到$x_T(t)$

$x_T(t) = w_T(t)x(t)$

$x(t)$是实信号,那么根据傅里叶变换的共轭性质,可以得到

$\begin{align*} x_T(\tau)&\stackrel{\mathcal{F}}{\longleftrightarrow}X_T(j\omega)\\
x_{\overleftarrow{T}}(\tau) = x_T(-\tau)&\stackrel{\mathcal{F}}{\longleftrightarrow}X_T^*(j\omega) \end{align*}$

因此有

$\color{red}{x_T(\tau)*x_{\overleftarrow{T}}(\tau)}\stackrel{\mathcal{F}}{\longleftrightarrow}\color{blue}{|X_T(j\omega)|^2}$

$x(t)$是WSS process的一个realization,不过如果我们把它当作该WSS process,就可以对上述式子的两边都求期望,其中左边为

$\color{red}{\begin{align*}
E\Big\{x_T(\tau)*x_{\overleftarrow{T}}(\tau)\Big\}
&= E\left\{\int_{-\infty}^{\infty}x_T(\alpha)x_{\overleftarrow{T}}(\tau-\alpha)d\alpha\right\}\\
&= E\left\{\int_{-\infty}^{\infty}x_T(\alpha)x_T(\alpha-\tau)d\alpha\right\}\\
&= E\left\{\int_{-\infty}^{\infty}w_T(\alpha)x(\alpha)w_T(\alpha-\tau)x(\alpha-\tau)d\alpha\right\}\\
&= \int_{-\infty}^{\infty}E\Big\{x(\alpha)x(\alpha-\tau)\Big\}\cdot w_T(\alpha)w_T(\alpha-\tau)d\alpha\\
&= \int_{-\infty}^{\infty}R_{xx}(\tau)\cdot w_T(\alpha)w_T(\alpha-\tau)d\alpha\\
&= R_{xx}(\tau)\cdot 2T\Lambda(\tau)
\end{align*}}$

$\Lambda(\tau)$是一个三角形函数,顶点为$(0,1),(-T,0),(T,0)$,极限情况下有$\displaystyle{\lim_{T\to\infty}\Lambda(\tau)=1}$

时域与频域都乘以$\frac{1}{2T}$,可以得到

$\displaystyle{\color{red}{R_{xx}(\tau)\Lambda(\tau)} \stackrel{\mathcal{F}}{\longleftrightarrow} \color{blue}{\frac{1}{2T}E\big[|X_T(j\omega)|^2\big]}}$

此时令$T\to\infty$,左边就只剩下$R_{xx}(\tau)$,它的傅里叶变换就是$S_{xx}(j\omega)$,因此得到

$\displaystyle{\color{red}{R_{xx}(\tau)} \stackrel{\mathcal{F}}{\longleftrightarrow}\color{blue}{S_{xx}(j\omega)=\lim_{T\to\infty} \frac{1}{2T}E\big[|X_T(j\omega)|^2\big]}}$

上面的式子可以这样解释:为了得到$S_{xx}(j\omega)$需要执行以下步骤

  1. 获取WSS process的多个realization,这些realization的有效范围为$(-T,T)$
  2. 对每个realization执行$\mathcal{F}\big\{ x_T(t)*x_{\overleftarrow{T}}(\tau) \big\}$以得到多个$|X_T(j\omega)|^2$
  3. 对这些$|X_T(j\omega)|^2$求平均,然后再乘以$\frac{1}{2T}$,就能得到$S_{xx}(j\omega)$

※realization的数量越多,$T$的范围越大,最终得到的$S_{xx}(j\omega)$就会越精确。

Reference:

Alan V. Oppenheim: Signals, Systems and Inference, Chapter 10:Power Spectral Density

Power Spectral Density的更多相关文章

  1. Python power spectral 功率谱

    You can also use scipy.signal.welch to estimate the power spectral density using Welch’s method. Her ...

  2. 【Duke-Image】Week_4 Image restoration

    Chapter 5 Image Restoration and Reconstruction 图像复原与重建 5.1 A Model of the Image Defradation/Restorat ...

  3. 使用 FFT 进行频谱分析

    下面的示例说明了如何使用 FFT 函数进行频谱分析.FFT 的一个常用场景是确定一个时域噪声信号的频率分量. 首先创建一些数据.假设是以 1000 Hz 的频率对数据进行的采样.首先为数据构造一条时间 ...

  4. matplotlib.mlab库的重要函数

    连接地址 matplotlib.mlab¶ 与 MATLAB兼容的函数 MATLAB compatible functions¶ cohere() Coherence (normalized cros ...

  5. Modeling Filters and Whitening Filters

    Colored and White Process White Process White Process,又称为White Noise(白噪声),其中white来源于白光,寓意着PSD的平坦分布,w ...

  6. PSD的单位及计算方法[转]

      功率谱密度(PSD)的国际单位 功率谱密度(PSD),单位为:unit^2/Hz代表单位频率上信号的能量,所以是密度谱,幅值代表频段内的有效值平方. 如果是加速度功率谱密度,加速度的单位是m/s^ ...

  7. spectrogram函数做短时傅里叶分析

    整理自:http://blog.sina.com.cn/s/blog_6163bdeb0102dwfw.html 今天偶人发现原来matlab自带了短时傅里叶变换的分析函数,老版本的matlab是sp ...

  8. WLAN 802.11 a/b/g PHY Specification and EDVT Measurement III

    Transmit Rated Emission (FCC) AC power conducted emission.-FCC 15.207 Minimum 6 dB bandwidth. -500kH ...

  9. matplot模块中的pylab

    pylab的目的 Pylab combines the functionality of pyplot with the capabilities of NumPy in a single names ...

随机推荐

  1. Asp.Net Core实战(干货)

    序言 使用.NET Core,团队可以更容易专注的在.net core上工作.比如核心类库(如System.Collections)的更改仍然需要与.NET Framework相同的活力,但是ASP. ...

  2. 一起学习造轮子(一):从零开始写一个符合Promises/A+规范的promise

    本文是一起学习造轮子系列的第一篇,本篇我们将从零开始写一个符合Promises/A+规范的promise,本系列文章将会选取一些前端比较经典的轮子进行源码分析,并且从零开始逐步实现,本系列将会学习Pr ...

  3. [WPF]如何使用代码创建DataTemplate(或者ControlTemplate)

    1. 前言 上一篇文章([UWP]如何使用代码创建DataTemplate(或者ControlTemplate))介绍了在UWP上的情况,这篇文章再稍微介绍在WPF上如何实现. 2. 使用Framew ...

  4. H5 15-交集选择器

    15-交集选择器 我是段落 我是段落 我是段落 我是段落 我是段落 <!DOCTYPE html> <html lang="en"> <head> ...

  5. 埋锅。。。BZOJ1004-置换群+burnside定理+

    看这道题时当时觉得懵逼...这玩意完全看不懂啊...什么burnside...难受... 于是去看了点视频和资料,大概懂了置换群和burnside定理,亦步亦趋的懂了别人的代码,然后慢慢的打了出来.. ...

  6. 整数划分 poj3181

    分析 因为n,m分别最大1000,100 所以结果会超过ll,要用两个来存大数的两部分 代码 #include<iostream> #include<algorithm> #i ...

  7. c++之sizeof的用法

    在此温习一下c语言中sizeof的用法以及c++11.0的标准中,关于初始化的新方式,先上代码: # include "iostream" # include "stri ...

  8. mysql创建数据库命令

    CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  9. TortoiseGit push免输密码

    (ฅ>ω<*ฅ) 噫又好了~ TortoiseGit push免输密码的方法 – 晨旭的博客~https://www.chenxublog.com/2016/03/04/tortoiseg ...

  10. Python3练习题 026:求100以内的素数

    p = [i for i in range(2,100)] #建立2-99的列表 for i in range(3,100): #1和2都不用判断,从3开始     for j in range(2, ...