声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1077|回复: 5

[综合讨论] 高手帮我看看这个程序错在哪里?怎么改

[复制链接]
发表于 2008-5-21 14:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
clear
clc
M=3;L=12;yz=0.01;yu=0.90;dB=25;
H0=[0.62,-0.25,0.64,0.82,0,0,0,0,-0.92,0,-0.92,0]';
% syms k p i;
power1=0.5;  N=5000;
y1=zeros(1,N-99);
u=rand(1,N);
a1=sqrt(12*power1);
u1=a1*u;
SNR=dB;
power2=power1/(10.^(SNR/20));
noise1=sqrt(power2)*randn(1,N);
u=u1+noise1;
for k=100:N
    y(k)=[0.62 -0.25 0.64 0.82 1.84]*[u(k) u(k-1) u(k-2) u(k).^2 u(k-1).*u(k-2)]';
    X(:,k)=[u(k),u(k-1),u(k-2),u(k).^2,u(k).*u(k-1),u(k).*u(k-2),u(k-1).*u(k),u(k-1).^2,u(k-1).*u(k-2),u(k-2).*u(k),u(k-2).*u(k-1),u(k-2).^2]';
end
power_y=var(y);
power3=power_y/(10.^(SNR/20));
noise2=sqrt(power3).*randn(1,N);
y=y+noise2;
P0=eye(L,L);
P100=[X(:,100) P0(:,2:L)]';R100=inv(P100'*P100);Y=[y(100) zeros(1,L-1)];
for k=100
    Pk=P100;Yk=Y;
end
for k=100:N-1
    count=0;
    for j=1:L
        if abs(X(j,k+1)-X(j,k))<yz
            count=count+1;j=j+1;
        else j=j+1;
        end
    end  
    if count/L<yu        
        Xp=X(:,k);Xc=Pk(1:L-1,:);Xl=Pk(L,:); Yc=Yk(:,1:L-1);        
        Rk=inv(Pk'*Pk);
        Sk=Rk-Rk*Xp*Xp'*Rk/(1+Xp'*Rk*Xp);
        k=k+1;
        Xp=X(:,k);Yp=y(k);Pk=[Xp Xc']';Yk=[Yp Yc];   
        Rk=Sk+Sk*Xl'*Xl*Sk/(1-Xl*Sk*Xl');
        Hk=[Sk+Sk*Xl'*Xl*Sk/(1-Xl*Sk*Xl')]*Pk'*Yk';            
    else
        k=k+1;
    end   
    H(:,k)=Hk;
    e(k)=20*log10((norm(H0-H(:,k)))^2);
end
plot(e(100:600),'r');grid on
plot(H(1,100:600),'c');grid on
plot(H(2,100:600));grid on
plot(H(3,100:600));grid on
回复
分享到:

使用道具 举报

发表于 2008-5-21 15:44 | 显示全部楼层

回复 楼主 的帖子

错误提示
 楼主| 发表于 2008-5-21 15:48 | 显示全部楼层
我看到错误提示了,只是不知道怎么改,或者说循环不能进行下去,我不知道怎么让循环进行,大侠帮帮忙
发表于 2008-5-21 15:48 | 显示全部楼层
原帖由 暗香浮动 于 2008-5-21 14:57 发表
clear
clc
M=3;L=12;yz=0.01;yu=0.90;dB=25;
H0=[0.62,-0.25,0.64,0.82,0,0,0,0,-0.92,0,-0.92,0]';
% syms k p i;
power1=0.5;  N=5000;
y1=zeros(1,N-99);
u=rand(1,N);
a1=sqrt(12*power1);
u1=a1*u;
...


请把程序报的错说一下,顺便介绍一下背景知识,OK?
否则,大家很难帮你
发表于 2008-5-21 16:54 | 显示全部楼层
原帖由 暗香浮动 于 2008-5-21 15:48 发表
我看到错误提示了,只是不知道怎么改,或者说循环不能进行下去,我不知道怎么让循环进行,大侠帮帮忙


我是想说把错误贴上来
发表于 2008-5-21 17:49 | 显示全部楼层

回复 5楼 的帖子

没有调用自编函数,整个拷贝运行下就能看到错误提示了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 09:36 , Processed in 0.065402 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表