I am using an optical spectrometer to measure the reflectance of some surfaces; the output is essentially a set of photodiodes' signals: for each photodiode I have a discrete time signal every $T$. The exposure time and the frame rate of the sensor can be changed: I tuned them so to have the highest number of measurements per second (i.e. highest framerate possible) and the corresponding longest integration window possible (there is no saturation problem).

Given as a degree of freedom the number of measurements that can be acquired, what would be the best digital method to reduce the noise of the measurement and to maximize the SNR?

The simplest solution seems to be averaging, which enhances the SNR of $\sqrt N$ under hypothesis of white uncorrelated noise, but is that the best that can be done in case of unknown noise spectral power distribution? In particular, I was wondering if there was a technique that exploits in an optimal way the information gathered on the noise during the acquisition of $M$ repeated samples.

  • $\begingroup$ so, do you have influence on the illumination? $\endgroup$ Jul 31 '18 at 14:06
  • $\begingroup$ In general yes: the illumination is (or at least should be) homogeneous on the area of study of the instrument. For that I use is a simple white LED. Do you think it could be that? It should be actually quite straightforward to evaluate it: I essentially just need to evaluate shot, thermal and 1/f noise, right? $\endgroup$
    – Eggman
    Aug 1 '18 at 6:37
  • $\begingroup$ by the way, a "simple" white LED isn't all that simple: It's typically either a set of colored LEDs or a blue LED with multiple phosphors, emitting light of different wavelengths that just to the human perception combine to white – you can typically use that as a light source for photometry, but you must take the wavelength distribution of both your light source as well as your sensor into account! $\endgroup$ Aug 1 '18 at 8:12
  • $\begingroup$ See this graphic, from this article (I believe this figure is stolen from an OSRAM LED's datasheet). $\endgroup$ Aug 1 '18 at 8:13

For the additive white noise channel, it can be shown that matched filtering maximizes SNR; and for constant illumination, the "transmitting pulse filter" is a rectangle, and the match to that is a rectangular weighting, i.e. an average, too.

The idea is simply that you "my signal is a vector; multiplication / convolution then becomes a dot product. Cauchy-Schwarz Inequality gives me an upper bound for the norm of signal·receive window / filter, and I reach that when what I do at the receiving end is a linear multiple of what I do at the transmitting end".

For unknown spectral distributions, you'd try to find a filter on the receiving end of things that is as orthogonal as possible to the spectrum of the noise. You'd need to estimate that first, though! Devise some calibration method; but, really, when you're observing the same spot for long enough, maybe just look at the spectrum and ignore the constant value?

Assuming you have some non-white noise, you can "abuse" techniques from the world of spread-spectrum communications design. Imagine the following:

You can modulate the intensity of your light source to two values, a and b, over time. Imagine sending a pseudo-random sequence consisting of times when you send the higher intensity, and of the lower intensity:

a      ----    --------    ----


b          ----        ----

At the receiver, the first thing you do is simply subtract the average of the received signal intensity; that way, what you receive becomes:

c      ----    --------    ----


-c         ----        ----

Now, that's a very simple spread spectrum signal (in fact, DSSS), and it's almost certain that its spectral properties are pretty different from these of noise.

Now, you just correlate with the high-low sequence that you've sent, considering "high" a "1", and "low" a "-1". When you shift that "+1 -1 +1 +1 -1 +1" sequence correctly, you'll see that by point-wise multiplication between "c -c +c +c -c +c" (which you received), you get a very high amplitude: 1·c + (-1)·(-c) + 1·c + 1·c + (-1)·(c) + 1·c = 6c . In reality, you use lengths much higher than 6!

You still get the same gain as when averaging white noise over a length of $N=6$, but for low-frequency-heavy noise distributions, you'd get noise suppression, too. (you buy that by getting less noise suppression at higher frequencies! No such thing as a free lunch; but you might want to do that, because you might have other light sources in your room – for example, 100 Hz modulating room light, which you can eliminate efficiently).

A bit of general commentary:

That averaging gives you the gain you state depends on the assumption that noise is uncorrelated with signal! In general, that's not the case for you: The energy of noise is very much dependent on current forward current in a semiconductor junction; that's kind of a bummer. What the spread-spectrum approach does is in fact a bit of noise shaping, and it might well suppress a bit of the harmonics that nonlinearity introduces, but I'm not expert enough in photonics to tell you how severe these nonlinearities are.

Also, I don't know the reflectivity of what you're measuring. Just be warned that white LEDs aren't really white: they consist of multiple light sources that generate different wavelengths; same goes for your photo sensors: They aren't uniformly sensitive to all wavelengths. If you haven't already, calibrate your sensor with a color proof sheet!

  • $\begingroup$ Thank you, that is actually a very interesting idea! Just a couple of questions: I could really just grasp the second paragraph of the answer (i.e. 'The idea is simply that you "my signal...'), does it mean that, since my signal is time discrete, I can express it through a vector, whose correlation corresponds to a dot product and which is upper limited by the Cauchy-Schwarz inequality? Also, about the DSSS, can I apply it to my situation, where I have a discrete time measurement? Does the modulation frequency need to be higher than the measurement one? $\endgroup$
    – Eggman
    Aug 7 '18 at 14:07
  • $\begingroup$ exactly! That's a very common way of thinking in DSP: Your signal is a vector, and so linear algebra is applicable. Heck, we go through great lengths to find signal models that describe the most insane signals as elements from a (vector) space. $\endgroup$ Aug 7 '18 at 14:09
  • $\begingroup$ Do you have any suggestion for a book where I can find all the derivation of this? I am really a noob in singal processing:) Finally, and this is more of a comment, I think that the main problem with that will be the response time of the LED, but we'll see. $\endgroup$
    – Eggman
    Aug 7 '18 at 14:14
  • $\begingroup$ DSSS is covered in the basics of digital communications course at my uni's EE program, so $\endgroup$ Aug 7 '18 at 14:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.