• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Matlab
  • 标签: qpsk  stbc  matlab  

资源简介

该matlab代码为一个2发1收和2发2收的stbc编码仿真,采用的是qpsk调制。

资源截图

代码片段和文件信息

%% mimo stbc qpsk 
%该程序为进行2发1收和2发2收的的性能仿真输出误码率和信噪比曲线
%用的是复正交编码,编码速率为1.


clc;
clear all;
Nt=2;%发射天线数
Num_sym=500; %要发射的符号数
EN=20;  %最大信噪比
sym=randint(1Num_sym4);        %产生要发射的符号0123
s_qpsk=pskmod(sym4);    %qpsk调制
sigPower=sum(abs(s_qpsk(:)).^2)/Num_sym;  %信号功率
for Nr=1:2   %接收天线数
    for snr=1:EN   %信噪比1到20dB
        for cc=1:100   %每个信噪比下进行100次仿真取误码率的平均
            sigma=10^(snr/10);
            noisePower=sigPower/sigma; %噪声功率
            channel= sqrt(1/2)*(randn(2Nr)+j*randn(2Nr));   %产生个瑞利信道
            for i=1:2:Num_sym            %stbc编码,复正交编码
                count=0;  %误码数
                Stbc=[s_qpsk(i) s_qpsk(i+1);-conj(s_qpsk(i+1)) conj(s_qpsk(i))];
                noise=sqrt(noisePower)*(randn(2Nr)+j*randn(2Nr));  %高斯白噪声
                r=Stbc*channel+noise;   %接收信号
                xc1=[00];xc2=[00];
                if Nr==1
                    xc1(Nr)=conj(channel(1))*r(1)+channel(2)*conj(r(2));%1个接收天线用于检验的组合信号
                    xc2(Nr)=conj(channel(2))*r(1)-channel(1)*conj(r(2));
                elseif Nr==2
                    for k=1:Nr
                         
                         xc1(Nr)=xc1

评论

共有 条评论