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

📄 simomrc.m

📁 with SIMO, this code is used by MRC receiver.
💻 M
字号:
% Receiver diversity - MRC
clear
clc
packets=4000;   frame=130;
BIT=2; % modulation 1/2/3/4 for BPSK/QPSK/16QAM/64QAM
NTx=1;  NRx=2;
EbN0=[0:2:20];  sq_NTx=sqrt(NTx);   sq2=sqrt(2);
for i_SNR=1:length(EbN0)
    SNR=EbN0(i_SNR);    sigma=0.5/(10^(SNR/10));    sq_sigma=sqrt(sigma);
    for p_count=1:packets
        symbol_data=randint(frame*BIT,NTx);
        [temp s P]=modulator(symbol_data.',BIT);
        X=temp.';   frlg=length(X); x0=X;
        H=(randn(frlg,NRx)+j*randn(frlg,NRx))/sq2;
        Habs=sum(abs(H).^2,2);  z1=0;
        for i=1:NRx
            r(:,i)=sum(H(:,i).*x0,2)/sq_NTx+sq_sigma*(randn(frlg,1)+j*randn(frlg,1));
            z1=z1+r(:,i).*conj(H(:,i));
        end
        for m=1:P
            d1(:,m)=abs(sum(z1,2)-s(m)).^2+(-1+sum(Habs,2))*abs(s(m))^2;
        end
        [y1,i1]=min((d1),[],2); s1d=s(i1).';    Xd=[s1d];
        temp1=X>0;  temp2=Xd>0;
        error(p_count)=sum(sum(temp1~=temp2));
    end
    BER(i_SNR)=sum(error)/(packets*frame*BIT);
end
figure(1), semilogy(EbN0,BER,'s'), axis([EbN0([1 end]) 1e-6 1e0]); grid on; hold on;
xlabel('Eb/No(dB)');    ylabel('BER');
semilogy(EbN0,BER,'b'), axis([EbN0([1 end]) 1e-6 1e0]); hold on;

⌨️ 快捷键说明

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