?? ber_ml23_bpsk.m
字號:
clc;
clear;
tic
Frame_Length=40; %The length of each frame
Frame_number=40; %The number of frames
Meantimes=20; %The times of mean
Testnum=15; %The times of test
error1=zeros(Meantimes,Testnum);
H=[0.5 0.25;
0.125 0.5;
0.25 0.125];
[N,B]=size(H);
h1=H(1,:);
h2=H(2,:);
h3=H(3,:);
for times=1:Meantimes,
snr_in_db=0;
for testcount=1:Testnum,
snr_in_db=2*(testcount-1);
SNR=10^(snr_in_db/10);
for Frame_count=1:Frame_number
%*************************************************************************************%
% 產生高斯噪聲 %
%*************************************************************************************%
L=Frame_Length;
noise1=randn(1, L/2)/(sqrt(2*SNR));
noise2=randn(1, L/2)/(sqrt(2*SNR));
noise3=randn(1, L/2)/(sqrt(2*SNR));
%*************************************************************************************%
% 編碼算法 %
%*************************************************************************************%
input_bits=randint(1,Frame_Length);
% BPSK調制
BPSK = [-1 1]; % refer to Table82 on page21 of IEEE802.11a
input_bits1 = BPSK(input_bits+1);
send=reshape(input_bits1,B,L/B);
%接收信號
R1=h1*send+noise1;
R2=h2*send+noise2;
R3=h2*send+noise3;
% R1=h1*send;
% R2=h2*send;
%*************************************************************************************%
% 接收端解碼算法 %
%*************************************************************************************%
% ML譯碼
output_bits=decode_ML23_BPSK(H,L/B,R1,R2,R3);
%*************************************************************************************%
% 誤碼率統計 %
%*************************************************************************************%
errornumber1=output_bits-input_bits;
for q=1:Frame_Length,
if errornumber1(1,q)~=0
error1(times,testcount)=error1(times,testcount)+1;
end
end
end
end
end
ber=mean(error1)/(Frame_Length*Frame_number);
horiaxis=[0:2:2*(Testnum-1)];
semilogy(horiaxis,ber,'*-');
xlabel('SNR(dB)');
ylabel('Bit Error Rate');
title('ML23-BPSK');
grid;
hold on;
% ber2=mean(error2)/(Frame_Length*Frame_number);
% horiaxis=[0:2:2*(Testnum-1)];
% semilogy(horiaxis,ber2,'o-');
toc
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -