使用MATLAB从自相关函数的功率谱

时间:2012-08-13 09:16:49

标签: matlab signal-processing fft correlation

我有一些动态光散射数据。机器抽出自相关函数和计数率。

我可以简单地适应ACF

ACF = exp(-D*q^2*t) 

并获得扩散系数。

我想从功率谱中获得相同的D。我已经能够以两种方式创建功率谱 - 从ACF的傅立叶变换和计数率。两者都同意,但功率谱看起来不像书中的那个,所以我不知道如何使用它来计算线宽。

附件是PDF中的图像,显​​示了您应该获得的内容以及从MATLAB中获得的内容。谁能理解最新情况呢?

我在this问题上使用了答案#3的代码。产生的自相关与

完全相同
  1. 机器给了我和
  2. 在photoncount数据上使用MATLAB的autocorr命令。
  3. 感谢您的时间。

    enter image description here

1 个答案:

答案 0 :(得分:3)

当您从短数据序列计算傅里叶变换时,它通常看起来非常嘈杂。有许多的原因。一个原因是各个傅立叶分量的统计量不是高斯分布,因此对多个数据样本的频谱进行平均只会慢慢提高估计的质量。

经验光谱行为中“噪声”的另一个原因是您正在应用(对有限数据样本)一个涉及病态sinc function并且假定无限长信号的变换。为了减少此问题,在计算傅里叶变换之前,将"windowing-function"应用于数据会很有帮助。更复杂但也更强大的窗口方法之一是使用所谓的“Slepian锥形”。

MATLAB可以方便地在hamminghann等函数中实现众所周知的窗口。