Removing isolated high amplitude noise from array
이전 댓글 표시
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
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Multirate Signal Processing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!