(整理)实验1白噪声和M序列的产生
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 白噪声和M序列的产生
实验报告
哈尔滨工业大学
航天学院控制科学与工程系
专业:自动化
班级:0904103
姓名:邱国锐
学号:1090410321
日期:2012 年9 月27 日
1.实验题目:白噪声和M序列的产生
3、M序列生成原理
用移位寄存器产生M序列的简化框图如下图所示。该图表示一个由4个双稳态触发器顺序连接而成的4级移位寄存器,它带有一个反馈通道。当移位脉冲来到时,每级触发器的状态移到下一级触发器中,而反馈通道按模2加法规则反馈到第一级的输入端。
4.实验对象或参数
1、生成均匀分布随机序列
(1)利用混合同余法生成[0, 1]区间上符合均匀分布的随机序列,并计算该序列的均值和方差,与理论值进行对比分析。要求序列长度为1200,推荐参数为a=65539,M=2147483647,0 (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)