how to make a correct Signal correlator in Matlab

12 views (last 30 days)
I am making a signal correlator in Matlab.
It is necessary to find a small area with another signal in the input signal.
all signals are complex and modulated.
Signal Designation:
input signal - Basic signal.
the signals to be found are modUW_1, modUW_2, modUW_3, etc.
The input signal is the raw data from the ether, I and Q components of GMSK. Perhaps they need to be properly assembled for further processing. Link for signals
I find the correlation using the xcorr() function
[C1, lag1] = xcorr (basicSignal, modUW_1);
basicSignal - I read from the file.
modUW_1 - I prepare by myself:
binData1 = [0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1];
burst = diff_enc(binData1);% DIFFERENTIAL ENCODING.
[I,Q] = gmsk_mod(burst,Tb,OSR,BT);% GMSK MODULATION OF BURST SEQUENCE
modUW_1 = I .* cos(2*pi*f0 * t) - 1i * Q .* sin(2*pi*f0 * t);
The problem is that no matter what I take the modUW signal, the result of the xcorr() function is about the same: it breaks the input signal in the places where it is and that's it. See picture.
But the correct result of the correlation should give a surge in the place where the signals are as similar as possible.
How to get it?

Answers (0)

Products


Release

R2015b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!