系统辨识实验1·哈工大
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验 1 白噪声和 M 序列的产生 实验报告
专业:
哈尔滨工业大学 航天学院控制科学与工程系 自动化
班级: 1004105
姓名:
学号: 11004005**
日期: 2013 年 9 月 24 日
1.实验题目: 白噪声和 M 序列的产生
2.实验目的 1、熟悉并掌握产生均匀分布随机序列方法以及进而产生高斯 白噪声方法 2、熟悉并掌握 M 序列生成原理及仿真生成方法
+
C
C
C
C
C
C
M
M
M
M
M
M
M
(0) C 1 (1) 2 (2) 3 (3) 4 (4) 5 (5) 6 (6)
要求编写 P
Matlab
程序生成该
M
序列,绘制该信号曲线,并分析
验证 M 序列的性质。
5.程序框图 实验 1-1
实验 1-2
实验 1-3
6.程序代码 实验 1 -num1: Xulie_Length = 1200;
R(Xulie_Length) = 0; X(1) = 20140104; 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
N = 12; SEQ_LENGTH = 100;
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) +
测试程序: 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)
25 20 15
10 5
0 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
结论:从结果图知,生成的白噪声基本服从 N(0,1)分布。
3、生成 M 序列 生成的 M 序列如下(n = 63):
1.5
1
0.5
0
-0.5
-1
-1.5 0
10
20
30
40
50
60
70
验证 M 序列性质: 均衡特性:m 序列每一周期中 1 的个数比 0 的个数多 1 个 (-a 和 a 的个数差 1) 测试程序: number_a = sum(M_XuLie == a); number_a_c = sum(M_XuLie == -a); number_a
3.实验主要原理
1、混合同余法
混合同余法是加同余法和乘同余法的混合形式,其迭代式如下:
xn1 Rn1
(a xn
*
1
xn /M
b)
mod
M
式中 a 为乘子, x0 为种子,b 为常数,M 为模。混合同余法是一
种递归算法,即先提供一个种子 x0 ,逐次递归即得到一个不超过模
M 的整数数列。
2、正态分布随机数产生方法 由独立同分布中心极限定理有:设随机变量 X1, X 2,...., X n ,... 相互 独立,服从同一分布,且具有数学期望和方差:
4.实验对象或参数
1、生成均匀分布随机序列 (1)利用混合同余法生成[0, 1]区间上符合均匀分布的随机序列, 并计算该序列的均值和方差,与理论值进行对比分析。要求序列长 度为 1200,推荐参数为 a=65539,M=2147483647,0<x0<M。 (2)将[0, 1]区间分为不重叠的等长的 10 个子区间,绘制该随机 序列落在每个子区间的频率曲线图,辅助验证该序列的均匀性。 (3)对上述随机序列进行独立性检验。(该部分为选作内容)
E( X k ) , D( X k ) 2 0, (k 1, 2,...)
n
Xk
则随机变量之和 i1 的标准化变量:
n
n
n
Xk E( Xk ) Xk n
Y i1
i 1
ቤተ መጻሕፍቲ ባይዱ i1
n
D( Xk ) i 1
n
近似服从 N (0,1) 分布。
如果
Xn
服从[0,
1]均匀分布,则上式中
0.5 ,
2、生成高斯白噪声 利用上一步产生的均匀分布随机序列,令 n=12,生成服从 N(0,1) 的白噪声,序列长度为 100,并绘制曲线。
3、生成 M 序列 M 序列的循环周期取为 N P 26 1 63,时钟节拍 t 1Sec ,幅度 a 1,逻辑“0”为 a,逻辑“1”为-a,特征多项式 F (s) s6 s5 。 生成 M 序列的结构图如下所示。
%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 结论:从测试结果看性质成立
A = 65539; M = 2147483647; b = 0;
R(Xulie_Length) = 0; X(1) = 20140104; R(1) = X(1) / M; for n = 1 : (Xulie_Length - 1) X(n + 1) = mod((A * X(n) + b), M);
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;
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); figure(4); hist(G);
实验 3 Num3
(1)生成的 0-1 均布随机序列如下所示:
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1
0 0
200
400
600
均值和方差的实际值:
num1
800
1000
1200
mean_R =
0.4799
var_R = 0.0834
均值和方差理论值: mean_R =0.5
var_R =1/12( = 0.083333) 结论:实际值与理论值已经相当接近。 (2)该随机序列落在 10 个子区间的频率曲线图如下:
2
1 12
。即
n
X k 0.5n
Y i1 n
12 近似服从 N (0,1) 分布。
3、M 序列生成原理 用移位寄存器产生 M 序列的简化框图如下图所示。该图表示 一个由 4 个双稳态触发器顺序连接而成的 4 级移位寄存器,它带有 一个反馈通道。当移位脉冲来到时,每级触发器的状态移到下一级 触发器中,而反馈通道按模 2 加法规则反馈到第一级的输入端。
1; end run = 0;
end end display(test_number_a); display(test_number_a_c); 结果: test_number_a =
842110 test_number_a_c =
10 3 2 1 0 1 结论:从测试结果看性质成立 移位相加特性:m 序列和它的位移序列模二相加后所得序列 仍是该 m 序列的某个位移序列。
150
100
50
0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
结论:由图像可知,均匀性良好。 2、生成高斯白噪声
生成的白噪声如下图:
2 1.5
1 0.5
0 -0.5
-1 -1.5
-2 -2.5
-3 0
10 20
30 40
50 60 70
80 90 100
生成的白噪声的频率统计图如下:
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)
R(n + 1) = X(n + 1) / M; end
figure(1); plot(R); figure(2); hist(R); mean_R = mean(R) var_R = var(R)
实验 2 Num2
Xulie_Length = 1200;
A = 65539; M = 2147483647; b = 0;
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(1); M(1) = temp; end
stairs(M_XuLie); ylim([-1.5 1.5]);
7.实验结果及分析 1、生成均匀分布随机序列
专业:
哈尔滨工业大学 航天学院控制科学与工程系 自动化
班级: 1004105
姓名:
学号: 11004005**
日期: 2013 年 9 月 24 日
1.实验题目: 白噪声和 M 序列的产生
2.实验目的 1、熟悉并掌握产生均匀分布随机序列方法以及进而产生高斯 白噪声方法 2、熟悉并掌握 M 序列生成原理及仿真生成方法
+
C
C
C
C
C
C
M
M
M
M
M
M
M
(0) C 1 (1) 2 (2) 3 (3) 4 (4) 5 (5) 6 (6)
要求编写 P
Matlab
程序生成该
M
序列,绘制该信号曲线,并分析
验证 M 序列的性质。
5.程序框图 实验 1-1
实验 1-2
实验 1-3
6.程序代码 实验 1 -num1: Xulie_Length = 1200;
R(Xulie_Length) = 0; X(1) = 20140104; 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
N = 12; SEQ_LENGTH = 100;
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) +
测试程序: 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)
25 20 15
10 5
0 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
结论:从结果图知,生成的白噪声基本服从 N(0,1)分布。
3、生成 M 序列 生成的 M 序列如下(n = 63):
1.5
1
0.5
0
-0.5
-1
-1.5 0
10
20
30
40
50
60
70
验证 M 序列性质: 均衡特性:m 序列每一周期中 1 的个数比 0 的个数多 1 个 (-a 和 a 的个数差 1) 测试程序: number_a = sum(M_XuLie == a); number_a_c = sum(M_XuLie == -a); number_a
3.实验主要原理
1、混合同余法
混合同余法是加同余法和乘同余法的混合形式,其迭代式如下:
xn1 Rn1
(a xn
*
1
xn /M
b)
mod
M
式中 a 为乘子, x0 为种子,b 为常数,M 为模。混合同余法是一
种递归算法,即先提供一个种子 x0 ,逐次递归即得到一个不超过模
M 的整数数列。
2、正态分布随机数产生方法 由独立同分布中心极限定理有:设随机变量 X1, X 2,...., X n ,... 相互 独立,服从同一分布,且具有数学期望和方差:
4.实验对象或参数
1、生成均匀分布随机序列 (1)利用混合同余法生成[0, 1]区间上符合均匀分布的随机序列, 并计算该序列的均值和方差,与理论值进行对比分析。要求序列长 度为 1200,推荐参数为 a=65539,M=2147483647,0<x0<M。 (2)将[0, 1]区间分为不重叠的等长的 10 个子区间,绘制该随机 序列落在每个子区间的频率曲线图,辅助验证该序列的均匀性。 (3)对上述随机序列进行独立性检验。(该部分为选作内容)
E( X k ) , D( X k ) 2 0, (k 1, 2,...)
n
Xk
则随机变量之和 i1 的标准化变量:
n
n
n
Xk E( Xk ) Xk n
Y i1
i 1
ቤተ መጻሕፍቲ ባይዱ i1
n
D( Xk ) i 1
n
近似服从 N (0,1) 分布。
如果
Xn
服从[0,
1]均匀分布,则上式中
0.5 ,
2、生成高斯白噪声 利用上一步产生的均匀分布随机序列,令 n=12,生成服从 N(0,1) 的白噪声,序列长度为 100,并绘制曲线。
3、生成 M 序列 M 序列的循环周期取为 N P 26 1 63,时钟节拍 t 1Sec ,幅度 a 1,逻辑“0”为 a,逻辑“1”为-a,特征多项式 F (s) s6 s5 。 生成 M 序列的结构图如下所示。
%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 结论:从测试结果看性质成立
A = 65539; M = 2147483647; b = 0;
R(Xulie_Length) = 0; X(1) = 20140104; R(1) = X(1) / M; for n = 1 : (Xulie_Length - 1) X(n + 1) = mod((A * X(n) + b), M);
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;
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); figure(4); hist(G);
实验 3 Num3
(1)生成的 0-1 均布随机序列如下所示:
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1
0 0
200
400
600
均值和方差的实际值:
num1
800
1000
1200
mean_R =
0.4799
var_R = 0.0834
均值和方差理论值: mean_R =0.5
var_R =1/12( = 0.083333) 结论:实际值与理论值已经相当接近。 (2)该随机序列落在 10 个子区间的频率曲线图如下:
2
1 12
。即
n
X k 0.5n
Y i1 n
12 近似服从 N (0,1) 分布。
3、M 序列生成原理 用移位寄存器产生 M 序列的简化框图如下图所示。该图表示 一个由 4 个双稳态触发器顺序连接而成的 4 级移位寄存器,它带有 一个反馈通道。当移位脉冲来到时,每级触发器的状态移到下一级 触发器中,而反馈通道按模 2 加法规则反馈到第一级的输入端。
1; end run = 0;
end end display(test_number_a); display(test_number_a_c); 结果: test_number_a =
842110 test_number_a_c =
10 3 2 1 0 1 结论:从测试结果看性质成立 移位相加特性:m 序列和它的位移序列模二相加后所得序列 仍是该 m 序列的某个位移序列。
150
100
50
0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
结论:由图像可知,均匀性良好。 2、生成高斯白噪声
生成的白噪声如下图:
2 1.5
1 0.5
0 -0.5
-1 -1.5
-2 -2.5
-3 0
10 20
30 40
50 60 70
80 90 100
生成的白噪声的频率统计图如下:
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)
R(n + 1) = X(n + 1) / M; end
figure(1); plot(R); figure(2); hist(R); mean_R = mean(R) var_R = var(R)
实验 2 Num2
Xulie_Length = 1200;
A = 65539; M = 2147483647; b = 0;
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(1); M(1) = temp; end
stairs(M_XuLie); ylim([-1.5 1.5]);
7.实验结果及分析 1、生成均匀分布随机序列