From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Using a signal envelope to amplitude-modulate white noise - how to generate clean output?

Hi everyone,

A brief overview of the project: we first extract the envelope of a rapidly-varying voltage signal (collected with an oscilloscope), and then use this envelope to modulate a white noise carrier. Our voltage signal is the output from a cochlear implant (CI), which represents what the implant is "hearing". We're essentially filtering an audio file through a cochlear implant. Our goal is to produce an output audio file which sounds recognisably like the input audio.

I've tested my VI with simple amplitude-modulated sine waves, rather than the CI output. It seems to work OK under these conditions - the envelope extraction via hilbert transform seems fine, and the output (envelope x white noise) audibly oscillates at the correct frequency. Here are some pretty graphs:
Top is the extracted envelope, middle is the outputTop is the extracted envelope, middle is the output
The problem is that the output from this simple sine wave is, as you can see, a bit noisy. It sounds OK - it does clearly oscillate at the correct frequency - but when I try this with a more complex input waveform (such as the output from our CI) the noise overwhelms the signal entirely.

I'm not great at labview and my understanding of signal processing is atrocious, so I apologise if I'm making some basic technical or conceptual errors. If you have any advice or feedback it would be deeply appreciated. I've attached my VI below.

Many thanks,
Aaron

0 Kudos
Message 1 of 4
(3,668 Views)

You are running into the statistical variations in the envelope of the white noise. You may be able to decrease this by increasing the frequency of the white noise generation. But, why are you using white noise for your carrier? Why are you using the particular sampling information for the white noise? This would probably work a lot better with a sine wave carrier at 10X to 50X the highest frequency you wish to transmit. Your scheme is pretty standard AM modulation, although your decoding is not.

 

Another option is to use pink noise instead of white noise, and set the lowest frequency of the pink noise above the highest frequency you want to detect.

the entity formerly known as DFGray
0 Kudos
Message 2 of 4
(3,639 Views)

Thank you very much for the reply. 

I certainly agree that using a sine wave would be easier! We're using white noise for theoretical reasons which I didn't really want to get into, but I'll briefly explain now.

We have a plastic model of a human cochlea, with wires coming out of it, into which we're placing the cochlear implant. The wires represent neurons (spiral gangia to be precise), and we record our voltage signals from these wires. Each wire corresponds to a position on the cochlea, and because the cochlea has a frequency/place mapping, each wire therefore corresponds to a certain frequency. We band-pass the white noise carrier, with the filter centred on the frequency appropriate for the wire that we're recording from. 

TL;DR - we need to use band-passed white noise for biological validity. Obviously if we band-pass a high-frequency sine wave, we can't really use it as a carrier any more! 

So do you think we're running into a fundamental limitation of using white noise in this manner? What would be the best way to increase the frequency of the white noise? Just play around with the sampling info?

I will spend a bit of time looking into the viability of using pink noise as you suggested; thanks for the advice.

0 Kudos
Message 3 of 4
(3,620 Views)

Been thinking about this... You may want to try uniform white noise rather than Gaussian. Not sure how biological this is, but it may give you better results. Pink noise may help, also, since it is equal energy per octave vs. white noise being equal energy per frequency interval. Once you band pass either, the effect of running the generator at a higher frequency will be removed. However, you should be running the frequency of your noise generator at least twice, and preferable four times, higher than your upper band pass frequency to ensure the signal is a bandpass version of white. For example, if you generate at 2kHz and your high pass is 4kHz, you essentially do nothing. On the other hand, if you generate at 8kHz and high pass is 2kHz, you will remove the higher frequency content.

 

Hopefully this random collection of thoughts helps a little.

the entity formerly known as DFGray
0 Kudos
Message 4 of 4
(3,606 Views)