资源简介
快衰落matlab代码
......\bd.m
......\demodulation.m
......\minnorm.m
......\modulation.m
......\v_blast.m
......\说明.txt
代码片段和文件信息
% 论文仿真原型程序仿真四种(ZFZF-SICMMSEMMSE-SIC) Vblast接收机的检测性能,绘制误比特率~信噪比曲线。
% Zhaidewei 2007.4.18 (2007-5-20修正版)
% Email:zeal0502@yahoo.com.cn
% qq:402731924
% 发端初始化===============================================================
% 发射天线数tx接收天线数rx发射矩阵长度L(帧长)
tx=4;rx=4;L=10000;
Modulation=‘BPSK‘;
EbN0=[0:5:20];
B=30000;Ts=1/24300;
% 建立EbN0与SNR之间的换算关系
SNR=EbN0-10*log10(Ts*B);
% 信源A
A=randint(tx*L1);
% 经过BPSK调制的V-Blast发射矩阵X
X=zeros(txL);
for k=1:tx
X(k:)=(-1).^(A(k:tx:end)+1);
end
% 信道传输=================================================================
% 快衰落Rayleigh信道H
H=sqrt(1/2)*(randn(rxtxL)+i*randn(rxtxL));
% 均值为0方差为1的高斯白噪声n
n=sqrt(1/2)*(randn(rxL)+i*randn(rxL));
% 未叠加噪声的接收信号R
R=zeros(rxL);
for k=1:L
R(:k)=H(::k)*X(:k);
end
% 检测
%ZF========================================================================
disp(‘berz‘);
berz=[];
% 在不同的信噪比下计算ZF接收机误比特率berz
for m=SNR
m
% 每个子信道的平均信噪比为snr的接受信号R_noised
snr=10^(m/10);
R_noised=R+sqrt(1/snr)*n;
x=[];
a=zeros(tx*L1);
% 逐时隙对接收符号矢量进行检测,合并得到一帧发射矩阵X的估计x
for t=1:L
r=R_noised(:t);
% 迫零矩阵G
G=pinv(H(::t));
y=G*r;
xtemp=(y>=0)-(y<0)+0;
x=[xxtemp];
end
% 从x求A的估计a
for k=1:tx
a(k:tx:end)=(x(k:tx:end)+1)/2;
end
% 比较A和a计算错值率temp_ber
[errbittemp_ber]=biterr(Aa);
berz=[berztemp_ber];
end
figure
semilogy(EbN0berz‘o- b‘)
% ZF-SIC(ordered)==========================================================
disp(‘ZF-SIC‘);
berzs=[];
for m=SNR
m
snr=10^(m/10);
R_noised=R+sqrt(1/snr)*n;
x=[];
a=zeros(tx*L1);
for t=1:L
r=R_noised(:t);
HH=H(::t);
G=pinv(HH);
S=[1:tx];% S表示一个时隙内还未检测的符号的序号的集合
xtemp=zeros(tx1);
% 逐发射天线进行检测
for k=1:tx
% G的在序号集合S的非零元素集合内范数最小的行是wki,它是G的第ki行
[wkiki]=minnorm(GS);
% 已经检测过的序号清零
S(ki)=0;
% 判决统计量y
y=wki*r;
% BPSK判决
xtemp(ki)=1*(y>=0)-1*(y<0)+0;
% SIC串行干扰抵消
r=r-xtemp(ki)*H(:kit);
% 将已经检测的信号对应的信道矩阵的列清零
HH(:ki)=zeros(rx1);
G=pinv(HH);
end
x=[xxtemp];
end
for k=1:tx
a(k:tx:end)=(x(k:tx:end)+1)/2;
end
[errbittemp_ber]=biterr(Aa);
berzs=[berzstemp_ber];
end
hold on
semilogy(EbN0berzs‘o- r‘)
% MMSE====================================================================
disp(‘MMSE‘)
berm=[];
for m=SNR
m
snr=10^(m/10);
R_noised=R+sqrt(1/snr)*n;
x=[];
a=zeros(tx*L1);
for t=1:L
r=R_noised(:t);
HH=H(::t);
xtemp=zeros(tx1);
w=inv(HH‘*HH+(1/snr)*eye(tx))*HH‘;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2693 2004-10-03 22:04 MYMIMO\demodulation.m
文件 1237 2004-10-03 22:04 MYMIMO\modulation.m
文件 2815 2006-11-21 15:44 MYMIMO\v_blast.m
文件 4573 2007-05-20 12:57 MYMIMO\bd.m
文件 655 2007-05-06 09:18 MYMIMO\minnorm.m
文件 699 2007-05-20 00:36 MYMIMO\说明.txt
目录 0 2006-11-21 16:49 MYMIMO
----------- --------- ---------- ----- ----
12890 8
- 上一篇:arithintdecod.m
- 下一篇:人眼定位及跟踪
评论
共有 条评论