- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 11
实用标准文案
文档
实验1 白噪声和M序列的产生
实验报告
1.实验题目: 白噪声和M序列的产生
2.实验目的
1、熟悉并掌握产生均匀分布随机序列方法以及进而产生高斯白噪声方法
2、熟悉并掌握M序列生成原理及仿真生成方法
3.实验主要原理
1、混合同余法
混合同余法是加同余法和乘同余法的混合形式,其迭代式如下:
式中a为乘子,χ0为种子,b为常数,M为模。混合同余法是一种递归算法,即先提供一个种子χ0,逐次递归即得到一个不超过模M的整数数列。
2、正态分布随机数产生方法
由独立同分布中心极限定理有:设随机变量相互独立,服从同一分布,且具有数学期望和方差:
则随机变量之和的标准化变量:
近似服从分布。
如果服从[0, 1]均匀分布,则上式中,。即
近似服从分布。
3、M序列生成原理
用移位寄存器产生M序列的简化框图如下图所示。该图表示一个由4个双稳态触发器顺序连接而成的4级移位寄存器,它带有一个反馈通道。当移位脉冲来到时,每级触发器的状态移到下一级触发器中,而反馈通道按模2加法规则反馈到第一级的输入端。
4.实验对象或参数
1、生成均匀分布随机序列
(1)利用混合同余法生成[0, 1]区间上符合均匀分布的随机序列,并计算该序列的均值和方差,与理论值进行对比分析。要求序列长度为1200,推荐参数为a=65539,M=2147483647,0x0M。
(2)将[0, 1]区间分为不重叠的等长的10个子区间,绘制该随机序列落在每个子区间的频率曲线图,辅助验证该序列的均匀性。
(3)对上述随机序列进行独立性检验。(该部分为选作内容)
2、生成高斯白噪声
利用上一步产生的均匀分布随机序列,令n=12,生成服从N(0,1)的白噪声,序列长度为100,并绘制曲线。
3、生成M序列
M序列的循环周期取为,时钟节拍,幅度,逻辑“0”为a,逻辑“1”为-a,特征多项式。
生成M序列的结构图如下所示。
C
C1
C2
C3
C4
C5
C6
CP
M(6)
M(5)
+
M(4)
M(3)
M(2)
M(1)
M(0)
要求编写Matlab程序生成该M序列,绘制该信号曲线,并分析验证M序列的性质。
5.程序框图
实验1-1
实验1-2
实验1-3
6.程序代码
%实验1-1
Xulie_Length = 1200;
A = 65539;
M = 2147483647;
b = 0;
R(Xulie_Length) = 0;
X(1) = 199119;
R(1) = X(1) / M;
for n = 1 : (Xulie_Length - 1)
X(n + 1) = mod((A * X(n) + b), M);
R(n + 1) = X(n + 1) / M;
end
figure(1);
plot(R);title(均匀分布随机序列)
figure(2);
hist(R);title(10个均匀子区间均匀分布随机序列柱状图) %Histogram 柱状图
mean_R = mean(R) %Average or mean value.平均值
var_R = var(R) %Variance.差值
%实验1-2
clear all;
N = 12;
SEQ_LENGTH = 100;
G(SEQ_LENGTH) = 0;
for n = 1 : SEQ_LENGTH
for t = 1 : N
G(n) = G(n) + R(N * (n - 1) + t);
end
end
G = G - 6;
figure(3);
plot(G);title(高斯白噪声)
figure(4);
hist(G);title(高斯白噪声频率统计柱状图)
%实验1-3
clear all;
number = 2^6 - 1;
a = 1;
%手动初始化M
M(1)=1;
M(2)=0;
M(3)=0;
M(4)=1;
M(5)=1;
M(6)=0;
M_XuLie(number) = 0;
for n = 1 : number
temp = xor(M(6), M(5));
if(temp == 0)
M_XuLie(n) = a;
else
M_XuLie(n) = -a;
end
M(6) = M(5);
M(5) = M(4);
M(4) = M(3);
M(3) = M(2);
M(2) = M(
文档评论(0)