GNSS信号捕获(1)
来源:互联网 发布:淘宝买的袖剑能杀人吗 编辑:程序博客网 时间:2024/06/08 18:23
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)=∑m=0N−1∑n=0N−1x(n)y(n+m)exp(−j2πNmk)=∑n=0N−1x(n)[∑m=0N−1y(n+m)exp(−j2πN(n+m)k)]exp(j2πNnk)=Y(k)∑n=0N−1x(n)exp(j2πNnk)=Y(k)X(−k)(1.2)
所以有:
r(n)=ifft[Y(k)X(−k)](1.3)
特别的,当
r(n)=ifft[Y(k)X∗(k)](1.4)
3. 其他
在实际的捕获时,还要考虑载波的影响。当采用先载波剥离,后码剥离的捕获方式时,可采用公式(1.4)。而当采用载波和码同时剥离的捕获方式时,必须使用标准的公式(1.3)(原因在第2节),如下图所示:
值得注意的是,当使用载波和码同时剥离的捕获方式时,如果使用公式(1.4)是得不到结果的,如下图:
0 0
- GNSS信号捕获(1)
- GNSS信号体制总结
- GNSS
- 第5章 脚本控制------------------------(处理信号、常用信号、捕获信号、移除捕获)
- bash中的信号捕获
- linux c捕获信号
- linux信号捕获相关
- 信号的捕获与发送
- java程序捕获kill信号
- shell中trap捕获信号
- java程序捕获kill信号
- linux shell中捕获信号
- shell中trap捕获信号
- 信号的捕获和处理
- 信号(1)不可靠信号
- GNSS系统
- 信号捕获之pause函数和竟态条件(mysleep)
- Linux signals(一)理论、C语言捕获信号并处理
- 用MARKDOWN编写数学公式的尝试
- Remove Duplicates from Sorted Array
- STM32学习笔记之地址 (*(volatile unsigned int *)(x))分析
- 明明的随机数
- 前端面试题
- GNSS信号捕获(1)
- C#编码规范
- 地质年代
- Java annotation详解
- c# - 反序列化报错:Input string was not in a correct format
- 自拟三子棋小游戏
- 生产者消费者问题(代码实现)
- Object类-----简单描述
- 解决studio导入eclipse乱码问题