Removing frequency components and reconstruct time domain signal.
Started by 7 years ago●8 replies●latest reply 7 years ago●664 viewsI have attached the Power spectral density of my underwater noise data (Sampling rate = 500K/S/s). I calculated this PSD by applying welch's method on the time domain data. The PSD is flat for certain range of frequencies. I want to remove the frequencies (0 to 1kHz) and reconstruct the time domain data. I don't want to use any bandpass filter because it only attenuates the frequencies outside the passband. I want to remove the unwanted frequency components.
Please suggest the method or matlab code for doing this. Thanks in advance!
As a first experiment, run the filtering in the frequency domain. Overlap add, or overlap save etc..
Do 4096 point FFTs and kill the first 8 bins to have an effective cutoff of 976.6 Hz. Restore the results by doing an IFFT. Remember to kill the equivalent bins in the negative frequencies too, or you will have a complex output instead of real only.
From you plot, it looks like 976 Hz will kill all the low frequency noise. As you have pointed out, the dominant components are some power-line (mains) harmonics. If there is actually some value in some of the lower frequencies, but the mains noise is obscuring it then we can talk about specifically estimating and removing those components individually with some adaptive filtering techniques.
Are you willing to post some data, so we can tinker with it?
David
I would use notch filters for this. Your largest peak looks like it might require an adaptive notch filter. Search on these terms for details.
Most of the signal I could see in 0to 1kHz only.
If you remove that then only noise will remain.
Do you really want to do that?
Yes.
I want to analyse the high frequency noise only. Infact there is no signal in the psd. The peaks are due to various sound noise and 50Hz power line interferences.
So basically you want to remove certain range of frequencies without using any bandpass filter?
Yes. Because bandpass filter will attenuate frequencies in the spectrum. I want to remove them from the spectrum.
In means that, you would need an ideal bandpass filter which is impossible to design. However, you can design a bandpass filter with sharp cut-off and high attenuation in stopband (off course at the cost of order of the filter) to come closer to your requirement.