📄 simo1_2_trl.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 + -