分集接收系统模型框图

用matlab对分集接收系统进行仿真,需要一个分集接收系统的系统模型框图,代码如下


clear all;%发送部分代码
Numusers = 1;
Nc = 16;    %扩频因子
ISI_Length = 1;  %码元长度
EbN0db = 2;      %信噪比
Tlen = 20;       %数据长度
 
%我们假设出的每径功率因子
power_unitary_factor1 = sqrt( 6/9 );
power_unitary_factor2 = sqrt( 2/9 );
power_unitary_factor3 = sqrt( 1/9 );
s_initial = randsrc( 1, Tlen );     %产生数据源1或-1
figure(1)
stairs(s_initial,'Color','r');
ylim([-1.5,1.5]);
title('信号源序列','Color','b')
xlabel('数据长度')
ylabel('幅度')
%根据扩频因子等于16产生walsh矩阵
wal2 = [ 1 1; 1 -1 ];
wal4 = [wal2 wal2; wal2 wal2*(-1)];
wal8 = [wal4 wal4; wal4 wal4*(-1)];
wal16 = [wal8 wal8; wal8 wal8*(-1)];
%扩频
s_spread = zeros( Numusers, Tlen*Nc );
ray1 = zeros( Numusers, 2*Tlen*Nc );
ray2 = zeros( Numusers, 2*Tlen*Nc );
ray3 = zeros( Numusers, 2*Tlen*Nc );

for i = 1:Numusers
    x0 = s_initial( i,: ).'*wal16( 8,: );
    x1 = x0.';
    s_spread( i,: ) = ( x1(:) ).';
end
%将扩频后的输出重复,然后进行延迟
ray1( 1:2:2*Tlen*Nc - 1 ) = s_spread( 1:Tlen*Nc );
ray1( 2:2:2*Tlen*Nc ) = ray1( 1:2:2*Tlen*Nc - 1 );
 
%产生第二,第三径信号
ray2( ISI_Length + 1:2*Tlen*Nc ) = ray1( 1:2*Tlen*Nc - ISI_Length );
ray2( 2*ISI_Length + 1:2*Tlen*Nc ) = ray1( 1:2*Tlen*Nc - 2*ISI_Length );
 
for nEN = 1:length( EbN0db )
    en = 10^( EbN0db(nEN)/10 );     %信噪比转换
    sigma = sqrt( 32/(2*en) );
    %收到信号
    demp = power_unitary_factor1*ray1+...
           power_unitary_factor2*ray2+...
           power_unitary_factor3*ray3+...
           ( rand( 1,2*Tlen*Nc )+randn( 1,2*Tlen*Nc )*i )*sigma;
    dt = reshape( demp,32,Tlen )';
    %将walsh码重复
    wal16_d(1:2:31) = wal16(8,1:16);
    wal16_d(2:2:32) = wal16(8,1:16);
    %解扩后第一径输出
    rdata1 = dt*wal16_d(1,:).';
    %将walsh码延迟
    wal16_delay1(1,2:32) = wal16_d(1,1:31);
    %解扩后第二径输出
    rdata2 = dt*wal16_delay1(1,:).';
    %将walsh码延迟
    wal16_delay2(1,3:32) = wal16_d(1,1:30);
    wal16_delay2(1,1:2) = wal16_d(1,31:32);
    %解扩后第三径输出
    rdata3 = dt*wal16_delay2(1,:).';
    
    p1 = rdata1'*rdata1;
    p2 = rdata2'*rdata2;
    p3 = rdata3'*rdata3;
    p = p1 + p2 + p3;
    u1 = p1/p;
    u2 = p2/p;
    u3 = p3/p;
    
    %最大比合并
    rd_m1 = real( rdata1*u1+rdata2*u2+rdata3*u3);
    %等增益合并
    rd_m2 = (real(rdata1+rdata2+rdata3))/3;
    %选择式合并
    u = [u1,u2,u3];
    maxu = max(u);
    if(maxu==u1)
        rd_m3 = real(rdata1);
    else
        if(maxu==u2)
            rd_m3 = real(rdata2);
        else rd_m3 = real(rdata3);
        end
    end
 
    %输出数据
    r_Data1 = sign(rd_m1)';
    r_Data2 = sign(rd_m2)';
    r_Data3 = sign(rd_m3)';
    
end
figure(2)
subplot(3,1,1)
stairs(r_Data1,'Color','r');
ylim([-1.5,1.5]);
title('最大比合并方式','Color','b')
xlabel('码元长度')
ylabel('幅度')
subplot(3,1,2)
stairs(r_Data2,'Color','r');
ylim([-1.5,1.5]);
title('等增益合并','Color','b')
xlabel('码元长度')
ylabel('幅度')
subplot(3,1,3)
stairs(r_Data3,'Color','r');
ylim([-1.5,1.5]);
title('选择式合并','Color','b')
xlabel('码元长度')
ylabel('幅度')
figure(3)
subplot(3,1,1)
stairs(s_initial,'Color','r');
ylim([-1.5,1.5]);
hold on
stairs(r_Data1,'Color','g');
ylim([-1.5,1.5]);
title('最大比值合并和初始序列比较','Color','b')
xlabel('码元长度')
ylabel('幅度')
ylim([-1.5,1.5]);
subplot(3,1,2)
stairs(s_initial,'Color','r');
ylim([-1.5,1.5]);
hold on
stairs(r_Data2,'Color','g');
ylim([-1.5,1.5]);
title('等增益合并和初始序列比较','Color','b')
xlabel('码元长度')
ylabel('幅度')
ylim([-1.5,1.5]);
subplot(3,1,3)
stairs(s_initial,'Color','r');
ylim([-1.5,1.5]);
hold on
stairs(r_Data3,'Color','g');
ylim([-1.5,1.5]);
title('选择式合并和初始序列比较','Color','b')
xlabel('码元长度')
ylabel('幅度')
ylim([-1.5,1.5]);

引用chatGPT作答,分集接收系统通常是为了减小多径信道带来的影响,提高接收机的性能。根据代码所示,该分集接收系统采用了三径信号,并进行了最大比合并、等增益合并和选择式合并三种接收方式。系统模型框图如下所示:

img

其中,S表示发送信号,I和Q表示接收到的正交分量,PSK表示发送端的相位偏移调制,Demod表示接收端的解调器,SP表示扩频器,MF表示匹配滤波器,Maximal Ratio Combining是最大比合并器,Output是输出信号。w1、w2、w3是信号经过的三条不同路径,Delay Line是延迟线。