Power Spectral Density
对于一个特定的信号来说,有时域与频域两个表达形式,时域表现的是信号随时间的变化,频域表现的是信号在不同频率上的分量。在信号处理中,通常会对信号进行傅里叶变换得到该信号的频域表示,从而得到信号在频域上的特性,进而可以对该信号进行频域上的处理。不过对于随机过程这种不确定的信号是无法直接进行傅里叶转换的,那么是否就意味着我们无法知晓随机过程的频域特性呢?
对于随机过程,我们也是有办法得到其频域特性的,其频域特性可以用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 Density(PSD)。
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)$需要执行以下步骤
- 获取WSS process的多个realization,这些realization的有效范围为$(-T,T)$
- 对每个realization执行$\mathcal{F}\big\{ x_T(t)*x_{\overleftarrow{T}}(\tau) \big\}$以得到多个$|X_T(j\omega)|^2$
- 对这些$|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的更多相关文章
- Python power spectral 功率谱
You can also use scipy.signal.welch to estimate the power spectral density using Welch’s method. Her ...
- 【Duke-Image】Week_4 Image restoration
Chapter 5 Image Restoration and Reconstruction 图像复原与重建 5.1 A Model of the Image Defradation/Restorat ...
- 使用 FFT 进行频谱分析
下面的示例说明了如何使用 FFT 函数进行频谱分析.FFT 的一个常用场景是确定一个时域噪声信号的频率分量. 首先创建一些数据.假设是以 1000 Hz 的频率对数据进行的采样.首先为数据构造一条时间 ...
- matplotlib.mlab库的重要函数
连接地址 matplotlib.mlab¶ 与 MATLAB兼容的函数 MATLAB compatible functions¶ cohere() Coherence (normalized cros ...
- Modeling Filters and Whitening Filters
Colored and White Process White Process White Process,又称为White Noise(白噪声),其中white来源于白光,寓意着PSD的平坦分布,w ...
- PSD的单位及计算方法[转]
功率谱密度(PSD)的国际单位 功率谱密度(PSD),单位为:unit^2/Hz代表单位频率上信号的能量,所以是密度谱,幅值代表频段内的有效值平方. 如果是加速度功率谱密度,加速度的单位是m/s^ ...
- spectrogram函数做短时傅里叶分析
整理自:http://blog.sina.com.cn/s/blog_6163bdeb0102dwfw.html 今天偶人发现原来matlab自带了短时傅里叶变换的分析函数,老版本的matlab是sp ...
- 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 ...
- matplot模块中的pylab
pylab的目的 Pylab combines the functionality of pyplot with the capabilities of NumPy in a single names ...
随机推荐
- linux驱动之中断处理过程汇编部分
linux系统下驱动中,中断异常的处理过程,与裸机开发中断处理过程非常类似.通过简单的回顾裸机开发中断处理部分,来参考学习linux系统下中断处理流程. 一.ARM裸机开发中断处理过程 以S3C244 ...
- devops工具-Ansible基础
一.Ansible介绍 简介 Ansible使用Python语言开发,是一个配置管理型工具,与之类似的工具还有Puppet.SaltStack.chef等,默认通过SSH协议进行远程命令执行或 ...
- 吉特日化MES-日化生产称料基本步骤
在日化行业称料是一个非常重要的环节,整个生产过程中称料所占据的时间也比较长,特别是遇到对料体精度高,量大的情况下称料都比较困难,汇总一下人工称料的基本过程: (1) 称量任务准备:根据生产工单或者生产 ...
- .NetCore实践爬虫系统(一)解析网页内容
爬虫系统的意义 爬虫的意义在于采集大批量数据,然后基于此进行加工/分析,做更有意义的事情.谷歌,百度,今日头条,天眼查都离不开爬虫. 今日目标 今天我们来实践一个最简单的爬虫系统.根据Url来识别网页 ...
- H5 marquee标签
39-marquee标签 内容 属性: direction: 设置滚动方向 left/right/up/down scrollamount: 设置滚动速度, 值越大就越快 loop: 设置滚动次数, ...
- stl stack用法
栈后进先出 #include<iostream> #include<algorithm> #include<cstdio> #include<stack> ...
- python实现一个二分查找
二分查找: 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列 查找过程: 首先,假设表中元素是 ...
- Day1 Numerical simulation of optical wave propagation之标量衍射理论基本原理(一)
<Numerical simulation of optical wave propagation>内容 1. 介绍光波传输的基础理论.离散采样方法.基于MATLAB平台的编码实例以及具 ...
- Telnet服务器和客户端请求处理
Telnet服务器和客户端请求处理 本文的控制台项目是根据SuperSocket官方Telnet示例代码进行调试的,官方示例代码:Telnet示例. 开始我的第一个Telnet控制台项目之旅: 创建控 ...
- Golang开发工具LiteIDE使用方法整理
安装 参考github的说明 添加GOPATH 创建workspace 创建新文件 运行程序 Liteide中运行程序有两种方式: FR(FileRun)是编译并运行单个文件,可以使用Shift + ...