I'm trying to process an 1D signal containing a waveform of 100000 pixel. As it was acquired with a laser scanning system, and therefore it is corrupted by some annoying speckle noise. I tried to prefilter it with a well-known type of non-linear image processing filter such as Lee and Kuan filters, obviously modified for the 1D nature of the signal.
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2784081/ (see citation 5,7)
However, the resulting signal is identical to the result of a "naive" mean filter with the same support size (e.g. 15 px).
Is it an "expected" behaviour due to the 1D processing or am I probably writing wrong code? Can you link me some working code for these algorithms or some other speckle reducing ones? I found some source code on codeforge, but I think the Lee and Kuan algorithm are not correctly implemented.
Thank you very much in advance.
EDIT: added some images of the signal:
1) original
2) mean 1x15
3) mean 1x15 with superimposed kuan filter 1x15 with input parameters nm = 1.0 and nv = 0.1
4) mean 1x15 with superimposed kuan filter 1x15 with input parameters nm = 1.0 and nv = 0.2
5) mean 1x15 with superimposed kuan filter 1x15 with input parameters nm = 1.0 and nv = 0.3
We can see in 3,4,5 that there're no differences by mean and kuan: the mean signal is exactly coinciding with the kuan filter one.
Note that at the pixel 50569, where there is an exampe of the speckle I want to reduce, the local mean is 121.666 and local variance is 16.755. Therefore it can be found that an estimation of the noise variance is 0.13771, then I tried the parameters according to said observation. Further, note that at pixel 50652 the signal is lower and therefore de speckle effect is lower too. There, the local mean is 40.933 and local variance is 4.195 and the ratio is 0.102, therefore in the order of the ratio on an high peak.
Thank you again for your attention