📄 mmse_dec.m
字号:
%本程序用于对单用户检测,传统多用户检测,解相关多用户检测
%的性能进行比较
%本程序只考虑到噪声和干扰的抵消,不针对编解码的问题
%%本例针对同步cdma系统
%仅考虑了远近效应和功率控制,信道考虑了AWGN和正弦干扰的影响
%异步和多径没有考虑
%扩频码是长度为31的gold序列
echo on
Lc=31;%用于对符号扩频的长度
A2=7;%正弦干扰信号的幅度
w0=1;
%
%gold 序列,参考<<MATLAB与通信仿真>>
%也可以考虑使用一个函数来产生
% PN1=[0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0] %sum()=7
PN1=[1 -1 -1 -1 1 1 1 1 -1 1 1 1 1 -1 -1 1 1 -1 1 1 -1 1 -1 -1 -1 -1 1 1 1 1 1];
% PN2=[0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1]%sum()=-1
PN2=[1 -1 1 1 1 -1 -1 -1 1 -1 1 -1 1 -1 -1 -1 1 -1 -1 1 1 1 1 1 -1 -1 1 1 -1 -1 -1];
% PN3=[ 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 ] %sum()=7
PN3=[-1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 1 -1 1 -1 -1 -1 -1 -1 1 1 1 1 1 -1 1 1 1];
% PN4=[0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1]%sum()=-1
PN4=[1 1 -1 -1 1 -1 1 1 1 1 -1 1 -1 1 -1 1 1 -1 -1 -1 1 1 -1 1 1 -1 -1 -1 -1 -1 -1];
%
%correlatting index
R12=sum(PN1.*PN2)/Lc;
R13=sum(PN1.*PN3)/Lc;
R14=sum(PN1.*PN4)/Lc;
R23=sum(PN2.*PN3)/Lc;
R24=sum(PN2.*PN4)/Lc;
R34=sum(PN3.*PN4)/Lc;
%
% correlating matrix
R=[1 R12 R13 R14;R12 1 R23 R24;R13 R23 1 R34;R14 R24 R34 1];
%
%the inverse matrix of R
%S=inv(R);
%
%在不同的信噪比条件下误码测试
snrindb=-4:2:8;
for i=1:length(snrindb),
[err_prbmul(i),err_prbmuldecorr(i),err_mmse(i)]=ss_pemmse(snrindb(i),R,PN1,PN2,PN3,PN4);
end;
%
%画误码率曲线
semilogy(snrindb,err_prbmul,'-b');%传统多用户的误码率曲线
hold on
semilogy(snrindb,err_prbmuldecorr,'-r');%解相关多用户的误码率曲线
hold on
semilogy(snrindb,err_mmse,'-g');%mmse多用户的误码率曲线
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -