Generate white noise with amplitude between [-1 1] with Matlab

泪湿孤枕 提交于 2019-12-30 10:57:35

问题


I'm using the Matlab function Y = WGN(M,N,P) to generate white noise with Gaussian distribution. This function uses a power value (dB Watts) to calculate the amplitude of the output signal. Since I want to get an output amplitude range of -1 V to 1 V there is a function mode 'linear'.

I'm trying to use the 'linear' mode to produce the output but the result is an output amplitude range of [-4 4]

RandomSignal = wgn(10000,1,1,1,'linear');
Time = linspace(0,10,10000);
figure()
plot(Time,RandomSignal)

figure()
hist(RandomSignal,100) 

Is there another function to produce this result, or am I just doing something wrong?


回答1:


As others have said, you can't limit a Gaussian distribution. What you can do is define your range to be 6 standard deviations, and then use randn(m,sigma) to generate your signal.

For example if you want a range of [-1 1] you will choose sigma=2/6=0.333 and Mu=0. This will create a chance of 99.7% to be inside the range. You can then round up and down those numbers that are out of the range.

This will not be a pure Gaussian distribution, but this is the closest you can get.




回答2:


why you just take randn function of whatever bound and then just normalize it like this ex.

 noise=randn(400); noise=noise./max(max(noise)); 

so whatever is the output of randn finally you will have a w.n. inside [-1 1].




回答3:


Gaussian noise has an unbounded range. (The support of the Gaussian pdf is infinite.)




回答4:


You can use rand rather than Gaussian generator. The output range of rand is 0-1, so to make it in the range -1 1 you use rand(args)*2 -1.

It should be noted that this generator is sampling a uniform density.




回答5:


Don't want to say something very wrong, but when I copied your code and changed

RandomSignal = .25*wgn(10000,1,1,1,'linear');

it was then ok. Hope it works for you.(Assuming random data/4 is still random data)



来源:https://stackoverflow.com/questions/14527915/generate-white-noise-with-amplitude-between-1-1-with-matlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!