Filter löschen
Filter löschen

Convenient way to filter sinusoidal noise from decay data?

19 Ansichten (letzte 30 Tage)
Gregory Manoukian
Gregory Manoukian am 31 Jan. 2023
I have decay data (approximated by exp decay) from my spectrometer which is corrupted by sinusoidal noise, presumably from the moving components in scans.
I'd like to filter out the frequency of the noise, leaving behind the decay only (image, all data before time zero is zero)
I've tried multiple ways with no success, FFT->frequency spectrum-> remove noise frequencies ->iFFT, or fitting data to exponential*sine->deconv(data,sine)/ perhaps something went wrong with those methods? for example my deconv command only returned one point from 2 even arrays.
Could someone suggest a method to remove sinusoidal noise from my decay curve?
  2 Kommentare
Bruno Luong
Bruno Luong am 31 Jan. 2023
Bearbeitet: Bruno Luong am 31 Jan. 2023
Just redo your experiment again. It is not clear how you can be sure the fitting could possibly give meaningful result back with such corrupted data.
Gregory Manoukian
Gregory Manoukian am 31 Jan. 2023
The experiment is consistent, my signal is quite small, and the lower the signal the more clear this sinusoidal trend is. It is the same problem with all of the data for this sample set.
Is it possible to remove the noise? If the filtered data is unusable, I will show that, I just need to try.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Image Analyst
Image Analyst am 31 Jan. 2023
Why not just leave the data as they are and fit an exponential decay to the whole thing? See attached demo.
  3 Kommentare
Image Analyst
Image Analyst am 31 Jan. 2023
I don't know how you are collecting your signal with periodic noise on it, but maybe you should consider a lock-in amplifier.
If you take the FFT, you might see a spike right at the frequency of the noise that is being injected into your time domain signal. Then set those frequencies to zero and inverse transform. A 2-D image version is in the attached demo.
Gregory Manoukian
Gregory Manoukian am 6 Feb. 2023
This data is taken through a SR580 lock-in amplifier. the noise presumably comes from the moving components (a screw motor pushing a mirror), and so for the lock-in, looks like more or less signal coming through at each full rotation of the motor.
When I follow this approach, my issue comes in reconstituing the complex array which to ifft. I had identified the peaks and set them to zero in both, but was unable to ifft the data.

Melden Sie sich an, um zu kommentieren.

Star Strider
Star Strider am 31 Jan. 2023
If you want to use a frequency-selective filter, first do a fft of the data to determine the frequency components, then use the lowpass filter (with the 'ImpulseResponse','iir' name-value pair for best results) to eliminate the high-frequency (sinusoidal) noise. (The lowpass filter function requires the Signal Processing Toolbox.)




Community Treasure Hunt

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

Start Hunting!

Translated by