当前位置:文档之家› 实验1 白噪声和M序列的产生

实验1 白噪声和M序列的产生

实验1 白噪声和M序列的产生
实验报告
哈尔滨工业大学
航天学院控制科学与工程系
专业:自动化
班级:0904103
姓名:***
学号:**********
日期:2012 年9 月27 日
1.实验题目:白噪声和M序列的产生
3、M序列生成原理
用移位寄存器产生M序列的简化框图如下图所示。

该图表示一个由4个双稳态触发器顺序连接而成的4级移位寄存器,它带有一个反馈通道。

当移位脉冲来到时,每级触发器的状态移到下一级触发器中,而反馈通道按模2加法规则反馈到第一级的输入端。

4.实验对象或参数
1、生成均匀分布随机序列
(1)利用混合同余法生成[0, 1]区间上符合均匀分布的随机序列,并计算该序列的均值和方差,与理论值进行对比分析。

要求序列长度为1200,推荐参数为a=65539,M=2147483647,0<x0<M。

(2)将[0, 1]区间分为不重叠的等长的10个子区间,绘制该随机序列落在每个子区间的频率曲线图,辅助验证该序列的均匀性。

(3)对上述随机序列进行独立性检验。

(该部分为选作内容)
2、生成高斯白噪声
利用上一步产生的均匀分布随机序列,令n=12,生成服从N(0,1)的白噪声,序列长度为100,并绘制曲线。

3、生成M序列
M序列的循环周期取为
63
1
26=
-
=
P
N,时钟节拍Sec
1
=
∆t,幅度1
=
a,逻辑“0”为a,逻辑“1”为-a,特征多项式
65
()
F s s s
=⊕。

生成M序列的结构图如下所示。

要求编写Matlab程序生成该M序列,绘制该信号曲线,并分析验证M序列的性质。

C1C2C3C4C5C6 CP
M(6)
M(5)
+
M(4)
M(3)
M(2)
M(1)
M(0)
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;
7.实验结果及分析
1、生成均匀分布随机序列 (1)生成的0-1均布随机序列如下所示:
200
400
600
800
1000
1200
00.10.2
0.30.40.50.60.70.80.91
计算序列的均值和方差 程序代码:
mean_R = mean(R) var_R = var(R)
均值和方差实际值: mean_R = 0.4969 var_R =
0.0837
均值和方差理论值: mean_R =0.5
var_R =1/12( = 0.083333)
结论:容易看到,实际值与理论值较接近。

(2)该随机序列落在10个子区间的频率曲线图如下:
结论:从结果图可以容易看到,该序列的均匀性较好。

2、生成高斯白噪声
生成的白噪声如下图:
-2.5
-2-1.5-1-0.500.511.52
生成的白噪声的频率统计图如下:
05
10
15
20
25
结论:从结果图知,生成的白噪声基本服从N(0,1)分布。

3、生成M 序列
生成的M 序列如下(n = 63)

010203040506070
-1.5
-1
-0.5
0.5
1
1.5
验证M序列性质:
均衡特性:m序列每一周期中 1 的个数比0 的个数多1 个(-a和a的个数差1)
测试程序:
number_a = sum(M_XuLie == a);
number_a_c = sum(M_XuLie == -a);
number_a
number_a_c
结果:
number_a =
31
number_a_c =
32
结论:从测试结果看性质成立
游程特性:m序列的一个周期(p=2n-1)中,游程总数为2n-1。

其中长度为k的游程个数占游程总数的1/2k=2-k,而且,在长度为k游程中,连1游程与连0 游程各占一半,其中1≤k≤(n-2)。

长为(n-1)的游程是连0 游程,长为n 的游程是连 1 游程。

测试程序:
M_XuLie_Ext = [M_XuLie, -M_XuLie(end)];
run = int8(0);
test_number_a(6) = int8(0);
test_number_a_c(6) = int8(0);
for n = 1 : length(M_XuLie)
run = run + 1;
if(M_XuLie_Ext(n) ~= M_XuLie_Ext(n + 1))
if(M_XuLie_Ext(n) == a)
test_number_a(run) = test_number_a(run) + 1;
else
test_number_a_c(run) = test_number_a_c(run) + 1;
end
run = 0;
end
end
display(test_number_a);
display(test_number_a_c);
结果:
test_number_a =
8 4 2 1 1 0
test_number_a_c =
10 3 2 1 0 1
结论:从测试结果看性质成立
移位相加特性:m序列和它的位移序列模二相加后所得序列仍是该m序列的某个位移序列。

测试程序:
M_XuLie = M_XuLie';
M_XuLie = -0.5 * (M_XuLie - 1);
M_result = 1; % 验证成功则为1
for n = 1 : (length(M_XuLie) - 1)
M_XuLie_Shift = circshift(M_XuLie, n);
M_XuLie_Add = mod((M_XuLie + M_XuLie_Shift), 2);
is_shift_found = 0; % false
for k = 0 : (length(M_XuLie) - 1)
%if(isequal(circshift(M_XuLie, k), M_XuLie_Add))
if(circshift(M_XuLie, k) == M_XuLie_Add)
is_shift_found = 1;
end
end
if(is_shift_found == 0)
M_result = 0;
end
end
display(M_result);
结果:
M_result =
1
结论:从测试结果看性质成立
8.结论
本次试验主要实践了混合同余法,正态分布随机数产生方法,M序列生成原理,生成均匀分布随机序列,生成高斯白噪声,生成M序列。

使用混合同余法生成了服从N(0,1)分布的随机序列,同时根据独立同分布中心极限定理,得到了高斯白噪声。

在实验1-3中使用6个移位寄存器和反馈通道生成了周期为63的M序列,同时验证了M序列的相关性质,从结果看,完全成立。

本次实验主要是对M序列和其相关性质有了更深入的了解,同时也进一步熟悉了MATLAB,收获颇多。

相关主题