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

📄 simo1_2_trl.m

📁 Bit error probability curve for QPSK mimo 1*2, Bit error probability curve for QPSK mimo 1*4
💻 M
字号:
clc;
clear all; 
noofdata=64;
noofblock=1; 
nooftaps=64;
qpskdata=complex(randsrc(noofblock,noofdata),randsrc(noofblock,noofdata));
s1=qpskdata(1,:);
qpskdata=reshape(qpskdata,noofdata*noofblock,1).';
       for i=1:noofdata*noofblock
               if (and(real(qpskdata(i))>0,imag(qpskdata(i)>0)))
                       data1(i)=0;
               elseif(and(real(qpskdata(i))<0,imag(qpskdata(i))>0))
                      data1(i)=1;
               elseif(and(real(qpskdata(i))<0,imag(qpskdata(i))<0))
                      data1(i)=2;
               elseif(and(real(qpskdata(i))>0,imag(qpskdata(i))<0))
                      data1(i)=3;
               end
          end
data1
s1_sigpwr=sum(abs(s1).^2)/noofdata;
for snrr=1:20
       count(snrr)=0;
       noofruns=10;
           for r=1:noofruns
                     h1=complex(0.707*randn(nooftaps,1),0.707*randn(nooftaps,1));
                     h2=complex(0.707*randn(nooftaps,1),0.707*randn(nooftaps,1));
                     convolution_time1_ch1=(h1.'.*s1); 
                     convolution_time1_ch2=(h2.'.*s1);
                     noise_pow_time1=s1_sigpwr*10^(-snrr/10);  
                     noise_time1_ch1=sqrt(noise_pow_time1)*0.707*complex(randn(noofdata,1),randn(noofdata,1)); 
                     noise_pow_time1=s1_sigpwr*10^(-snrr/10);  
                     noise_time1_ch2=sqrt(noise_pow_time1)*0.707*complex(randn(noofdata,1),randn(noofdata,1)); 
                     rxx_1=convolution_time1_ch1+noise_time1_ch1.';
                     rxx_2=convolution_time1_ch2+noise_time1_ch2.';
                     rx_1=conj(h1.').*rxx_1+conj(h2.').*rxx_2;
                     a= (abs(h1).^2 + abs(h2).^2).';
                     rx_data=(rx_1)./a;
                     data2=reshape(rx_data,1,noofdata);
                        for i=1:noofdata*noofblock
                           if (and(real(data2(i))>0,imag(data2(i))>0))
                                  data2(i)=0;
                           elseif(and(real(data2(i))<0,imag(data2(i))>0))
                                  data2(i)=1;
                           elseif(and(real(data2(i))<0,imag(data2(i))<0))
                                  data2(i)=2;
                           elseif(and(real(data2(i))>0,imag(data2(i))<0))
                                  data2(i)=3;
                           end
                        end   
                     data2;
                     error=data1-data2;
                     for i=1:noofdata*noofblock
                          if error(i)==0
                             count(snrr)=count(snrr);
                          else 
                             count(snrr)=count(snrr)+1;
                          end
                    end
     %snrratio=sigpwr/noisepwr;
          end
     result(snrr)=count(snrr)/(noofdata*2*noofruns)
end
 snrr=[1:20];   
 semilogy(snrr,result,'bs-','LineWidth',2);
 axis([0 25 10^-4 1])
 xlabel('SNR, dB')
 ylabel('Bit Error Rate')
 title('Bit error probability curve for QPSK  mimo 1*2')

⌨️ 快捷键说明

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