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

📄 algorithmcmashi.m

📁 此算法为智能天线波束形成算法。为解括重括盲算法。
💻 M
字号:
clear% parametersPd=500; % length of signalM=2;% 产生gold码fbconnection1=[0 1 0 0 1];fbconnection2=[0 1 1 1 1]; goldseq=gold_seq(fbconnection1,fbconnection2);N=2^length(fbconnection1)-1; %码长度Lc=31;ind2=find(goldseq==0);goldseq(ind2)=-1;%gold码归一化goldseq=(1/sqrt(31))*goldseq;    x1 = randint(Pd, 1, M);    x2 = randint(Pd, 1, M);    x3 = randint(Pd, 1, M);    % psk调制    s1 = pskmod(x1, M); % s1:  目标信号    s2 = pskmod(x2, M); % s2:  干扰    s3 = pskmod(x3, M); % s3:  干扰    SIR = 0;            % SIR: 信扰比    s2 = s2./(10^(SIR/20));    s3 = s3./(10^(SIR/20));    %s=[s1 s2 s3];    % 扩频序列    c1 = goldseq(1, :)';    c2 = goldseq(2, :)';    c3 = goldseq(3, :)';    %t1=goldseq(1,:)'*s(1,:);        %ti=goldseq(1,:)'*s(i,:);    %t1=[t1;ti];    %s=t1;        % 扩频    kuo1= s1 * c1';    kuo2 = s2 * c2';    kuo3 = s3 * c3';    f1 = kuo1(1, :)'; % f1, fi as provisional variables    for i = 2:Pd        fi = kuo1(i, :)';        f1 = [f1; fi];    end    kuo1 = f1;        f1 = kuo2(1,:)';    for i = 2:Pd        fi = kuo2(i,:)';        f1 = [f1; fi];    end    kuo2 = f1;        f1 = kuo3(1, :)';    for i = 2:Pd        fi = kuo3(i,:)';        f1 = [f1; fi];    end    kuo3 = f1;    si = [kuo1, kuo2, kuo3];  % si: 信号矩阵        fc = 10^9;          % carrier frequency    wl = 3*10^8/fc;     % carrier wavelength    d  = wl/2;          % distance between neighbouring sensors is half the carrier wavelength    K  = 4;             % number of sensors    w  = [0.1 0.1 0.1 0.1 ]';    % inital weight    alpha = 0.9;        % forgetting factor    delta = 0.95;    u=0.001;    Q = eye(K,K);    theta = [10,-30,45];    k  = [0:K-1]';    A  = exp(-j*2*pi*d*k*sin(theta*pi/180)/wl);    %r = r1+A2*r2+A3*r3+A4*r4+A5*r5+A6*r6;    SNR = 0;    p  = 1;for ak = 1:50    % RLS Algorithm    for i = 1:500%改了次数        q = 1 + (i - 1) * N;        o = i * N;        temp1 = si(q:o, :); % 取一段信号temp1为31*3                r = A * temp1';%r为4*31        x = awgn(r, SNR, 'measured'); % 加信道x为4*31        %x(i) = x(i) * c1;        %s2 = s2 * c2;        %s3 = s3 * c3;        y = x * c1;%y为4*1        c = w' * y;        h = p * c;        g = h / (alpha + (c' * h));        p = 1 / alpha * (p - (g * h'));        t = x(:, 1);        Q = 1 / delta * (Q - (Q * t * t' * Q) ./ (delta + t' * Q * t));        e = Q * y - w * c;        e1= c -s1(i);        ti(i) = e1' * e1;         if  ti>10ti(i-1)                    w = w + e * g';        % end         % t=x(:,N);        %g=e(31);        %kn=P*t./(alpha+t'*P*t);        % P=1/alpha*(P-P*t*t'*P./(alpha+t'*P*t));        %w=w+kn*g;        %w=w+u*x*e';        %temp1=temp1';        %e1=y-temp1(1,:);%定义误差          % 计算误差的平方                single=A(:,1)*s1(i);%为4*1        %nois1=A(:,2)*s2(i);%为4*1        %nois2=A(:,3)*s3(i);%为4*1        noise=y-single;        n = w'*noise*noise'*w;        SINR(i)=(w'*single*single'*w)/n;    end        T(ak, :) = ti;endsum = zeros(1,500);for i = 1:50    sum = sum + T(i, :);endaverg = sum / 50;figure;semilogy([1:500], abs(averg), '-r');%gailecishu%legend('');xlabel('迭代次数'); ylabel('误差的平方');title(' RLS学习曲线(50次平均)');%grid on;%plot([1:N], abs(averg))figurefai = [-90:90];a = exp(-j * 2 * pi * d * k * sin(fai * pi / 180) / wl);f = w' * a;F = 10 * log10((abs(f) .^ 2));plot(fai, F)xlabel('空间角度'); ylabel('幅度(db)');title('方向图 '); figure;i=1:500;%gailecishuplot(i,10*log10(SINR));xlabel('迭代次数');ylabel('信干比SNIR(dB)');

⌨️ 快捷键说明

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