⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sca.m

📁 用于自适应盲均衡的自适应变模SCA算法,具有良好的性能.
💻 M
字号:
%说明:SCA算法,性能由ISI表示
clc;
clear all;
K=11;%抽头个数
delta=0.000002;%迭代步长因子
Num_of_realizations=1;%学习次数
SNR=25;%输入信噪比
sgma=1;%输入信号功率
N=15000;%数据长度
d=1;%最小欧式距离
Fd=1000;%波特率
Fs=1000;%采样速率
numoferr=0;
sum=0;
NB=100;
actual_isi=[0.0410+0.0109j 0.0495+0.0123j 0.0672+0.0170j 0.0919+0.0235j 0.7920+0.1281j 0.3960+0.0871j 0.2715+0.0498j 0.2291+0.0414j 0.1287+0.0154j 0.1032+0.0119j];
mse=zeros(1,N);
MSE_av=zeros(1,N-NB);
M=16;%进制数调制
for jt=1:Num_of_realizations
    %产生信源
    a=qam_gen(M,N,d,Fd,Fs);
    a1=real(a);
    a2=imag(a);
    figure(1)
    plot(a1,a2,'*r');
   grid on;
    title('(1)原始的星座图')
    if(jt==1) 
    end;
    for i=1:N
        Q(i)=(abs(real(a(i))+imag(a(i)))+abs(real(a(i))-imag(a(i))))*((sign(real(a(i))+imag(a(i)))*(1+j)+sign(real(a(i))-imag(a(i))))*(1-j))*conj(a(i));
        Fenzi(i)=(abs(real(a(i))+imag(a(i)))+abs(real(a(i))-imag(a(i)))).^2*Q(i);
    end
    R2=mean(Fenzi)/mean(Q);
    x1=filter(actual_isi,1,a);  %序列通过有ISI的信道滤波器
    x=awgn(x1,SNR,sgma);%加噪声
    x1=real(x);
    x2=imag(x);
    figure(2)
    plot(x1,x2,'*r');
    grid on;
    title('(2)均衡器输入信号的星座图');
    W(1:K)=0; 
    W((K+1)/2)=1;%均衡器抽土系数的初始值
    %SCA算法
    for k=K:N
        x_k=x(k:-1:k-K+1);
        z_k=x_k*(W.');
        z(k)=z_k;
        D=decide_16QAM(z_k,1);
        if abs(real(z_k))>=abs(imag(z_k))
            X=1;
        else
            X=0;
        end
         if abs(real(z_k))<=abs(imag(z_k))
           Y=1;
        else
            Y=0;
        end
        e(k)=4*real(z_k)*(4*real(z_k)^2-R2)*X+j*4*imag(z_k)*(4*imag(z_k)^2-R2)*Y;
       mse(k)=abs((z_k-D))^2;
        W=W-delta*e(k)*conj(x_k);
    end
    if(jt==1) 
    end
    for k=1:N-NB
    ERR=0;
    for i=k:k+NB
        ERR=ERR+mse(i);
    end
    MSE(k)=ERR/NB;
    end
MSE_av=MSE_av+MSE;
end
MSE_av=MSE_av/Num_of_realizations;
z1=real(z);
z2=imag(z);
figure(3)
plot(z1(N-5000:N-K+1),z2(N-5000:N-K+1),'*');
grid on;
title('(3)均衡后的星座图');
figure(4)
plot((10*log10(MSE_av)))%画ISI,单位dB
xlabel('迭代次数');
ylabel('ISI(dB)');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -