Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-03-10, 10:35   #1
ganhaohao
初级会员
 
注册日期: 2008-08-15
年龄: 42
帖子: 3
声望力: 0
ganhaohao 正向着好的方向发展
默认 [求助]如何在功率谱密度图中添加一条信度值为0.9的置信曲线

下面的数据是从1770年至1869年这100年间每年12个月所记录到的太阳黑子出现次数的平均值。
a. 用周期图法做该数据的功率谱,从该曲线您是否可以看出太阳黑子活动的周期?
b. 对该数据建立一个三阶的AR模型,分别用Levinson-Durbin法和Burg法求解AR模型的参数,并得到功率谱曲线,从该曲线来发现太阳黑子的活动周期。改变AR模型的阶次,看不同阶次下所估计出的周期的差别。
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];
下面是matlab程序:
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);
R=ZXG(x);
%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,1024));
for i=1:1024
P(i)=X(i)*X(i)/N;
end
plot(P);
%改进之后的周期图法,u为汉明窗
for i=1:99
u(i)=R(i)*han(i);
end
UU=abs(fft(u,1024));
figure(2);
plot(UU);
axis([0 100 0 1000000]);
grid on

%三阶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,256));
for i=1:256
PP(i)=D_3/((1+D(i))*(1+D(i)));
end
figure(3);
plot(PP);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%因为AR谱估计高阶算法与三阶算法类似, %
%%%而这种方法与线性预测谱估计等效,故 %
%%%可以直接直接调用求线性预测的系统函数LPC(X,N)
L=LPC(x,70);
LL=abs(fft(L,256));
for i=1:256
PPP(i)=D_3/((1+LL(i))*(1+LL(i)));
end
figure(4);
plot(PPP);
%axis([0 128 0 5]);

此程序主要用于输入数据的功率谱估计,该程序由三部分组成:burg_Kp.m,Mainfun.m,ZXG.m.其中:Mainfun.m为主函数,burg_Kp.m为Burg算法函数,ZXG.m为求输入信号自相关的函数(估计)。

问题在于,如何在功率谱密度图中添加一条信度值为0.9的置信曲线?
ganhaohao 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[MATLAB GUI] 如何txt文档读入数据至GUI,并将数据显示在edit框中? seuyx MATLAB论坛 0 2009-05-08 22:07
[MATLAB GUI] 求助:如何编写可接受输入的编辑框 kuca MATLAB论坛 4 2009-05-07 19:55
[求助]谁告诉下模糊控制的simulink仿真的倒车系统设计原理 sanchol MATLAB论坛 0 2008-12-19 18:21
solve错在哪里?? 求助!!! ldd00 MATLAB论坛 4 2008-12-01 11:22
高手帮忙!logistic混沌序列方面的问题。 wuyue-xiaogui MATLAB论坛 0 2008-05-16 11:47


所有时间均为北京时间。现在的时间是 16:04


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.