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

📄 duiou.m

📁 实现对偶频带法生成宽间隔跳频序列
💻 M
字号:
function out_code = duiou(f,d,code_dec);
%对偶频带法产生宽间隔跳频序列
% clear;
% clc;
%生成频隙集合
% f = 0:16;
%间隔宽度
% d = 3;
%频隙数目
q = length(f);

temp = floor(q/2);
pow = nextpow2(temp);
if(2.^pow>temp)
    pow = pow-1;
end
%确定频带F1和F2
% F1 = 0:(floor(q/2)-1);
% F2 = (q-floor(q/2)):f(end);
F1 = 0:(2.^pow-1);
F2 =(q-2.^pow):(q-1);

%建立对偶频隙,第一行为F1中的频隙,第二行为与之对应的F2中的频隙
corresponding_table = [F1;F2];

%根据参数选取选择合适的码字
% load code_dec31;
% code_dec = code_dec31;%进行符号转换,便于选择不同码字,不必修改下面程序。


%下面的算法中隐含code_dec和F1一一对应.即0:length(code_dec) == F1


%生成宽间隔序列
for i = 1:size(code_dec,1)
    %当前跳频的频带
    %标记窄点
    narrow_tag = zeros(1,size(code_dec,2));
    for index = 2:size(code_dec,2)
        if(abs(code_dec(i,index)-code_dec(i,index-1))<(d+1))
            narrow_tag(index-1) = 1;
        end
    end
    if(abs(code_dec(i,index)-code_dec(i,1))<(d+1))
            narrow_tag(end) = 1;
    end
        
    %判断窄点个数是否满足要求
    if(mod(sum(narrow_tag),2) == 0)%不满足窄点个数要求
        wide_index = find(narrow_tag == 0);
        narrow_tag(wide_index(1)) = 1;
    end
    
    now_row = 1;%行标志用于选取频带:1选择F1,2选择F2
    now_col = 1;%用于选择code_dec所对应的列
    S_wide(i,1) = code_dec(i,1);
    for j = 2:(2*size(code_dec,2))
        %判断当前位置的点是否是窄点
        if(narrow_tag(now_col) == 1)
            %如果是窄点,进行频带跳变,并且列下标变化
            if now_row == 1
                now_row = 2;
            else
                now_row =1;
            end
            now_col = now_col+1;
            if(now_col > size(code_dec,2))
                now_col = 1;
            end
        else
            %如果不是窄点,只是列下标变化
            now_col = now_col+1;
            if(now_col > size(code_dec,2))
                now_col = 1;
            end
        end
        %由code_dec(i,now_col)选取corresponding_table中的列索引
        col = code_dec(i,now_col)+1;
        if(col>length(F1))
            col = 1;
        end
        S_wide(i,j) = corresponding_table(now_row,col);
    end
end
out_code =S_wide;

⌨️ 快捷键说明

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