mseq.m

来自「一些基于CDMA的编码程序」· M 代码 · 共 48 行

M
48
字号
% Program CDMA-3
%
% mseq.m
%
% The generation function of M-sequence
%
% An example
%    stg     = 3;
%    taps    = [ 1 , 3 ]
%    inidata = [ 1 , 1 , 1 ]
%    n       = 2
%

function [mout] = mseq(stg, taps, inidata, n)

% ------------------------------------------------------------------------------

% stg     : Number of stages
% taps    : Position of register feedback
% inidata : Initial sequence
% n       : Number of output sequence (It can be omitted)
% mout    : output M sequence

% ------------------------------------------------------------------------------

if nargin < 4
    n = 1;
end

mout = zeros(n,2^stg-1);
fpos = zeros(stg,1);
fpos(taps) = 1

for ii = 1:2^stg-1
    mout(1,ii) = inidata(stg);          % storage of the output data
    num        = mod(inidata*fpos,2);   % calculation of the feedback data
    
    inidata(2:stg) = inidata(1:stg-1);  % one shifts the register
    inidata(1)     = num;               % retrun feedback data
end

if n > 1
    for ii = 2:n
        mout(ii,:) = shift(mout(ii-1,:),1,0);
    end
end

% --------------------------------- end of file --------------------------------

⌨️ 快捷键说明

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