RT,我在做恒模算法中,mse曲线画出来跟论文中差别很大,求高人指点下,不胜感激。

解决方案 »

  1.   

    还不会插入图片,我的曲线趋势是随着迭代次数上升的,明显是错误的。请问MSE曲线到底应该怎么画呢?
      

  2.   

    下面是我的程序:
    % MATLAB源程序
    clear all;
    clc;N=20000;
    K=10;
    M=4;%调制阶数
    limit = 1000;%门限
    d=0.5;%判决圆半径
    L_f=21;              
    adaptsize=20;
    actual_isi=[0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088];
    snr=35;
    Num_of_realizations=20;
    mse_av=zeros(1,N-2*K);
        
    x = randint(N,1,M);
    info=qammod(x,M);
    table = table_mqam(M);
    info=info.';
    y1=filter(actual_isi,1,info);
    y=awgn(y1,snr,'measured');
    % scatterplot(y)mu=1e-3;
    u_lms = 5e-3;
    R = mean((abs(info)).^4)/mean((abs(info)).^2);
    Ri = mean((real(info)).^4)/mean((real(info)).^2);
    Rq = mean((imag(info)).^4)/mean((imag(info)).^2);
    estimated_f1(1:L_f)=[0 0 0 0 0 0 0 0 0 0 0.1 0 0 0 0 0 0 0 0 0 0];
    tic
    for  k=1:N-L_f+1,
        yout_1=y(k+L_f-1:-1:k);
        z(k)=estimated_f1*yout_1.';
        e_k=(R-(abs(z(k))).^2)*z(k);
        
        estimated_f1=estimated_f1+mu*e_k*conj(yout_1);
        z1(k)=demod_mqam(z(k),table,M);
       
        e(k) = (z1(k) - z(k));
        if (abs(e(k))<0.5)
            estimated_f1 = estimated_f1 + u_lms * e(k) * conj(yout_1);
        end
        e1(k)=abs(info(k+L_f-1)-z(k));
        mse(k)=e1(k).*e1(k);
        % mse(k) = (abs(z(k))^2-R)^2;
    end;mse_db = 10*log10(mse);figure(1)
    subplot(2,1,1);plot(y,'.');title('均衡前');grid on;
    subplot(2,1,2);plot(z(10000:N-L_f+1),'.');title('均衡后');grid on;grid on;
    figure(2)
    plot(mse_db,'r-');
    hold on;