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

📄 interleaver.m

📁 802.15 dsss 物理协议层方针代码
💻 M
字号:
function interleaved_output=interleaver(input)
%Interleaver
%
%interleaving is used to disperse burst errors
%
%DS-UWB PHY 802.15
%
%Author: Liu Hantao
%
%==============================================================
%check the input arguments
if (nargin ~= 1) 
    error('incorrect number of input arguments - one expected')
end

%check the length of input data
%zerp padding to make sure n is integer
if rem(length(input),10) > 0
    input=[input,zeros(size(1:10-rem(length(input),10)))];
end

%zero padding to make sure every input data will be output from registers
input=[input,zeros(1,10*9*7)];
n=length(input)/10;
%==============================================================
%generate 9 registers for interleaving
J=7;
ret1=zeros(1,J);
ret2=zeros(1,2*J);
ret3=zeros(1,3*J);
ret4=zeros(1,4*J);
ret5=zeros(1,5*J);
ret6=zeros(1,6*J);
ret7=zeros(1,7*J);
ret8=zeros(1,8*J);
ret9=zeros(1,9*J);
%==============================================================
%start the interleaving
for i = 0:n-1
    interleaved_output(10*i+1)=input(10*i+1);
    
    interleaved_output(10*i+2)=ret1(J);
    ret1=[input(10*i+2),ret1(1:J-1)];
    
    interleaved_output(10*i+3)=ret2(2*J);
    ret2=[input(10*i+3),ret2(1:2*J-1)];
    
    interleaved_output(10*i+4)=ret3(3*J);
    ret3=[input(10*i+4),ret3(1:3*J-1)];
    
    interleaved_output(10*i+5)=ret4(4*J);
    ret4=[input(10*i+5),ret4(1:4*J-1)];
    
    interleaved_output(10*i+6)=ret5(5*J);
    ret5=[input(10*i+6),ret5(1:5*J-1)];
    
    interleaved_output(10*i+7)=ret6(6*J);
    ret6=[input(10*i+7),ret6(1:6*J-1)];
    
    interleaved_output(10*i+8)=ret7(7*J);
    ret7=[input(10*i+8),ret7(1:7*J-1)];
    
    interleaved_output(10*i+9)=ret8(8*J);
    ret8=[input(10*i+9),ret8(1:8*J-1)];
    
    interleaved_output(10*i+10)=ret9(9*J);
    ret9=[input(10*i+10),ret9(1:9*J-1)];
end

⌨️ 快捷键说明

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