Removing isolated high amplitude noise from array
Mostrar comentarios más antiguos
I have an array of sound speed, SS, with noise in it. The noise can be seen as a blurred patch between -0.04 and -0.07 on the y axis, across the whole profile (Additionally there is a thinner band at ~ -0.1 s).

I would like to remove the noise without affecting signal.
The noise appears quite clearly in second derivatives (called FXX and FYY in code below).

I have tried several noise removal methods, with limited success - not helped by a lack of signal processing knowledge. Currently I am using the second derivative with respect to x (FXX, distance, km) to simply replace values over a threshold with an average.
[FX,FY] = gradient(SS);
[FXy,FYY] = gradient(FY);
[FXX,FYx] = gradient(FX);
for i=1:nx
for j=1:ny2
if abs(FXX(j,i))>3;
SS(j,i)=average_SS_val_for_noisy_region;
end
end
end
This is not working very well as you can see below

Could someone please help me sort out an effective way to filter out the noise?
File attached for better viewing
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Multirate Signal Processing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!