AR模型功率谱估计源码程序 - matlab算法设计 - 谷速源码
下载频道> 资源分类> matlab源码> 算法设计> AR模型功率谱估计源码程序

标题:AR模型功率谱估计源码程序
分享到:

所属分类: 算法设计 资源类型: 文件大小: 2.53 KB 上传时间: 2016-01-28 19:28:30 下载次数: 11 资源积分:1分 提 供 者: xiaopeng2 AR模型功率谱估计源码程序
内容:
AR模型功率谱估计源码程序,程序员在编程的过程中可以参考学习使用,希望对IT程序员有用,此源码程序简单易懂、方便阅读,有很好的学习价值!
clear;
clc;
x = [101 82 66 35 31 7 20 92 154 125 85 68 38 23 10 24 83 132 131 118 90 67 60 47 41 21 16 6 4 7 14 34 45 43 48 42 28 10 8 2 0 1 5 12 14 35 46 41 30 24 16 7 4 2 8 17 36 50 62 67 71 48 28 8 13 57 122 138 103 86 63 37 24 11 15 40 62 98 124 96 66 64 54 39 21 7 4 23 55 94 96 77 59 44 47 30 16 7 37 74];
N=length(x);
%调用自相关函数求得x的自相关R
R=ZXG(x);
H=1024;%FFT点数
%han=zeros(1,1024);
%定义一个窗长为N的汉明窗
for i=1:N
    han(i)=100*(0.54-0.46*cos(2*pi*i/N));
end
 
%用周期图法求数据的功率谱估计P
X=abs(fft(x,H));
for i=1:H
    P(i)=X(i)*X(i)/N;
end
 
%改进之后的周期图法,u为汉明窗
for i=1:99
    u(i)=R(i)*han(i);
end
UU=abs(fft(u,H));
 
%三阶AR模型参数得其功率谱
a_11=-R(2)/R(1);
D_1=(1-abs(a_11)*abs(a_11))*R(1);
a_22=-(R(3)+a_11*R(2))/D_1;
a_21=a_11+a_22*a_11;
D_2=(1-abs(a_22)*abs(a_22))*D_1;
a_33=-(R(4)+a_21*R(3)+a_22*R(2))/D_2;
a_32=a_22+a_33*a_21;
a_31=a_21+a_33*a_22;
D_3=(1-abs(a_33)*abs(a_33))*D_2;
 
A=[a_31 a_32 a_33];
D=abs(fft(A,H));
for i=1:H
    PP(i)=D_3/((1+D(i))*(1+D(i)));
end
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%  因为AR谱估计高阶算法与三阶算法类似,而这种  %%%
%%%  方法与线性预测谱估计等效,故可以直接直接调  %%%
%%%  用求线性预测的系统函数LPC(X,N)求取高阶AR   %%%
%%%  谱估计                                   %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
%取阶数为70
L=LPC(x,70);
LL=abs(fft(L,H));
for i=1:H
    PPP(i)=D_3/((1+LL(i))*(1+LL(i)));
end
 
%axis([0 128 0 5]);
%Burg法求解AR模型的参数,得到的功率谱
J=30;
%调用Burg算法
[K,D]=burg_Kp(x,J);
%J表示所取阶数
 
A=zeros(1,J+1);
A(1)=1;
A(2:J+1)=K(J,:);
D2=D(J+1);
FA=abs(fft(A,H));
for i=1:H
    PA(i)=D2/((1+FA(i))*(1+FA(i)));
end
 
%画周期图法谱估计
figure(1);
subplot(2,1,1);
plot(P);
axis([0 100 0 100000]);
title('周期图法谱估计(FFT点数:1024)');
xlabel('n');
ylabel('P(w)');
%axis([0 100 -15 15]);
grid on;
 
%画改进后的周期图法谱估计(加窗):
subplot(2,1,2);
plot(UU);
axis([0 100 0 1000000]);
title('改进后的周期图法谱估计(FFT点数:1024)');
xlabel('n');
ylabel('P(w)');
grid on;
%自回归AR模型谱估计(Levinson-Durbin)法
%画三阶AR模型谱估计
figure(2);
subplot(2,1,1);
plot(PP);
title('三阶AR模型谱估计Levinson-Durbin法');
xlabel('n');
ylabel('P(w)');
grid on;
 
%画高阶(70阶)AR模型谱估计
subplot(2,1,2);
plot(PPP);
axis([0 100 0 400]);
title('高阶(70阶)AR模型谱估计Levinson-Durbin法');
xlabel('n');
ylabel('P(w)');
grid on;
 
%画Burg法求解AR模型的参数,得到的功率谱曲线
%阶数选30
figure(3);
subplot(2,1,1);
plot(PA);
axis([0 128 0 800]);
title('30阶AR模型谱估计Burg法(FFT点数:1024)');
xlabel('n');
ylabel('P(w)');
grid on;
 

文件列表(点击上边下载按钮,如果是垃圾文件请在下面评价差评或者投诉):

关键词: 功率 源码 模型

Top_arrow
回到顶部
联系方式| 版权声明| 招聘信息| 广告服务| 银行汇款| 法律顾问| 兼职技术| 付款方式| 关于我们|
网站客服网站客服 程序员兼职招聘 程序员兼职招聘
沪ICP备19040327号-3
公安备案号:沪公网安备 31011802003874号
库纳格流体控制系统(上海)有限公司 版权所有
Copyright © 1999-2014, GUSUCODE.COM, All Rights Reserved