擅长:python、mysql、java
<p>级数傅里叶变换的平方模被定义为能谱密度(ESD)。您需要将ESD除以序列的长度,才能将其转换为功率谱密度的估计值(PSD)。在</p>
<h2>单位</h2>
<p>PSD的单位是[units]**2/[frequency],其中[units]表示原始系列的单位。在</p>
<h2>规范化</h2>
<p>为了检查标准化是否正确,可以对白噪声的PSD进行数值积分(方差已知)。如果积分谱等于级数的方差,则归一化是正确的。但是,系数2(太低)并不错误,它可能表示PSD被规范化为<em>双面</em>;在这种情况下,只需乘以2,就可以得到一个正确规格化的单边PSD。在</p>
<p>使用numpy,<a href="http://docs.scipy.org/doc/numpy-1.7.0/reference/generated/numpy.random.randn.html" rel="nofollow" title="randn">randn</a>函数生成高斯分布的伪随机数。例如</p>
<pre><code>10 * np.random.randn(1, 100)
</code></pre>
<p>生成平均值为0且方差为100的1乘100数组。如果采样频率为1-Hz,<em>单边</em>PSD理论上将从[0,0.5]Hz在200个单位**2/Hz处平坦;因此,综合频谱将为10,等于序列的方差。在</p>
<p><em>更新</em></p>
<p>我修改了您链接的python代码中包含的示例,以演示长度为20、方差为1、采样频率为10的正态分布序列的规范化:</p>
^{pr2}$
<p>这对我来说是:</p>
<pre><code>5.26315789474 0.482185882163 0.964371764327
</code></pre>
<p>这向你展示了一些事情:</p>
<ol>
<li>所要求的“奈奎斯特”频率实际上是采样频率。在</li>
<li>结果需要除以采样频率。在</li>
<li>对于双面PSD,输出是标准化的,因此乘以2可以使积分谱接近1。在</li>
</ol>