开心鬼-开心鬼 发表于 2007-4-4 22:20

求助:短波信道中DD-LMS盲判决反馈均衡算法的实现.

在短波信道中,如何用matlab软件实现DD-LMS算法的盲均衡?程序怎么写啊?
还有用变步长归一化LMS均衡算法实现?用基于归一化符号DD-LMS均衡算法实现?我不知道怎么修改下面的程序,请高手指教!谢谢!
下面是参考的自适应的均衡算法(不同步长):
(在程序中修改一下,成为盲均衡算法)
% %%lms算法
clear;
%wn=;
delta1=;
Nm=500; Mm=1500; L=10;
wn1=3.1;

for jj=1:3
    delta=delta1(jj);
    mse=zeros(1,Mm-L);
    e=zeros(1,Mm-L);
    for ii=1:200
      generate(Nm,Mm,1);
      load send;
      for n=1:3
            h(n)=0.5*(1+cos(2*pi*(n-2)/wn1));
      end;
      r=s;
      d=conv(r,h);
      snr=30;
      d1=awgn(d,snr,'measured');%add gaussian white noise


      M=length(d1);%d1 相当于函数中的r   
      N=length(s);%s 相当于函数中的train
      L=10;
%xu       a=zeros(L+1,N);
%xu      y=zeros(1,M);
         w=zeros(L+1,1);
         
    %%%lms initialization
   
      u_n=zeros(L+1,1);
   
      for n=L/2:N-L/2-1
            u_n=d1(n+L/2+1:-1:n-L/2+1).';%%%******* attention*******
            e_n=s(n)-w'*u_n;
            w=w+delta*conj(e_n)*u_n;
            e(n-L/2+1)=e_n;
         %   a(:,n-L/2+1)=w;
      end;
      mse=mse+e.^2;
   end;
    mse=mse/200;
       if delta==0.075
      mse2=mse;
       end;
       if delta==0.025
      mse3=mse;
       end;
       if delta==0.0075
      mse4=mse;
       end;
end;
save lmsmiu;
load lmsmiu;
figure;
semilogy(mse2);hold on;
semilogy(mse3);hold on;
semilogy(mse4);hold on;
axis();
ylabel('均方误差 ');
xlabel('迭代次数');
gtext('u=0.075');gtext('u=0.025');gtext('u=0.0075');


这是产生随机序例的函数:
function generate(N,M,Rb)
%clear;
%N=9500;
for i=1:N
    if(rand<0.5)
       train(i)=-1;
   else
       train(i)=1;
      
    end;
end;
%the length of info: M-N
% M=10500;
for i=1:M-N
    if(rand<0.5)
       info(i)=-1;
    else
       info(i)=1;
    end;
end;
%the length of sending series :M
send=;
%%%%%%%%%%%%%%%%%%%%%%%%%%设置码元速率%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Rb=1;   %%%%原来的信息速率假设为1KHz
          %%%%采样速率=码元速率Rb:   Rb=1kHz表示按原来信息速率发送
          %%%%这里是以1kHz为基本单位,要求Rb>=1kHz
          %%%%信道模型中也是以1kHz(1ms)为单位。
          %%%%小于1kHz的码元速率是错误的。

len1=length(send);
for i=1:len1
          s(i*Rb)=send(i);
   for j=1:Rb-1
         s(i*Rb-j)=send(i);
   end;
end;
%xu for i=1:(M-N)
%xu          info1(i*Rb)=info(i);
%xu   for j=1:Rb-1
%xu      info1(i*Rb-j)=info(i);
%xu      end;
%xu end;
%xu for i=1:N
%xu          train1(i*Rb)=train(i);
%xu    for j=1:Rb-1
%xu      train1(i*Rb-j)=train(i);
%xu    end;
%xu end;

save send;
页: [1]
查看完整版本: 求助:短波信道中DD-LMS盲判决反馈均衡算法的实现.