ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

现代信号处理-现代功率谱密度估计AR模型

2021-12-18 00:02:29  阅读:213  来源: 互联网

标签:密度估计 现代 模型 谱估计 50 xpsd AR pmax


目录


前言

本栏前两节经典谱估计中提到:经典谱估计下,方差和分辨率是一对矛盾。这是因为经典谱估计将数据进行了加窗,自相关法还对自相关进行了加窗(二次加窗),这就让我们想到把原始数据藏在一个系统H(Z)中,让这个系统包含这组数据的特性,这样一来,系统中的系数就可以表示系统反映的数据。这就是现代功率谱密度估计-参数模型法的思想。按照书本的就是先根据数据的自相关函数r(m)求出H(Z)系数,再通过H(Z)进行谱估计
参数模型法有AR,MA,ARMA模型,其性质为:

ARMAARMA
H(Z)峰值谷值兼顾
线性/非线性线性非线性非线性
反映频谱特性峰值谷值兼顾

一、概率梳理

由于AR模型是线性方程,也可以等效预测模型,所以AR模型远比另外两种实用,所以本文只梳理和仿真了AR模型
首先模型中令输入是白噪声,需要求解H(Z)的系数也就是ak,k=1,2…p。也就是要通过数据的自相关与ak的关系进行求解,也就是需要通过正则方程(Yule-Walker方程),正则方差的推导过程如下:
在这里插入图片描述
其中,正则方差可以用Lecinson-Durbin递推快速算法计算,也就是自相关法的方法。后面还会说其他的方法以及比较。
并且在预测模型中,二者系统的系数是相等的,其最小误差等效于AR模型输入端白噪声的方差。其关系如下:
在这里插入图片描述

二、AR模型的几种方法

比较常见的有刚刚提及的自相关法,还有burg法和改进后的协方差法,它们之间的区别如下:

自相关法burg法改进后的协方差法
预测方式前向预测前后向预测前向预测
加窗前后加窗前后都不加窗前后都不加窗
Levinson递推算法可以使用可以使用不可使用

除此之外,还有常会用到的最大熵谱估计,由于数据可能相对于原始数据还是有截短。之前的经典谱估计是将两边直接为零,而这里是将两边加上最随机的数,也就是最大熵的准则。

三、AR模型的方法与具体仿真

为了和经典功率谱估计比较,采用的原数据和前两节经典功率谱估计一样的,仿真采取的阶数均为50

%%现代功率谱估计的一些方法
clear all;
clc;close all;clear;
N=200; Nfft=20000; Fs=1; n=0:N-1;
x=cos(0.3*pi*n)+cos(0.32*pi*n)+0.1*randn(size(n));
fn=-0.5:2/N:0.5;
figure;
%% burg法
% 使用 Burg 算法得到功率谱估计;
xpsd=pburg(x,50,N);
pmax=max(xpsd);
xpsd=xpsd/pmax;
xpsd=10*log10(xpsd+0.000001);
subplot(221);
plot(fn,fftshift(xpsd));grid on;title('burg法');
%% 协方差法
xpsd=pcov(x,50,N);
pmax=max(xpsd);
xpsd=xpsd/pmax;
xpsd=10*log10(xpsd+0.000001);
subplot(222);
plot(fn,fftshift(xpsd));grid on;title('协方差法');
%% 协方差的改进法
xpsd=pmcov(x,50,N);
pmax=max(xpsd);
xpsd=xpsd/pmax;
xpsd=10*log10(xpsd+0.000001);
subplot(223);
plot(fn,fftshift(xpsd));grid on;title('改进的协方差法');
%% 最大熵法
xpsd=pmem(x,50,N);
pmax=max(xpsd);
xpsd=xpsd/pmax;
xpsd=10*log10(xpsd+0.000001);
subplot(224);
plot(fn,fftshift(xpsd));grid on;title('最大熵法');
%% 自相关
figure;
% 使用自相关矩阵分解的 MUSIC 算法得到功率谱估计;
xpsd=pmusic(x',50,N);
pmax=max(xpsd);
xpsd=xpsd/pmax;
xpsd=10*log10(xpsd+0.000001);
subplot(311);
plot(fn,fftshift(xpsd));grid on;title('自相关矩阵分解的MUSIC算法');
% 使用自相关矩阵分解的特征向量算法得到功率谱估计;
[xpsd,F,V,E]=peig(x',50,N);
pmax=max(xpsd);
xpsd=xpsd/pmax;
xpsd=10*log10(xpsd+0.000001);
subplot(312);
plot(fn,fftshift(xpsd));grid on;title('自相关矩阵分解的特征向量算法');
% 使用自相关法得到功率谱估计;
xpsd=pyulear(x,50,N);
pmax=max(xpsd);
xpsd=xpsd/pmax;
xpsd=10*log10(xpsd+0.000001);
subplot(313);
plot(fn,fftshift(xpsd));grid on;title('自相关法');

在这里插入图片描述
在这里插入图片描述

标签:密度估计,现代,模型,谱估计,50,xpsd,AR,pmax
来源: https://blog.csdn.net/QWER306306/article/details/121987510

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有