首页 > 编程语言 >基于OFDM的STBC算法仿真

基于OFDM的STBC算法仿真

时间:2022-12-01 22:45:43浏览次数:38  
标签:仿真 Cons randn OFDM STBC h1 h2 SNR conj

一、部分程序

function Pb=stbc(SNR_dB)
%------------------------------------------------------------------------
%本程序是对两发一收情况下采用空时分组码的性能分析
%星座映射采用的是BPSK映射
% SNR_dB 接收天线上的接收信噪比,在仿真的过程中把接收信号的功率归一化为1
% Pb是误比特率
%-------------------------------------------------------------------------

SNR=10^(SNR_dB/10);
Cons=sqrt(1/2)*[1 -1]; % BPSK星座
E=1; %接收端的信号功率
No=E/(SNR);%高斯白噪声的功率谱密度
Frame=100000;
ErrorNum=0;
for i=1:1:Frame
x1=Cons((rand(1)>=1/2)+1); % 随机产生发送数据
x2=Cons((rand(1)>=1/2)+1);
X=[x1 x2 ;-conj(x2) conj(x1)]; % 进行空时编码
h1=sqrt(1/2)*(randn(1)+j*randn(1)); % 产生信道 两个发送天线到接收天线的信道
h2=sqrt(1/2)*(randn(1)+j*randn(1));
H=[h1;h2];
N=sqrt(No/2)*(randn(2,1)+j*randn(2,1)); %接收端的噪声
R=X*H+N;
%-----------------------------------------------进行空时解码
A=h1*conj(h1)+h2*conj(h2);
X1=(conj(h1)*R(1)+h2*conj(R(2)))/A;
X2=(conj(h2)*R(1)-h1*conj(R(2)))/A;
if real(X1)>=0
X1=Cons(1);
else X1=Cons(2);
end
if real(X2)>=0
X2=Cons(1);
else X2=Cons(2);
end
ErrorNum=ErrorNum+(x1~=X1)+(x2~=X2);
end
Pb=ErrorNum/(Frame*2);
semilogy(1:5,SNR,'*b');grid on

二、仿真图

 

 

标签:仿真,Cons,randn,OFDM,STBC,h1,h2,SNR,conj
From: https://www.cnblogs.com/matlabfpga/p/16943028.html

相关文章