基于FPGA的高斯白噪声的生成(中心极限定理)

1 中心极限定理的定义

大家可以在网上查询中心极限定理的定理和解释。中心极限定理意思就是说在一组服从均匀分布的数据中,随机抽取选取m个数,然后求这个m个数的平均值,这个平均数作为x1。继续随机抽取m个数,求这m个数的平均值,作为x2,就这样一直抽取n组数,也就是获得n个的数,每一个数都是m个的数平均值。这个n个数是符合01的正态分布的。

2 使用m序列产生均匀分布的随机数

基于fpga产生的均匀分布的噪声代码

3 均匀分布转换为高斯分布

3.1 设置m序列不同的初始值

调用30个以上的均匀随机数(我这里是34个),设置其初始状态不一致,初始值为30(大于14就可以了)。

parameter jiange = 14'h1e;
	//这个初始值需要大于14,这样就不会重合
	parameter INIT1= 14'h1;
	parameter INIT2= INIT1+jiange;//30
	parameter INIT3= INIT2+jiange;//60
	parameter INIT4= INIT3+jiange;//90	
	parameter INIT5= INIT4+jiange;//120
	parameter INIT6= INIT5+jiange;//150
	parameter INIT7= INIT6+jiange;//180
	parameter INIT8= INIT7+jiange;//90		
	parameter INIT9=  INIT8+jiange;//180
	parameter INIT10= INIT9+jiange;//90	
	parameter INIT11= INIT10+jiange;//30
	parameter INIT12= INIT11+jiange;//60
	parameter INIT13= INIT12+jiange;//90	
	parameter INIT14= INIT13+jiange;//120
	parameter INIT15= INIT14+jiange;//150
	parameter INIT16= INIT15+jiange;//180
	parameter INIT17= INIT16+jiange;//90		
	parameter INIT18= INIT17+jiange;//180
	parameter INIT19= INIT18+jiange;//90		
	parameter INIT20= INIT19+jiange;//90	
	parameter INIT21= INIT20+jiange;//30
	parameter INIT22= INIT21+jiange;//60
	parameter INIT23= INIT22+jiange;//90	
	parameter INIT24= INIT23+jiange;//120
	parameter INIT25= INIT24+jiange;//150
	parameter INIT26= INIT25+jiange;//180
	parameter INIT27= INIT26+jiange;//90		
	parameter INIT28= INIT27+jiange;//180
	parameter INIT29= INIT28+jiange;//90	
	parameter INIT30= INIT29+jiange;//150
	parameter INIT31= INIT30+jiange;//180
	parameter INIT32= INIT31+jiange;//90		
	parameter INIT33= INIT32+jiange;//180
	parameter INIT34= INIT33+jiange;//90	

3.2 调用均匀分布的噪声模块

这里只显示了两个,后面还有,只要改个名字就可以了

ms14_generate
	ms14_generate1
    (   
	    .data_1(INIT1),
    	.clk(clk_80M), 
    	.rst_n(rst_n), 
    	.en(en), 
    	.noise_addr(r14_1)
    );
	
    ms14_generate
	ms14_generate2
    (   
	    .data_1(INIT2),
    	.clk(clk_80M), 
    	.rst_n(rst_n), 
    	.en(en), 
    	.noise_addr(r14_2)
    );

3.2 对抽取的数据求平均数

这时候求出的平均数就是符合高斯分布的数据

    assign add_1 =  r14_1+r14_2+r14_3+r14_4+r14_5+r14_6;
    assign add_2 =  add_1+r14_7+r14_8+r14_9+r14_10+r14_11;	
    assign add_3 =  add_2+r14_12+r14_13+r14_14+r14_15+r14_16;
    assign add_4 =  add_3+r14_17+r14_18+r14_19+r14_20+r14_21;
	assign add_5 =  add_4+r14_22+r14_23+r14_24+r14_25+r14_26;
	assign add_6 =  add_5+r14_27+r14_28+r14_29+r14_30+r14_31;    
	assign add_7 =  add_6+r14_32+r14_33+r14_34;    
    assign gao_noise_te = add_7/34;
    //用了几个模块就除以几

4 ISE仿真验证

从图像还是可以看到噪声数据没什么问题
在这里插入图片描述

5 matlab仿真验证

在这里插入图片描述
可以看到数据还是呈现一个高斯分布的
减去均值之后
mean = 8.1005e-14
var = 8.4643e+05

6 问题和展望

这样处理的高斯噪声方差比较大,均值可以变为0,但是要想均值变为0,就必须要把这个无符号数转换为有符号数。后续对信号加噪处理,也是需要有符号的噪声。

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值