提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、伪随机信号如何产生?
- 二、具体步骤
- 1.设计移位寄存器产生m序列
- 2.以m序列为码元进行信号编码
- 总结
前言
伪随机信号,又称伪随机序列或伪随机码,是由周期性数字序列经过滤波等处理后得出的,它具有类似于随机噪声的某些统计特性,同时又能够重复产生。常见的伪随机信号主要有m序列、M序列等序列。本文以m序列及其信号编码为例,为大家进行相关类似的信号产生提供帮助。
一、伪随机信号如何产生?
绝大多数伪随机信号都是用移位寄存器加反馈来产生,这种结构形式简单,易于实现并能容易的产生周期极长的序列。用移位寄存器产生伪随机信号有三种方法:线性反馈结构、非线性反馈结构和非线性前馈结构。所广泛采用的是线性反馈结构,采用线性反馈移存器产生的伪随机信号有最大长度序列和非最大长度序列两类。一个n级线性反馈移存器产生最大长度序列的长度为
,即序列周期为
的移位寄存器序列是最大长度序列,否则就是非最大长度序列。
二、具体步骤
1.设计移位寄存器产生m序列
代码如下(其中m_generate为移位寄存器产生m序列的函数,关注我私信获取哦):
clear;
%%m序列以及相应编码信号的产生
c=[0 0 1 0 0 0 0 0 0 1];%本原多项式
mg=m_generate(c);%m序列
2.以m序列为码元进行信号编码
代码如下:
%一个码对应的信号
f_m=1000; % 频率1000Hz
T_m=1/f_m; %单个码元持续时间为一个周期
Tz=T_m*N;
t_mayuan=0:1/fs:(T_m-1/fs); % 一个码元所持续的时间内的采样点时刻
y_mayuan=sin(2*pi*f_m*t_mayuan); % 一个码元的波形,对应码元0的波形
t_z=0:1/fs:(T_m*N-1/fs);%整个序列对应信号的总时间
a_t=[];%最终编码信号
for i=1:N
tmp=mg(i);
if tmp==0
a_t=[a_t,y_mayuan];%不断把调制好的信号往后放,最终接起来
end
if tmp==1
a_t=[a_t,-y_mayuan];
end
end
总结
m序列有如下特点:
- 均衡特性(平衡性)m序列每一周期中 1 的个数比 0 的个数多 1 个
- 游程特性(游程分布的随机性)M序列中,状态“0”或“1”连续出现的段称为游程。游程中“0”或“1”的个数称为游程长度。m序列的一个周期(p=2^n-1)中,游程总数为 2^n-1,“0”、“1”各占一半。
- 移位可加性2个彼此移位等价的相异M序列,按模2相加所得的序列仍为M序列,并与原M序列等价。