• 大小: 7KB
    文件类型: .m
    金币: 2
    下载: 2 次
    发布日期: 2021-07-02
  • 语言: Matlab
  • 标签: Alamouti  STBC  

资源简介

对不同编码块情况下误码率情况进行了对比,接收机处于非理想状态与处于理想状态的情况对比,不同调制方式下误码率与误帧率的情况分析

资源截图

代码片段和文件信息

function BER4m = ostbc4m(M frLen numPackets EbNo)
%OSTBC4M  Orthogonal space-time block coding for 4xM antenna configurations.
%
%   BER4M = OSTBC4M(M FRLEN NUMPACKETS EBNOVEC) computes the bit-error rate 
%   estimates via simulation for an orthogonal space-time block coded 
% configuration using four transmit antennas and M receive antennas where 
% the frame length number of packets simulated and the Eb/No range of values 
% are given by FRLEN NUMPACKETS and EBNOVEC parameters respectively.
%
%   The simulation uses a half-rate orthogonal STBC encoding scheme with QPSK 
%   modulated symbols to achieve a 1 bit/sec/Hz throughput for the channel. 
%   Appropriate combining is performed at the receiver to account for the 
%   multiple transmitter antennas.
%
%   Suggested parameter values:
%       M = 1 to 4; FRLEN = 100; NUMPACKETS = 1000; EBNOVEC = 0:2:20;
%
%   Example:
%       ber42 = ostbc4m(2 100 1000 0:2:20);
%
%   See also MRC1M OSTBC2M.

%   References:
%   [1] S. M. Alamouti “A simple transmit diversity technique for wireless 
%       communications“ IEEE Journal on Selected Areas in Communications 
%       Vol. 16 No. 8 Oct. 1998 pp. 1451-1458.
%
%   [2] V. Tarokh H. Jafarkhami and A.R. Calderbank “Space-time block codes
%       from orthogonal designs“ IEEE Transactions on Information Theory 
%       Vol. 45 No. 5 Jul. 1999 pp. 1456-1467.
%
%   [3] V. Tarokh H. Jafarkhami and A.R. Calderbank “Space-time block codes
%       for wireless communications: Performance results“ IEEE Journal on 
%       Selected Areas in Communications Vol. 17  No. 3 Mar. 1999 
%       pp. 451-460.

%   Copyright 2006 The MathWorks Inc.
%   $Revision: 1.1.6.1 $ $Date: 2006/12/27 20:28:37 $

%% Simulation parameters
N = 4;              % Number of transmit antennas
rate = 0.5; inc = N/rate; repFactor = 8;
 
% Create QPSK mod-demod objects
numBits = 2; 
P = 4;  % modulation order
qpskmod = modem.pskmod(‘M‘ P ‘SymbolOrder‘ ‘Gray‘ ‘InputType‘ ‘Integer‘);
qpskdemod = modem.pskdemod(qpskmod);

%% Pre-allocate variables for speed
txEnc = zeros(frLen/rate N); r = zeros(frLen/rate M);
H  = zeros(frLen/rate N M);
z = zeros(frLen M); z1 = zeros(frLen/N M); z2 = z1; z3 = z1; z4 = z1;
error4m = zeros(1 numPackets); error4mb = error4m;
SER4m = zeros(1 length(EbNo)); BER4m = SER4m;

h = waitbar(0 ‘Percentage Completed‘);
set(h ‘name‘ ‘Please wait...‘);
wb = 100/length(EbNo);

%% Loop over EbNo points
for idx = 1:length(EbNo)
    % Loop over the number of packets
    for packetIdx = 1:numPackets
        data = randint(frLen 1 P);         % data vector per user/channel
        tx = modulate(qpskmod data);        % QPSK modulation

        % Space-Time Block Encoder - G4 1/2 rate
        %   G4Half = [s1 s2 s3 s4;-s2 s1 -s4 s3;-s3 s4 s1 -s2;-s4 -s3 s2 s1];
        %   G4 = [G4Half; conj(G4Half)];
        s1 = tx(1:N:end); s2 = tx(2:N:end); s3 = tx(3:

评论

共有 条评论