I understand to an extent various filter like low pass filter, high pass filer, Wiener filter Kalman filter etc. I also understand some of this filter will decorrelate/uncorrelate the signal. The question is: is there any filter which does nothing but uncorrelated a signal? What I mean by decorrelate is the following. Consider $x$ is the signal and we apply a filter $w$ to $x$, after the operation we get say $y$ now, I want $y$ to have zero auto-correlation for say $n$ number of samples, preserving the edges as surely those would form correlated section. An obvious answer (as pointed out in comment) of 0 as $w$ is not considered interesting.
I do not know if you are referring to a Whitening filter (check this). A Whitening filter can be viewed as a tool converting the correlated sequence into a white sequence. The application of this can be found in Wiener filter and speech compression. For example, in speech compression, the speech signals are highly correlated, which means they are highly redundant. Whitening them by converting them into white sequences (No redundancy) can reduce the complexity to compress the speech.
No filter I know of will accomplish this reduction in autocorrelation without sacrificing major signal components. If you want something to go from having significant autocorrelation (for k~=0 obviously) to very little and still be actually useful somewhere else, perhaps one possibility would be doing Direct Sequence Spread Spectrum modulation (basically a very fast PSK/QAM signal that uses a pseudo-noise source). This increases the bandwidth of the signal to the point it resembles noise to anybody without the appropriate PN sequence.
Here is an example using 4-QAM pseudo-noise on a slow sine wave
x=exp(j.*pi./16.*(1:4096))'; % Narrowband sinusoid n=1.*(2.*round(rand(4096,1))+2.*j.*round(rand(4096,1))-(1+j))./sqrt(2); % 4-QAM PN signal y=n.*x; % modulate x using pseudo-noise autocorr_n=conv(n,conj(flip(n)))'; % get autocorrelation functions of each autocorr_x=conv(x,conj(flip(x)))'; autocorr_y=conv(y,conj(flip(y)))'; plot(1:8191,abs(autocorr_n),1:8191,abs(autocorr_x),1:8191,abs(autocorr_y)); z=y./n; % demonstrate you can convert back (only if n has NO ZEROS!!!) MSE=mean(abs(z-x).^2) % Mean Squared Error
The large triangle is our sinusoid signal you want to "de-correlate". The two extremely low traces likely overlapping one another are the pseudo-noise and your modulated signal. The Mean Squared Error also proves that the differences between the original signal and the decorrelated signal once its been descrambled are minimal.
Only downside to this technique is that the noise source must never hit 0 + j0 otherwise there will be no way to extract the original data (you multiplied by zero so the encoded info could mean anything).
Let me know if this helps