📄 convolencoder.m
字号:
% function seqcoder = QPSKcoder()
%--------------------------------------------------------------------------------------------------------------%%%
%--------------------------------------------------------------------------------------------------------------%%%
clc;
clear;
clear all;
LLL=255;%交织长度。
errorLEN=10;
%--------------------------------------------------------------------------
rand('state',10);
msg0 = round(rand(1,255)); %生成输入bit序列。
%--------------------------------------------------------------------------
%YesorNo=fopen('f:\原始随机数据\noise.src','r'); %该段用于生成湖试数据。
%if YesorNo<0
%error('不能打开原始数据文件');
%else
%msg00=fread(YesorNo,'uint8');
%fclose(YesorNo);
%end
%msg0=seq2bit(msg00,8)';
%--------------------------------------------------------------------------
len_msg0 = length(msg0);
i = fix(len_msg0/LLL);
if i*LLL<len_msg0
for t=len_msg0+1:(i+1)*LLL
msg0(t)=0;
end
i=i+1;
end
%--------------------------------------------------------------------------
for j=1:i %把输入bit序列变成若干个行向量。
msg(j,:) = msg0(LLL*(j-1)+1:LLL*j);
end
save bitseq msg;
rand('state',sum(100*clock));
for k=1:i
V(k,:) = conv(msg(k,:),LLL); %生成递归系统卷积码(Vt,0 Vt,2)。每一次调用convenc()卷积码都是从全零状态开始的。
V(k,:) = Interleave(V(k,:),LLL);%外交织。
B=round(rand(1,errorLEN)*(2*LLL-1))+1;
for t=1:errorLEN
V(k,B(t))=xor(V(k,B(t)),1);
end
end
save ConvolCoded V;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp([blanks(10),'编码结束!']);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -