svnum = 1;
%
% 并行频率捕获
% 郑州
% YI Weiyong
% 25/06/2008
% ***** initial conditions *****
load signal.mat
x=double(data');
fs=11.999e6; % sampling freq
ts=1/fs; % sampling time
n=fs/1000; % data pt in l ms
nn=[0:n-1]; % total no. of pts
fc0=3.563e6; % center freq without Doppler
% ***** Reads code with 1024 different phases
filename=sprintf('prn%i.mat',svnum);
load(filename);
code=double(code);
samplesPerChip = floor(length(code)/1023);
sampleLength = length(x);
result = zeros(1023,sampleLength);
% ***** 并行频率捕获 *****
for i=1:1023
y =code(i,:);
IQ =fft(y.*x);
result(i,:)=abs(IQ);
end
[peak codephase]=max(max(result));
[peak frequency]=max(max(result'));
%frequency = fc(frequency);
figure(1)
x_axis=1:1023;
y_axis=(0:sampleLength-1)*fs/sampleLength;
s=surf(x_axis, y_axis, result);
set(s,'EdgeColor','none','Facecolor','interp');
axis([min(x_axis) max(x_axis) min(y_axis) max(y_axis) min(min(result)) max(max(result))]);
caxis([0 max(max(result))]);
xlabel('Code Phase [chips]');
ylabel('Frequency [MHz]');
zlabel('Magnitude');
text=sprintf('SVN %i',svnum);
title(text);