西条小勇
2008-12-16, 21:30
这个程序看了半个多月了,关键的部分没有太大的进展
请各位说说自己的看法吧,各抒己见,众人拾柴火焰高
洗耳恭听
N=64;
Llen=16;
lnum=52;
MSE=zeros(16,1);
MSEe=zeros(16,1);
Pre=zeros(64,16);
for l=2:Llen
%%
cpifft1=N*ifft(eye(64,l));
cpifft=[cpifft1(2:27,:);cpifft1(39:64,:)];
hcp = cpifft'; % F_L^H
rev = real(hcp);
imv = imag(hcp);
bighcp = [rev imv;-imv rev];
yk = ones(1,lnum);
setlmis([])
[W,n1,w1] = lmivar(1,[l 1]); % dec. variable W
[L,n2,l1] = lmivar(1,[ones(lnum,1) zeros(lnum,1)]); % dec. variable L
bigW = lmivar(3,[w1 zeros(l);zeros(l) w1]);
bigL = lmivar(3,[l1 zeros(lnum);zeros(lnum) l1]);
% first LMI
lmiterm([-1 1 1 bigL],bighcp,bighcp');
lmiterm([-1 1 2 0],1);
lmiterm([-1 2 1 0],1);
lmiterm([-1 2 2 bigW],1,1);
% second LMI
lmiterm([-2 1 1 L],1,1);
% third LMI (equality)
lmiterm([3 1 1 L],yk,yk');
lmiterm([-3 1 1 0],1);
lmiterm([-4 1 1 L],yk,yk');
lmiterm([4 1 1 0],0.999999999999);
LMIs = getlmis
n = decnbr(LMIs);
c = zeros(n,1);
% object function
for j=1:n
[Wj,Lj] = defcx(LMIs,j,W,L);
c(j) = trace(Wj*hcp*hcp');
end
%option
options = [0,1000,0,0,0];
%LMIsolver
[copt,xopt] = mincx(LMIs,c,options)
Wopt = dec2mat(LMIs,xopt,W);
Lopt = dec2mat(LMIs,xopt,L);
Ws = Wopt;
Ls = diag(Lopt);
% MSE
MSE(l) = trace(inv(hcp*diag(Ls)*hcp')*hcp*hcp');
% Preamble
Pre(33:58,l)=Ls(1:26);
Pre(6:31,l)=Ls(27:52);
end
Pre=Pre*diag(1./sum(Pre));
MSEe=52*[1:16];
%stem(-31:32,Pre)
请各位说说自己的看法吧,各抒己见,众人拾柴火焰高
洗耳恭听
N=64;
Llen=16;
lnum=52;
MSE=zeros(16,1);
MSEe=zeros(16,1);
Pre=zeros(64,16);
for l=2:Llen
%%
cpifft1=N*ifft(eye(64,l));
cpifft=[cpifft1(2:27,:);cpifft1(39:64,:)];
hcp = cpifft'; % F_L^H
rev = real(hcp);
imv = imag(hcp);
bighcp = [rev imv;-imv rev];
yk = ones(1,lnum);
setlmis([])
[W,n1,w1] = lmivar(1,[l 1]); % dec. variable W
[L,n2,l1] = lmivar(1,[ones(lnum,1) zeros(lnum,1)]); % dec. variable L
bigW = lmivar(3,[w1 zeros(l);zeros(l) w1]);
bigL = lmivar(3,[l1 zeros(lnum);zeros(lnum) l1]);
% first LMI
lmiterm([-1 1 1 bigL],bighcp,bighcp');
lmiterm([-1 1 2 0],1);
lmiterm([-1 2 1 0],1);
lmiterm([-1 2 2 bigW],1,1);
% second LMI
lmiterm([-2 1 1 L],1,1);
% third LMI (equality)
lmiterm([3 1 1 L],yk,yk');
lmiterm([-3 1 1 0],1);
lmiterm([-4 1 1 L],yk,yk');
lmiterm([4 1 1 0],0.999999999999);
LMIs = getlmis
n = decnbr(LMIs);
c = zeros(n,1);
% object function
for j=1:n
[Wj,Lj] = defcx(LMIs,j,W,L);
c(j) = trace(Wj*hcp*hcp');
end
%option
options = [0,1000,0,0,0];
%LMIsolver
[copt,xopt] = mincx(LMIs,c,options)
Wopt = dec2mat(LMIs,xopt,W);
Lopt = dec2mat(LMIs,xopt,L);
Ws = Wopt;
Ls = diag(Lopt);
% MSE
MSE(l) = trace(inv(hcp*diag(Ls)*hcp')*hcp*hcp');
% Preamble
Pre(33:58,l)=Ls(1:26);
Pre(6:31,l)=Ls(27:52);
end
Pre=Pre*diag(1./sum(Pre));
MSEe=52*[1:16];
%stem(-31:32,Pre)