使用FFT计算滑动平均(MA)模型参数
使用FFT计算滑动平均(MA)模型参数
利用时间序列自相关函数与滑动平均(Moving Average,MA)模型参数的关系,采用快速傅里叶变换(Fast Fourier Transform,FFT)算法实现MA模型参数的快速估计,所得到的MA模型具有最小相位性质。MA模型也是现代谱估计中常用的模型,m阶滑动平均模型的自相关系数是m阶截尾的,偏相关系数是拖尾的。根据MA模型可计算信号功率谱密度。对于非平稳时间序列一般采用差分法得到想要的平稳序列。
设MA模型的阶数为m(记为MA(m)),w(t)是零均值高斯白噪声序列,则时间序列x(t)的滑动平均(MA)模型定义为:
其中b(i),i = 0,1,…,m是MA(m)模型的参数,且b(0)恒等于1。
根据参考文献,总结利用FFT计算MA(m)模型的参数过程如下:
①计算自相函数估计值,c[i],i=0,1,…,K-1,K是2的整数次幂(如K=1024),且K远大于阶次m,由于MA序列自相关函数具有截尾性质,所以令当i>m时c[i]=0,即,
其中n是时间序列x(t)的长度。
②构建序列r(i),i=0,1,…,K-1,
r(i)具有对称性质,即r(i)=r(K-i),k = 1,2, …, K/2。
③使用快速傅里叶变换(FFT)计算序列p(i),
其中FFT(r)表示计算r(i)序列的傅里叶变换,|·|表示求模。
④使用傅里叶反变换(IFFT)计算序列s(i),
其中log(·)表示自然对数,IFFT(·)表示计算傅里叶反变换,Re(·)表示取实部。
⑤求U=[u(0), u(1), …, u(m)]序列,
⑥求MA(m)模型系数b(i), i=0,1,2,…,m,
b(i),b(0)≡1,i=0,1,…,m,是用复倒谱法恢复的最小相位序列,即MA(m)模型的参数。
以上求取MA(m)模型参数的算法基于时间序列的自相关函数,涉及两次FFT运算,速度较快,避免了迭代运算。
使用MA(m)模型计算时间序列功率谱:
参考文献
[1] 成奇明,黄绣坤,张树京. 一种MA参数矩估计新方法[J]. 信号处理,1991年9月,第7卷第3期,第159-162页.
[2] 信号功率谱估计,https://bbs.huaweicloud.com/blogs/360317
软件使用
MA模型参数估计,菜单操作:《分析》→《通用分析》→《MA模型估计》,出现如下对话框,
在对话框中输入合适的MA模型阶数m,回车或者点击 “计算”按钮,可以重新按照新的阶数估计MA模型参数,并计算MA模型估计的功率谱(红色曲线),并与之对照绘制出用周期图法估计的功率谱(蓝色曲线)。左边的列表框里显示模型参数,可通过点击“保存”按钮将参数保存到指定的文件之中。这里MA模型阶次取值范围是[1,256]之间的整数。
- 点赞
- 收藏
- 关注作者
评论(0)