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

📄 m_sequence_generator.m

📁 matlab-使用移位寄存器生成m序列(CDMA系统)
💻 M
字号:
%<matlab> 使用移位寄存器生成m序列
%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                        %
%   该函数根据输入的扩频因子生成相应的M序列,       %
%  其中扩频因子限制在2的3次幂到2的12次幂之间。    %
%                                                                        %  
%%%%%%%%%%%%%%%%%%%%%%%%%%
function Sequence = m_sequence_generator(SF)
SFlog2 = log2(SF);
if rem(SFlog2,1) ~= 0         % rem函数进行mod运算,此处检验SFlog2是否为整数
    error('扩频序列SF必须是2的整数次幂!'); % 即检验扩频因子是否为2的整数次幂
end
%%
switch SFlog2
    case 3
        R = 3; instate = zeros(1,3); instate(R) = 1;    
        %instate为寄存器状态,由于寄存器不能存在全0状态,故设置相应的位为1
        N = 2^R - 1; generator = [1 1 3];
        %N为寄存器级数,generator为本原多项式,对应有连接器的位置
    case 4
        R = 4; instate = zeros(1,4); instate(R) = 1;
        N = 2^R - 1; generator = [1 1 4];
    case 5
        R = 5; instate = zeros(1,5); instate(R) = 1;
        N = 2^R - 1; generator = [1 2 5];
    case 6
        R = 6; instate = zeros(1,6); instate(R) = 1;
        N = 2^R - 1; generator = [1 1 6];
    case 7 
        R = 7; instate = zeros(1,7); instate(R) = 1;
        N = 2^R - 1; generator = [1 3 7];
    case 8
        R = 8; instate = zeros(1,8); instate(R) = 1;
        N = 2^R - 1; generator = [1 2 3 4 8];
    case 9
        R = 9; instate = zeros(1,9); instate(R) = 1;
        N = 2^R - 1; generator = [1 4 9];
    case 10
        R = 10; instate = zeros(1,10); instate(R) = 1;
        N = 2^R - 1; generator = [1 3 10];
    case 11
        R = 11; instate = zeros(1,11); instate(R) = 1;
        N = 2^R - 1; generator = [1 2 11];
    case 12
        R = 12; instate = zeros(1,12); instate(R) = 1;
        N = 2^R - 1; generator = [1 1 4 6 12];
    otherwise
        error('SF必须是2的整数次幂, 大于等于2^8并且小于等于2^12.')
end
%%
[Sequence] = ...           % 调用线性反馈移位寄存器产生扩频m序列
    linear_feedback_shift_register(R,N,instate,generator);     
 

⌨️ 快捷键说明

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