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

📄 kuanjiange_seq.m

📁 kuanjiange_seq.m 基于对偶频带法和m序列
💻 M
字号:
% kuanjiange_seq.m

% 构造宽间隔跳频序列
% 生成宽间隔跳频序列
% sequence1 和 sequence2 是两个序列,所构造的宽间隔序列在两个序列间跳取而得,原理参看
% 《跳频通信》一书 P75-P77

% 仿真时:在进行判定时,要对大于跳频间隔 d 进行判定,d = 2. 

clear;
clc

% ************************** preparations *********************************
stg = 6;
taps = [1,6];
inidata = [0,0,0,0,0,1];
len = 2^stg-1;
nd = 8;                                      % 序列族中序列数目

d = 2;                                       % 跳频间隔
q = 16;                                      % 跳频频隙数

%**************************************************************************
% stg     : Number of stages
% taps    : Position of register feedback
% inidata : Initial sequence
% mout    : output m sequence
%**************************************************************************

m = mseq(stg,taps,inidata,len);              % n = 1  生成一非零m状态序列
                                             % m = [1 0 0 1 1 1 0] 
a = m(58,:);   

W = zeros(nd,len);

u = [0 0 0;0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0;1 1 1;];
%********************************计算W*************************************

for i = 1 : nd
    for j = 1 : len
        if j <= len-4
            W(i,j) = 4*xor(a(j),u(i,1))+2*xor(a(j+2),u(i,2))+...
                xor(a(j+4),u(i,3));
        elseif j == len-3
            W(i,j) = 4*xor(a(j),u(i,1))+2*xor(a(j+2),u(i,2))+...
                xor(a(rem(j+4,len)),u(i,3));
        elseif j == len-2
            W(i,j) = 4*xor(a(j),u(i,1))+2*xor(a(j+2),u(i,2))+...
                xor(a(rem(j+4,len)),u(i,3));
        elseif j >= len-1
            W(i,j) = 4*xor(a(j),u(i,1))+2*xor(a(rem(j+2,len)),u(i,2))+...
                xor(a(rem(j+4,len)),u(i,3));
        end
    end
end

%***************************  结束序列计算  ******************************** 

sequence1 = W(1,:);

%  7 7 6 7 4 7 0 7 1 6 2 5 5 2 3 5 7 2 7 5 6 3 4 6 1 4 2 1 
%  5 3 2 6 4 5 0 3 1 7 3 6 6 5 4 3 0 6 0 5 1 2 2 4 4 1 0 2 
%  0 4 0 1 1 3 3

sequence2 = sequence1+floor((q+1)/2);

% 15 15 14 15 12 15  8 15 9 14 10 13 13 10 11 13 15 10 15 13 14 11 12 14 9  
% 12 10  9 13 11 10 14 12 13 8 11  9 15 11 14 14 13 12 11  8 14  8 13  9 10 
% 10 12 12  9  8 10  8 12  8 9  9 11 11

N3 = length(sequence1);

% *************************************************************************

wide_interval = zeros(1,len);

wide_interval(1) = sequence1(1);                           
% 宽间隔先取F1上的第一个值 

flag = 0;                                                  
% 所在频带标志,为0在F1上,为1在其对偶频带上

% *************************** 开始计算宽间隔序列 ***************************

for i = 1:(len-1)
    
    if flag == 0                                           % 在F1上
        
        if abs(sequence1(i+1)-wide_interval(i)) > d        % 先判断F1
        
            wide_interval(i+1) = sequence1(i+1);           % 在F1上满足d时,下一跳仍在F1上跳
            flag = 0;                                      % 频带标志仍置0

        else                                               % 跳到对偶频带F2上
           
            wide_interval(i+1) = sequence2(i+1);           % 在F1上不满足时跳转到F2上,看是否满足跳频间隔d
                                                           % 在F2上满足d时,下一次仍在F2上跳
            flag = 1;                                      % 频带标志置为1
        end
        
    end
    
    if flag == 1                                           % 在对偶频带F2上
       
        if abs(sequence2(i+1)-wide_interval(i)) > d        % 先判断F1
            
            wide_interval(i+1) = sequence2(i+1);           % 在F2上满足d时,下一跳仍在F2上跳
            flag = 1;                                      % 仍置频带标志为1
        
        else

            wide_interval(i+1) = sequence1(i+1);           % 在F2上不满足时跳转到F1上,看是否满足跳频间隔d
                                                           % 在F2上满足d时,下一次仍在F2上跳
            flag = 0;                                      % 置频带标志为0
            
        end
        
    end

end
    
disp(wide_interval)                                        % 显示出此

% ******************************* end of file *****************************

% Columns 1 through 14 
% 
%      7    15     6    15    12    15     8    15     9    14    10    13     5     2
% 
%   Columns 15 through 28 
% 
%     11     5    15    10    15     5    14    11     4    14     9    12     2     9
% 
%   Columns 29 through 42 
% 
%     13     3    10    14     4    13     8    11     1     7     3     6    14     5
% 
%   Columns 43 through 56 
% 
%     12     3     0     6     0     5     1    10     2    12     4     1     8     2
% 
%   Columns 57 through 63 
% 
%      8    12     8     1     9     3    11

% *************************************************************************

⌨️ 快捷键说明

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