matlab - matlab中的广义高斯噪声发生器

matlab - matlab中的广义高斯噪声发生器

我需要在 Matlab 中创建广义高斯噪声发生器。

vGGN 是如下分布的随机信号:

v ~ GN(mi, alfa, beta) :

p(v; mi, alfa, beta) = (beta/(2*alfa*gamma(1/beta))) * exp(-(abs(v - mi)/alfa).^beta )

其中 p 是计算值 v 的概率。

请注意,这gamma是内置于计算Gamma 函数值的 Matlab 函数。

我试图通过以下方式创建生成器:

function gn = GN(dim1, dim2, mi, alfa, beta)

gn = zeros(dim1, dim2);

for i=1:dim1

for j=1:dim2

v = mi + 10*(alfa^2)* rand(1) - 5*(alfa^2);

prob = rand(1);

while(p(v, mi, alfa, beta) < prob)

v = mi + 10*alfa* rand(1) - 5*alfa;

prob = rand(1);

end

gn(i,j) = v;

end

end

function pval = p(v, mi, alfa, beta)

pval = (beta/(2*alfa*gamma(1/beta))) * exp(-(abs(v - mi)/alfa).^beta );

但是循环似乎是无限的,出了点问题。

另请注意,对于:

beta = 2此生成器应返回等于具有平均值mi和标准偏差的正态高斯分布的值alfa^2/2

编辑

好的,Doug 为我指出了正确的方向。我们需要创建v或多或少可能被选中的值(我假设 10* std 非常好),然后检查概率条件。为每个概率检查(在 while 循环中)

绘制一个新值也很重要。

所以问题解决了prob

请注意,此生成器允许您生成:

- 高斯噪声beta = 2

- 拉普拉斯(脉冲)噪声beta = 1

你可能也喜欢

《侯门一入深似海.》是什么意思,出处是出自哪里?
365bet官网平台网址

《侯门一入深似海.》是什么意思,出处是出自哪里?

📅 08-17 👀 6088
多尔衮是哪旗的? 摄政王多尔衮是统领哪几旗
365bet官网平台网址

多尔衮是哪旗的? 摄政王多尔衮是统领哪几旗

📅 08-11 👀 2840
天刀功力怎么上20000_天刀功力提升2020
beat365手机版官方网站正规

天刀功力怎么上20000_天刀功力提升2020

📅 08-25 👀 9355
本科毕业论文参考文献要多少?建议20-50篇,关键看质量
beat365手机版官方网站正规

本科毕业论文参考文献要多少?建议20-50篇,关键看质量

📅 08-01 👀 298
拯字的意思、解释和含义以及拼音、笔画和笔顺
beat365手机版官方网站正规

拯字的意思、解释和含义以及拼音、笔画和笔顺

📅 08-13 👀 3304
魔兽世界怀旧服鲁尔的自由任务攻略
365bet官网平台网址

魔兽世界怀旧服鲁尔的自由任务攻略

📅 07-01 👀 246