⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp0201_convlenc.m

📁 关于MB-OFDM的最新程序 包括卷积 凿孔交织 等
💻 M
字号:
%Convolutional Encoder ; input=1 bit -> output=2 bits with 3 memory elements, Code Rate=1/2
function [encoded_sequence]=cp0201_convlenc(message)


%TEST MESSAGES
%message=[1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0];%prb 0-1
% message=[0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0];
% message=[1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0];%prb 0-1
% message=[0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0];
% message=[1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0];%prb 0-1
% message=[0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 0 0];
% message=[1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0];%prb 0-1
% message=[0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 0];
% message=[1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0];%prb 0-1
% message=[1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0];%prb 0-1
% message=[0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0];
% message=[1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0];%prb 0-1
% message=[1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0];%prb 0-1
% message=[0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0];
% message=[1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0];%prb 0-1
numbits=1024;
[bits]=cp0201_bits(numbits);
message=bits;
enco_mem=[0 0 0 0 0 0 0];   %# of memory elements=3
encoded_sequence=zeros(1,(length(message))*3);

enco_mem(1,7)=enco_mem(1,6);
enco_mem(1,6)=enco_mem(1,5);
enco_mem(1,5)=enco_mem(1,4);   
enco_mem(1,4)=enco_mem(1,3);
       enco_mem(1,3)=enco_mem(1,2);
       enco_mem(1,2)=enco_mem(1,1);
       enco_mem(1,1)=message(1,1);

       temp=xor(enco_mem(1),enco_mem(3));
       temp1=xor(temp,enco_mem(4)); 
       temp2=xor(temp1,enco_mem(6));
       o1=xor(temp,enco_mem(7));%generator polynomial=1011011
       temp3=xor(enco_mem(1),enco_mem(2));
       temp4=xor(temp3,enco_mem(3));
       temp5=xor(temp4,enco_mem(5));
       o2=xor(temp5,enco_mem(7));      %generator polynomial=1110101
       temp6=xor(temp4,enco_mem(4));
       o3=xor(temp6,enco_mem(7)); %generator polynomial=1111001
       encoded_sequence(1,1)=o1;
       encoded_sequence(1,2)=o2;
       encoded_sequence(1,3)=o3;

msg_len=length(message);
c=4;
for i=2:msg_len
       
    enco_mem(1,7)=enco_mem(1,6);
    enco_mem(1,6)=enco_mem(1,5);
    enco_mem(1,5)=enco_mem(1,4);
    enco_mem(1,4)=enco_mem(1,3);
       enco_mem(1,3)=enco_mem(1,2);
       enco_mem(1,2)=enco_mem(1,1);
       if(i<=msg_len)
       enco_mem(1,1)=message(1,i);
       else
       enco_mem(1,1)=0;
       end
              
     temp=xor(enco_mem(1),enco_mem(3));
       temp1=xor(temp,enco_mem(4)); 
       temp2=xor(temp1,enco_mem(6));
       o1=xor(temp,enco_mem(7));%generator polynomial=1011011
       temp3=xor(enco_mem(1),enco_mem(2));
       temp4=xor(temp3,enco_mem(3));
       temp5=xor(temp4,enco_mem(5));
       o2=xor(temp5,enco_mem(7));      %generator polynomial=1110101
       temp6=xor(temp4,enco_mem(4));
       o3=xor(temp6,enco_mem(7));
       
       encoded_sequence(1,c)=o1;    %o1 generating polynomial(1011011)
       c=c+1;
       encoded_sequence(1,c)=o2;    %o2 generating polynomial(1110101)
       c=c+1;
       encoded_sequence(1,c)=o2;    %o2 generating polynomial(1111001)
       c=c+1;
end
stem(encoded_sequence);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -