Adding and generation of poisson noise to a time varying signal

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.

 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

well the values of the signal will be a fraction, I dont think it will reach 10. but how can I apply it to my array (A) knowing the rms value for this noise ???
Poisson processes happen in certain situations, like those described on the Wikipedia page. Note that most of them are related to the occurrence of events. So in optics or electronics it usually doesn't apply unless you're talking about arrival of photons or electrons. Do you have such a stochastic process? Why do you think you have Poisson noise instead of thermal (Johnson) noise, 1/f (pink) noise, or some other kind of noise? Do you have any theory about what's generating your noise? For example, are you dealing with shot noise? If so, you may use Poisson statistics.
Yes, my aim is to generate shot noise to be specific in a photodetector model I have.
So how do you have a time varying signal with values that are fractions? That isn't shot noise.
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
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.
Thanks Image Analyst, I'll have a better look at the problem.
Arsalan

Sign in to comment.

More Answers (2)

If you have the Statistics Toolbox, use POISSRND
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.

Asked:

on 5 Jan 2013

Commented:

on 21 Oct 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!