Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Adding and generation of poisson noise to a time varying signal

Asked by Arsalan on 5 Jan 2013
Latest activity Answered by Avi Silbiger on 3 Dec 2014 at 11:27

Hi,

My questions is to do with addition of noise to a predefined signal.

Assume I have predefined a time_varying signal in array A. Now I like to add noise to this signal, I know that my noise follows a poisson process or is poisson in nature, I also know that my noise has a rms value of X.

I just like to know how I can generate and noise this type of noise.

Thanks, Arsalan.

0 Comments

Arsalan

Products

No products are associated with this question.

3 Answers

Answer by Image Analyst on 5 Jan 2013
Accepted answer

What are the values of your signal? Do you know that with values of more than about 10, Poisson noise is well approximated by Gaussian noise? See Wikipedia. So you might be able to use Gaussian noise. If you think that it has the shape of Poisson noise, but the values are a lot more than 10, then you could use log-normal noise.

7 Comments

Arsalan on 6 Jan 2013

You can think of the time varying signal as the electron stream generated from the photodiode in response to a time_varying optical signal, lets just assume that optical time_varying signal is sine wave modulated on an optical carrier which is at a very high frequency.

The simplified conversion between light to a photo current can be presented as

It=(eta*q*II)/(h*f); 

where eta, q, h, f are only constants relating to the photodiode and the incoming light stream. II is an array containing the time varying optical signal, and It is the resulting photocurrent.

I can find my RMS shot noise via

SHOT=sqrt(2*q*eta*Signal_Bandwidth.*ItDc)

where ItDC is the mean value of the generated photocurrent.

but now I need to generate an array based on "SHOT" which will represent my shot noise which subsequently will be added to my photocurrent "It". to give my photocurrent+shot noise

Image Analyst on 6 Jan 2013

Well what about the poissrnd function that you said you were going to try (I don't have that)? And you may have a current that is some number of microamps, but an incoming photon gives just a pulse, doesn't it? It doesn't give a continuous stream of current. So you have to model that as a stochastic process. Sure it's a burst of current but it occurs in bursts and each burst is a stochastic event, so you can use rand() or poissrnd (I guess) for determining when the next pulse comes along. That would be a Poisson stochastic process. Now it's been almost 30 years since I took classes in detectors, reasons for their noise, and stochastic optical processes (from Eustace Dereniak, I'm sure you've heard of him), but I thought shot noise was an inherent characteristic of a sparse stream of photons, not something that you could add onto it. But you'd best ask your Professor.

Arsalan on 6 Jan 2013

Thanks Image Analyst, I'll have a better look at the problem.

Arsalan

Image Analyst
Answer by Matt J on 5 Jan 2013

If you have the Statistics Toolbox, use POISSRND

1 Comment

Arsalan on 6 Jan 2013

Thanks, I have that toolbox, and I shall used it

Matt J
Answer by Avi Silbiger on 3 Dec 2014 at 11:27

I'm sure you already resolved the issue, but here is a short piece of code that simulates shot noise, for those who might need it in the future.

0 Comments

Avi Silbiger

Contact us