GNSS信号捕获(1)
摘要:一行matlab代码实现GNSS信号的捕获。
1. 结论
GNSS信号捕获的原理是扩频序列的自(互)相关性质,利用傅立叶变换可以快速计算两个序列的循环相关值,从而实现GNSS信号的捕获。
% input - 输入中频序列
% repCode - 本地码序列
% repCarr - 本地载波序列
X = fft(repCode .* repCarr);
X = [X(1), X(end:-1:2)]; % X(-k)
r = abs(ifft(fft(input) .* X);
或者:
r = abs(ifft(fft(input.*repCarr) .* conj(fft(repCode)));
2. 原理
上述代码利用了卷积定理:函数卷积的傅立叶变换是函数傅立叶变换的卷积。下面是简单的推导证明,循环相关公式如下:
r(m)=∑n=0N−1x(n)y(n+m)(1.1)
两边做傅立叶变换(DFT):
R(k)