# Is there anything called uncorrelated filter?

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.

• Can you clarify what do you mean by "decorrelate a signal"? Correlation involves two signals. Do you mean autocorrelation? – MBaz Oct 10 '17 at 1:49
• @MBaz Thank you for your interest. I added few lines. Hope it is clear now. – Creator Oct 10 '17 at 2:26
• A trivial answer is a filter whose output is 0 for any input... you'll need to place more restrictions on $y$. – MBaz Oct 10 '17 at 2:44
• You could do spectral whitening if your goal is to have a white signal. – Florent Oct 10 '17 at 16:54

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

• In my case 'n' is not simple as your example, ''n" is Gaussian noise. – Creator Oct 14 '17 at 22:16
• That works as well. I only used 4-QAM noise because it is easier to “de-scramble” and is a far more practical example of noise. Almost nobody will modulate their signal with actual white guassian noise because they usually need to get the original signal back—something best done with pseudo-noise – Keegs Oct 16 '17 at 3:14
• Additionally as I mentioned im my response, multiplying with 0 + j0 in a sample will create a result that is unable to be demodulated. True white gaussian noise has a mean of 0 + j0, making demod a real pain with such close values to that. – Keegs Oct 16 '17 at 4:08
• Well that's frankly not clear in your question. You say you want to "de-correlate" an input, which is not de-noising at all. In fact, what you are trying to do is quite the opposite. Decreasing the auto-correlation of a signal makes it more similar to noise. – Keegs Oct 17 '17 at 16:13
• LOL the above comment was for my other question.. and put it here. SORRY. I will delete the comment. – Creator Oct 17 '17 at 19:27