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

📄 m序列扩频调制解调实现.m

📁 这是m序列的matlab调制和解调程序
💻 M
字号:
%m序列扩频调制解调实现
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                                           %
%  函数通过输入信号序列和扩频因子,以及调制解调选择参数来        %
%  完成扩频调制解调。original_seq是原始输入序列,可能是未          %
%  调制序列,也可能是调制序列,spreading_factor是扩频序列         %
%  的扩频因子,select选择对输入的序列进行调制还是解调。            %
%                                                                                           %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [sequence] = DS_modulation_demodulation(original_seq,spreading_factor,select,off_set)
if nargin == 3
    off_set = 0;
end
if nargin < 2                                       
    error('输入参数不足!');
end
if length(original_seq) < 1
    error('原序列输入错误,无法进行扩频调制!');
end
sf = spreading_factor;
if sf == 15                                         % 如果扩频因子为15则自动生成cdma系统默认短码
    m_seq = ls_m_sequence_generator(0);
else                                                  % 否则可以生成扩频因子3-12的m序列
    m_seq = m_sequence_generator(2^sf);
end
m_len = length(m_seq);                              % 得到m序列的长度
or_len = length(original_seq);
if select == 1                                             % 进行扩频调制
    mo_seq = m_seq.'*original_seq;
    mo_seq = reshape(mo_seq,1,m_len*or_len);
    len = m_len*or_len;
    sequence = [mo_seq((len-off_set+1):len),...
        mo_seq(1:(len-off_set))];                    % 扩频输出为双极性码
else                                                          % 进行扩频序列的解调操作
    de_seq = reshape(original_seq,m_len,or_len/m_len);
    de_seq = m_seq*de_seq/(2^sf-1);
    sequence = de_seq;
end
   

⌨️ 快捷键说明

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