📄 hkonwexperiment.m
字号:
close all
clear all
randn('state',sum(100*clock))
A=1;
ES=A*A;
Eb=ES;
minTestLength=100000;
maxTestlength=100000000;
index=1;
% bpsk modulate
matrix0=(1/sqrt(6))*ones(6,1);
smatrix=diag(exp([i*2*pi/64 i*2*pi*18/64 i*2*pi*23/64 i*2*pi*39/64 i*2*pi*46/64 i*2*pi*57/64]));
% matrix2=matrix1';
for EbN0=10:5:20
N0=10^(-EbN0/10)
noiseRoot=sqrt(N0/2);
errorCount=0;
testCount=0;
length=0;
for kk=1:100000
m=10;
% Generate the Rayleigh fading channel
h0=(randn(1)+j*randn(1))*sqrt(0.5);
% Noise generate
noise=(randn(6,1)+j*randn(6,1))*noiseRoot;
% Soure matrix
% matrix=ones(8,1);
% Generate Unitray Matrix
% S_matrix=diag(exp([i*pi*2/256 i*pi*2*5/256 i*pi*2*16/256 i*pi*2*36/256 i*pi*2*57/256 i*pi*2*105/256 i*pi*2*151/256 i*pi*2*253/256]));
% 8 rows 1 columns
% Transmit source matrix
src=randn(1,6)>0;
number=[32 16 8 4 2 1]*src';
% x=A*(2*src-1);
% max_matrix=zeros(1,4)
% Transmit matrix
Tmatrix=sqrt(6)*smatrix^number*matrix0;
Recmatrix=zeros(6,1);
% Receive matrix
mmm=sqrt(10^(EbN0/10)*3);
Recematrix=mmm*h0*Tmatrix+noise;
% Decision
index1=1;
for ii=0:63
TR(index1)=trace((Recematrix-mmm*(smatrix^ii*matrix0)*h0)*( (Recematrix-mmm*(smatrix^ii*matrix0)*h0)'));
% max angle
index1=index1+1;
end
[x,length]=min(TR);
dst=de2bi(length-1,6,'left-msb');
error=xor(src,dst);
errorCount=errorCount+sum(error);
testCount=testCount+6;
end
EBN0(index)=EbN0
tempBER(index)=errorCount/testCount
index=index+1;
end
%Draw curves for the results, Es/N0
% figure(2)
% semilogy(myEsN0,myBER,'+-');
% xlabel('Es/N0 in dB');
% ylabel('bit error rate');
% grid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -