• 大小: 5KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Matlab
  • 标签: matlab  VBlast  

资源简介

本程序是对V-BLAST系统及其检测算法的仿真,可采用BPSK,QPSK,16QAM,64QAM调制。检测算法为ML,MMSE,ZF,以及采用迫零的连续干扰消除检测算法。

资源截图

代码片段和文件信息

function output_frame = demodulation(input_modu index)
% demodulation for IEEE802.11a
% Input:    input_modu complex values representing constellation points
%           index
% Output:   output_frame output bit stream (data unit is one bit)

% In this version increase the quatilization levels into 8.
% note: Matlab index starts from 1
QAM_input_I = real(input_modu);
QAM_input_Q = imag(input_modu);
output_frame = zeros(1length(input_modu)*index);
switch index
case 1
    BPSK_Demodu_I = [0 1];      %f(m)=(m+1)/2 + 1 so I=-1 ---> 1 I=1 ---> 2
    idx = find(QAM_input_I>1);
    QAM_input_I(idx) = 1;
    idx = find(QAM_input_I<-1);
    QAM_input_I(idx) = -1;
    output_frame = BPSK_Demodu_I(round((QAM_input_I+1)/2) + 1);
case 2
    QPSK_Demodu_IQ = [0 1];     %f(m)=(m+1)/2 + 1 so I=-1 ---> 1 I=1 ---> 2
    idx = find(QAM_input_I>1);
    QAM_input_I(idx) = 1;
    idx = find(QAM_input_I<-1);
    QAM_input_I(idx) = -1;
    idx = find(QAM_input_Q>1);
    QAM_input_Q(idx) = 1;
    idx = find(QAM_input_Q<-1);
    QAM_input_Q(idx) = -1;
    output_frame(1:2:end) = QPSK_Demodu_IQ(round((QAM_input_I+1)/2) + 1);
    output_frame(2:2:end) = QPSK_Demodu_IQ(round((QAM_input_Q+1)/2) + 1);
case 4
    QAM_16_Demodu_IQ = [0 1 3 2];   %f(m)=(m+3)/2 + 1 so I=-3 ---> 1 I=1 ---> 3
    idx = find(QAM_input_I>3);
    QAM_input_I(idx) = 3;
    idx = find(QAM_input_I<-3);
    QAM_input_I(idx) = -3;
    idx = find(QAM_input_Q>3);
    QAM_input_Q(idx) = 3;
    idx = find(QAM_input_Q<-3);
    QAM_input_Q(idx) = -3;
    tmp = round((QAM_input_I+3)/2) + 1;
    output_frame(1:4:end) = bitget(QAM_16_Demodu_IQ(tmp)2);
    output_frame(2:4:end) = bitget(QAM_16_Demodu_IQ(tmp)1);
    tmp = round((QAM_input_Q+3)/2) + 1;
    output_frame(3:4:end) = bitget(QAM_16_Demodu_IQ(tmp)2);
    output_frame(4:4:end) = bitget(QAM_16_Demodu_IQ(tmp)1);
case 6
    QAM_64_Demodu_IQ = [0 1 3 2 6 7 5 4];   %f(m)=(m+7)/2 + 1 so I=-7 ---> 1 I=1 ---> 5
    idx = find(QAM_input_I>7);
    QAM_input_I(idx) = 7;
    idx = find(QAM_input_I<-7);
    QAM_input_I(idx) = -7;
    idx = find(QAM_input_Q>7);
    QAM_input_Q(idx) = 7;
    idx = find(QAM_input_Q<-7);
    QAM_input_Q(idx) = -7;
    tmp = round((QAM_input_I+7)/2) + 1;
    output_frame(1:6:end) = bitget(QAM_64_Demodu_IQ(tmp)3);
    output_frame(2:6:end) = bitget(QAM_64_Demodu_IQ(tmp)2);
    output_frame(3:6:end) = bitget(QAM_64_Demodu_IQ(tmp)1);
    tmp = round((QAM_input_Q+7)/2) + 1;
    output_frame(4:6:end) = bitget(QAM_64_Demodu_IQ(tmp)3);
    output_frame(5:6:end) = bitget(QAM_64_Demodu_IQ(tmp)2);
    output_frame(6:6:end) = bitget(QAM_64_Demodu_IQ(tmp)1);
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2693  2004-10-03 22:04  V-BLAST程序\demodulation.m

     文件       1237  2004-10-03 22:04  V-BLAST程序\modulation.m

     文件        134  2007-04-20 21:53  V-BLAST程序\read me.txt

     文件       3714  2007-04-20 21:44  V-BLAST程序\vblast.m

     文件       1524  2007-04-20 20:58  V-BLAST程序\vblast1.m

     文件       3015  2007-04-20 21:15  V-BLAST程序\vblast3.m

     文件       1590  2007-04-20 21:39  V-BLAST程序\vblast4.m

     目录          0  2007-04-20 21:53  V-BLAST程序

----------- ---------  ---------- -----  ----

                13907                    8


评论

共有 条评论