Signal Noise Profile Removal
14 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi everyone,
I have a problem which seemed simple enough to me at first but which is turning into a bit of a nightmare.
Basically, I have a signal AND a noise profile. The noise is essentially machine background noise. I'd like to subtract the known noise from the rest of the signal.
I have looked into Spectrum Subtraction and functions such as Boll/Berouti/Multiband Spectra Subtraction and papers but the results I have obtained are dubious. I compared these to what can be obtained using Audacity's noise profile remover. A comparison of the resulting spectrograms is below.
Base Signal and Noise Profile
The noise to be removed is highlited here in red.
The spectrogram seen from above.
Spectra Subtraction
As you can see, the spectra subtraction method does reduce the power of the noise section you point to, but it also introduces a lot of artefacts in the signal seen below in red.
Audacity Noise Profile Removal
Here, while the scale is obviously different, you can see how much different the removal method is in Audacity compared to the spectra subtraction function.
In terms of standard denoising, I have looked into Wavelet denoising but it doesn't seem to be what I'm looking for, as it doesn't work based on a profile and, as my core data isn't a smooth signal but rather something which many would consider as noise, I cannot risk losing data to a smotthing-based noise removal algorithm.
0 Commenti
Risposte (1)
Aditya Srikar
il 30 Mar 2023
Hi Dennis
MATLAB provides a wide range of functions as part of the Signal Processing Toolbox that can help you remove the noise. One of the easier functions to start with could be fir1 which allows you to design filters based on the different parameter details that you provide. You may use the function filter to apply the filter you created to the signal of your choice. Refer to this link for the necessary documentation –
As an addition, consider using the Filter Designer App in MATLAB. The documentation is at –
This detailed article contains multiple examples of filtering signals –
Hope it helps
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!