1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
function balayageIntercorrelation
t = [0:4096]; % de 0 à 1000 points
sig = sin(t/(2*pi)); % Original signal, a sine wave
% Signal servant à l'intercorrelation (sur 1024 points obligatoirement)
sig2 = zeros(1, 1024);
sig2(1,1:256)= 0.000075*sig(1,1:256);
% Signal à intercorreler (taille sans zero padding : 256 points obligatoirement)
sig3 = zeros(1,4096);
sig3(1,1100:1356)=sig(1,1100:1356);
% Boucle pour le premier segment (1 --> 1024)
% for N=1:1024:4096;
for i=1:1024;
if sig3(1,i) ~= 0
X = fft(sig2);% fft du signal de reference
Y = fft(sig3(1:1024));% fft du signal à intercorreler
end
end
% Boucle pour le deuxieme segment
for i=1025:2048;
if sig3(1,i) ~= 0
X = fft(sig2);% fft du signal de reference
Y = fft(sig3(1025:2048));% fft du signal à intercorreler
end
end
% Boucle pour le 3e segment
for i=2049:3072;
if sig3(1,i) ~= 0
X = fft(sig2);% fft du signal de reference
Y = fft(sig3(2049:3072));% fft du signal à intercorreler
end
end
% Boucle pour le 4e segment
for i=3073:4096;
if sig3(1,i) ~= 0
X = fft(sig2); % fft du signal de reference
Y = fft(sig3(3073:4096)); % fft du signal à intercorreler
end
end
% Calcul de l'intercorrelation
Z = real(ifft(conj(X).*Y));
subplot(2,4,1), plot(sig), title('sig')
subplot(2,4,2), plot(sig2), title('sig2')
subplot(2,4,3), plot(sig3), title('sig3')
subplot(2,4,7), plot(Z), title('fft') |
Partager