LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Splitting a signal based on frequencies

Hi,

Im doing a project, where im driving 6 leds of different colours at different frequencies using the digital outputs of a usb-6009, and receiving a signal using a single photodiode using the analog input of the same usb-6009

So i have one signal, what i would like to do is be able to seperate this signal into parts based on the light information from each of the leds, is it possible to split a signal this way? Each led is running at a different frequency

Once this is done i would also like to display each of the signals together on a graph in a different colour for each led?

Is this possible?

Thanks
0 Kudos
Message 1 of 11
(4,537 Views)
tger003,

just to clear up your setup: you have a photodiod which detects six different frequencies. You want to analyze the signal in a way that you can split up the signal into these six different frequencies and drive a LED for each of them. Is this correct?
If it is correct, you will definetly have some major problems:
a) how is the signal created? i think of six lightemitting sources which send their light to the diode. Now starts problem a): diodes are not linear. so how do you know if 1, 2 or more lights are lit? how do you know WHICH light is lit (if this matters at all)?
b) if you are able to detect the sources in a way that fits, you can do some form of analysis on the signal. Now starts problem b): are the frequencies of the six sources constant? if not, how do you track these changes?
c) if problem b) is solved, you can try to analyze your signal with FFT. Now starts problem c): Diodes often do not create sine-signals. Since FFT asumes that all (periodical) signals can be created by a sum of sine-waves, the major sine wave will be very noise. The result of the FFT will show much noise as well. So: how do you know which peaks are signals, which are noise?
If you solve c) sufficently, the issue is nearly solved. The only missing part is to "split up" the result of the FFT, generate pulses for each LED in the same frequencies as the six peaks from your FFT.....

Norbert B.
NI Germany

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 2 of 11
(4,528 Views)
thanks for replying so quickly

i am driving each of the leds at a constant frequency,

the problem is i want to know which led is on or if they are all on at the same time, then to break up the signal from the photodiode into each of its components corresponding to each of the leds


0 Kudos
Message 3 of 11
(4,517 Views)
tger003,

i am still unsure what your question is....
As i understand your last posting, you want to know which LED you are driving is on. Since the DIO is static (changes only made by programmatically called write-commands) you always know what level you are generating for each line. So from this point of view, a "control-reading" is not neccessary.

Norbert
Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 4 of 11
(4,495 Views)
Hi,

Sorry it is quite difficult to explain, its quite a complex project.

The problem is that all 6 leds will be on at the same time, each led is of a different colour and therefore wavelength. All the leds produce light of which some will be absorbed and some will be reflected, the amount reflected and absorbed depends on the wavelength of the light and the reference material. The photodiode will be picking up the light data that is reflected, but it is a combined signal of all the light from the leds.

I thought that by running the leds at different frequnecys it would be possible to seperate the photodiode signal based on the different leds and therefore find out how much light from each led is reflected.


Hope that explains it abit better,

Cheers
0 Kudos
Message 5 of 11
(4,491 Views)
tger003,

now i think we are getting somewhere 🙂
Let's see if i got your fixture correct: You want to analyze different materials by optical methods. Therefore, your "Unit Under Test" (UUT) is set on a fixture where you use 6 different LEDs to light the UUT. Somewhere (maybe behind the UUT or above it as the LEDs) you have some kind of photodiode to acquire the passed/reflected light. And now the question you are seeking an answer is: How do i know, which light is passed/reflected to which extend (%)?
Well, to answer this question, it mainly depends on the transducer you are using. a simple photodiode is in my opinion not able to solve the issue. Why that? A photodiode only detects intensity of light. furthermore, the diode itself has a "perfect" frequency where it "detects more intensity" as with other frequencies even if all frequencies HAVE THE SAME intensity. Another point is that you cannot differ the frequencies themselfs since you only got one value, "intensity of light", which is the sum of all light-frequencies lighting the diode.
So you have to change the setup:
a) Use optical filters. You can use filters which pass only one light from your LEDs and swithc them through during your measurement. You have to create some sort of scale for your light-intensity since the diode reacts differently on different frequencies.
b) Use some other transducers which are able to detect colors.

hope this time i got it correct 😉
Norbert
Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 6 of 11
(4,489 Views)
If you only turn on one LED at a time then the output of the photodetector will be the sum of the light from that LED and any stray light. If you pulse the individual LEDs and sample the photodetector synchronously (and sample at least once with no LEDs on to get the background illumination), you may be able to do the separation you want without optical filters or wavelength selective detectors.

Did you know that LEDs are in themselves wavelength slective detectors? Operate the LED as a photodiode and it will be most sensitive to wavelengths close to those it emits as an LED. It may not be quite as sensitive as an optimized photodiode.

Lynn
0 Kudos
Message 7 of 11
(4,474 Views)

You could simulate a lock-in amplifier if all of your 6 leds have known unique frequencies... and no overlapping harmonics. 

Take your analog signal measured and convolute it with a sinusoid with frequency equal to the one led that you want to measure.  This convolution should seperate out the component generated from one of the colored leds from the rest.

For instance, run your six leds at: (just an example) 480 Hz, 495, 510, 525, 545, and 560 Hz

Then take the analog signal from the photodiode (take a large portion of it, long time frame), and convolute it by a sinusoidal signal with known magnitude at 480Hz and this should give you the component from LED 1.  Do the same for the rest of the LEDs...  THOUGH, you need to know that you will have a lot of noise involved.  You may want to impose some bandpass filtering before the convolution so that you don't amplify that noise!  Take the rms value if you want a 'number' answer... 

Oh and you might want a highpass filter to remove any DC components you might have...  This is the way that devices such as Stanford Research Systems' SR850 Lock-In amplifier work.  I thought a while back that you'd be able to simulate such a device in labview with an analog input but never took the time to try it. 

I'm sure you can do it, seperate all 6 signals from one photodiode.  One caveat;  if the leds are really intense, you may want to pull back the power a bit so the photodiode has generous opportunity to generate carriers from all colors.  Also, keep the frequencies from the 6 LEDs as far away from 60 Hz and 120 Hz as possible to limit the contribution of line noise (assuming you're in the united states)... or institute a notch filter.

Lastly, you could just forego all of this and purchase a lock-in amp.  You can probably get an older SR830 for pretty cheap nowadays.

Message Edited by IEC on 09-05-2006 02:35 PM

0 Kudos
Message 8 of 11
(4,458 Views)
Thanks for your help everyone,

Ill try your suggestion IEC, I had thought it might be possible to do something like that but being relatively new to labview i couldnt quite figure out how to do it

Cheers
0 Kudos
Message 9 of 11
(4,452 Views)
I'm working on it now, it's proving to be a lot tougher than i had thought! Though, isn't everything! 🙂
0 Kudos
Message 10 of 11
(4,412 Views)