bpsk_awgn.m
来自「convolution coding program using viterab」· M 代码 · 共 46 行
M
46 行
function data_dec = bpsk_awgn(data_pun, hard_soft, snr)
%bpsk modulation, awgn and 3 bit soft decision block
%data_pun is the data after puncturing
l = length(data_pun);
if hard_soft == 0 %hard decision
for i = 1 : l
if data_pun(i) == 0
temp1(i) = -1;
else temp1(i) = 1;
end
end
temp2 = awgn(temp1, snr, 0, 1234);
for i = 1 : l
if temp2(i) <= 0
data_dec(i) = 0 ;
else data_dec(i) = 1;
end
end
elseif hard_soft == 1 % 3 bit soft decision
for i = 1 : l
if data_pun(i) == 0
temp1(i) = -1;
else temp1(i) = 1;
end
end
temp2 = awgn(temp1, snr, 0);
for i = 1 : l
if temp2(i) <= -0.8571
data_dec(i) = 0;
elseif temp2(i) <= -0.5714
data_dec(i) = 1;
elseif temp2(i) <= -0.2857
data_dec(i) = 2;
elseif temp2(i) <= 0
data_dec(i) = 3;
elseif temp2(i) <= 0.2857
data_dec(i) = 4;
elseif temp2(i) <= 0.5714
data_dec(i) = 5;
elseif temp2(i) <= 0.8571
data_dec(i) = 6;
elseif temp2(i) > 0.8571
data_dec(i) = 7;
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?