多语言展示
当前在线:156今日阅读:84今日分享:32

用Matlab wgn函数生成指定功率谱密度高斯白噪声

软件中randn函数可生成满足正态分布的序列,而wgn则基于此函数,增加了参数,可以直接控制功率,进而可以控制功率谱密度。awgn负责在已知信号上,添加噪声。综合比较,如果不使用simulink中白噪声模块,生成指定功率谱密度的噪声,wgn是最好的选择。但是其中参数p指的是功率(linear情况下),而不是功率谱密度。接下来介绍,wgn函数中p和功率谱密度的换算关系,如何生成功率谱密度为1或任何数值的高斯白噪声。同时,也介绍如何用simulink生成指定功率谱密度白噪声。
工具/原料

装有matlab电脑一台

方法/步骤
1

首先介绍一下simulink中的有限带宽白噪声模块,启动matlab后,启动此工具,添加下图所示模块。添加模块后,双击打开设置界面后,点击下方help,查看该功能说明。

2

其中如下图1Sample time有对应公式,这是对仿真系统的要求,实际计算好后,这是一个定值,这里记为参数tc。而对于下图2两个参数分别表示功率谱密度和随机数起始,如果不改变seed起始,每次使用此模块生成的高斯白噪声,不会发生任何变化,这也是使用该模块相比wgn函数的优势(可以保证每次运行结果一致,噪声可控)。

3

所以,simulink中想生成多大功率谱密度,直接设置参数即可,这里设置为1,tc设为1*10e-3,并生成了图像。

4

而对于wgn函数,需要用第四个参数控制单位,如果不进行设置则单位为dBW,需要进行设置,将其改为线性W这一单位,具体使用如下图所示。

5

wgn中设置p并不能控制序列功率谱密度,通过下图所示公式进行换算即可。按照该公式编写相应程序。

6

实际使用时,对参数进行相应设置,即可达到和使用前述模块同样的效果。输出使用该函数生成的噪声图像,和使用simulink模块进行比较,可以看到幅值完全相同,并使用std函数处理两组数据,比较标准差,两组标准差相等。这说明通过控制参数p可成功控制功率谱密度。这样,两种方式控制普密度,介绍完成。

注意事项
1

这两种方式生成结果一致,只是函数方式,每次运行都会发生变化,而且信号只是一种近似,工程使用足够了。

2

感谢阅读,如有帮助,可以点赞、投票或收藏支持,谢谢!

推荐信息