LimeSDR mini实现GPS信号接收

作者微信公众号:小卫星

操作系统: Ubuntu18.04 LTS

0、起因

LimeSDRmini既然包含了GPS频段(L1 1575.42MHz),那就应该能接收GPS信号并定位,但是纵观网络,讲SDR模拟GPS欺骗的多,接收的少。为什么呢?我认为有两点:

(1)GPS信号到地功率弱,基本上在-158dBW左右,比噪声还低,一般射频前端做的差一点点,就什么信号也收不到。

(2)与本地SDR晶振的稳定度和准确度有关,在信号下变频的混频过程中,事实上是将本地晶振频率倍至与1575.42MHz相当的一个频率作为混频本振,此时本地晶振的误差全部放大进入信号中,导致多普勒频率大幅增加,如果本地晶振很差,软件很难搜索和跟踪。

目前,在网上有两个地方讨论了LimeSDR接收GPS,一个是Lime microsystem官方人员做的:

http://v.youku.com/v_show/id_XMTY2NDU3Nzg5Ng==.html?spm=a2h0k.11417342.soresults.dtitle

这个里面讲了基本的原理,但是没有代码、方法也比较粗略,但是仍然很有指导意义,建议想做这方面的人看看。(Danny的英语很标准,大家不妨多听几遍,舒克贝塔008做了翻译,很准确,赞一个)。

另一个是MYRIAD RF官方上的讨论

https://discourse.myriadrf.org/t/running-your-limesdr-on-gnss-sdr-on-ubuntu-17-10/2315

该栏目的发起者martywittrock是个高手,且乐于助人,不仅将自己开发的过程记录下来,还热情指导其他研究人员。

好了,不多说,开始我们的表演吧

1、准备硬件

(1)弄一块limesdr mini

当然得先买一块limesdr mini,怎么买略去不表。

(2)弄一块馈电小板

这个东西是给有源天线供电之用,二三十元一个,淘宝有卖。找根线给它供电。

(3)弄一块天线

这个也是几十元一个,淘宝有卖。

(4)找根SMA线把它们连起来

2、安装Ubuntu18.04 LTS

(1)下载iso镜像

https://www.ubuntu.com/download/desktop

(2)安装镜像至u盘

建议使用Rufus,相比其他Universal-USB-Installer之类速度快的多(毕竟我们的u盘快不到哪里去)。

http://www.softpedia.com/get/System/Boot-Manager-Disk/Rufus.shtml

(3)安装后确认版本

(4)确认python版本

可以看到python安装了两个版本,一个是2.7,一个是3.6,这有利于我们使用,因为gnuradio是2.7的。

3、安装lime驱动

Lime驱动其实有两个,一个是LimeSuite的官方驱动,一个是Soapysdr第三方驱动,都要安装。

(1)PPA,Personal Package Archive(个人软件包存档),是默认情况下并未被包含在Ubuntu中的软件的一个集合,通过其安装myriadrf的官方驱动。

sudo add-apt-repository -yppa:myriadrf/drivers

(2)更新

sudo apt-get update

(3)安装limesuite驱动

sudo apt-get install limesuiteliblimesuite-dev limesuite-udev limesuite-images

我装wps,没装成功,这条语句的执行结果变成这样了:

(4)安装soapysdr驱动

sudo apt-get install soapysdrsoapysdr-module-lms7

(5)测试驱动是否正常

SoapySDRUtil --find

LimeUtil --find

插入LimeSDR mini时

这里有时候media是2.0,有时候是3.0,建议如果是2.0再插拔下试试。

4、安装并运行gnss-sdr

gnss-sdrv0.0.9是一个开源GNSS软件定义接收机,从代码看目前能接收GPS L1 C/A信号和Galileo E1B、E1C信号,两类信号中心频点都在1575.42MHz,但是带宽不同。

(1)安装gnss-sdr

sudo apt-get install gnss-sdr

(2)编辑limesdr_GPS_L1.conf文件

按照

https://gnss-sdr.org/conf/

指示将 hackrf_GPS_L1.conf 另存为limesdr_GPS_L1.conf,并修改其中的

;#Next line enables the internal HackRF One bias (3.3 VDC)

SignalSource.osmosdr_args=hackrf,bias=1

;#Next line enables the LimeSDR

SignalSource.osmosdr_args=driver=lime,soapy=0

(3)插入limesdr mini,执行接收机软件

gnss-sdr --config_file=limesdr_GPS_L1.conf

可见,并没有搜到信号,将天线伸出窗外

有两颗星可以看见,所有的测量量都被写入文件保存。

5、总结

(1)gnss-sdr源代码编写者水平很高,有软件工程的思维,利用了C++很多新东西,但是代码不能直接在Windows编译,阅读难度较高。

源代码链接

https://github.com/gnss-sdr/gnss-sdr

(2)本人是将天线粘在棍子上伸到窗外的,24层(总楼高33层),附近遮挡确实比较严重,但是仅有两颗星收到,有点遗憾,不太应该。分析可能与该天线有关,天线带宽较宽,采样率低,信号混叠可能比较严重,下一步提高采样率,改变滤波器参数再试。

(3)下一步的工作是收Galileo信号,如果顺利,继续阅读代码,修改源码,添加北斗信号捕获跟踪。

以下为后来补充:

(4)carlesfernandez  实施上添加了专门针对LimeSDR的配置文件,在这里:

https://github.com/carlesfernandez/gnss-sdr/blob/next/conf/gnss-sdr_GPS_L1_LimeSDR.conf

目录为:gnss-sdr/conf/gnss-sdr_GPS_L1_LimeSDR.conf,大家可以直接使用,但是要在编译前使用

git checkout next

转到next分支,next分支有很多重大的变化,main函数就有体现,直接可以看出来。

LimeSDR mini实现GPS信号接收相关推荐

  1. 北斗三号频点_中国北斗三号与GPS公用频点的实时信号接收方法与流程

    本发明涉及导航定位的信号接收技术领域,尤其涉及中国北斗三号与GPS公用频点的实时信号接收方法. 背景技术: 北斗三号卫星导航系统空间段由27颗中地球轨道卫星.5颗同步轨道卫星.3颗倾斜同步轨道卫星组成 ...

  2. 软件无线电zedboard+fmcomms2实现GPS信号模拟和接收

    这个实现使用了多种软硬件平台,包括MATLAB.QTcreator等.发射通道是在Ubuntu虚拟机使用QTcreator编译代码控制的,接收通道在window下利用MATLAB实现的,整个下来花了两 ...

  3. LimeSDR Mini 安装教程

    本店铺官方淘宝店:舒克贝塔008 LimeSDR Mini购买链接: https://item.taobao.com/item.htm?spm=a230r.1.14.21.63274492pzPpzm ...

  4. LimeSDR实验教程(15) Lattepanda + LimeSDR Mini转接板

    最近做portapack教程,感觉反响不错,Portapack的优点是可以脱离电脑使用,具有很高的便携性.同样的功能在portapack上运行比在电脑上运行感觉实用了不少,我早期也是被portapac ...

  5. LimeSDR GFSK GNURadio发射与接收

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 本文程序来自LimeSDR gr-limesdr自带的example中的GFSK发射与接收GRC程序. GFSK(Gauss frequen ...

  6. 伪造GPS信号就能把无人车带沟里?百度Apollo工程师实验证明:自动驾驶没那么好骗...

    鱼羊 编辑整理 量子位 报道 | 公众号 QbitAI 人在亦庄,手机却定位到了东北旺? 可能不是你的手机出了问题,而是遇到了GPS信号欺骗. 那么,问题来了: 全靠传感器的自动驾驶系统,要是遇上了伪 ...

  7. 大话卫星导航中的信号处理系列文章——GPS信号L1频点的中频数据生成与验证

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 大话卫星导航中的信号处理系列文章--GPS信号L1频点的中频数据生成与验证 需求 扩频码的生成 其他 验证 需求 这篇文章,主要记录我 ...

  8. matlab gps信号,gps信号和其干扰的matlab仿真

    gps信号和其干扰的matlab仿真 a竹技2011年第24卷第5期 Electronic Sci.&Tech./May.15.201 1 GPS信号和其干扰的Matlab仿真 马 茹 ,胡建 ...

  9. 【GPS仿真】基于matlab GPS信号捕获跟踪定位仿真【含Matlab源码 1960期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GPS仿真]基于matlab GPS信号捕获跟踪定位仿真[含Matlab源码 1960期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

最新文章

  1. java 怎么打印变量
  2. 李宏毅深度学习——逻辑回归
  3. MyBatisPlus的ActiveRecord(活动记录)简介以及怎样使用
  4. P6329-[模板]点分树 | 震波
  5. python3中的 input函数_Python3中的input函数
  6. 控制台怎么查看错误的详细信息_js错误处理,quot;try..catchquot;
  7. 回复《论WEB标准专家》。
  8. 菜谱系列:蒜香炸鸡翅
  9. 阿里云:我们为全面服务政企市场做好了准备!
  10. 知了课堂 python_知了课堂 Python Flask零基础 笔记整理
  11. ASP编程实现各家快递公司订单状态查询
  12. matlab计算一组数的函数值_「数学建模」MATLAB的数值计算
  13. RTT笔记-分析自动初始化机制
  14. df.to_csv输出结果隔行多一个空行的解决办法
  15. 用java做考试管理系统,考试管理系统的开发实现(Java+Web)
  16. 邯郸云计算中心正式开通运营
  17. 碎石生产线在丽江市的生产厂家在哪里
  18. microsoftvisual c++ runtime library错误
  19. JavaScript数组属性和方法
  20. 怎么隐藏服务器真实IP地址?

热门文章

  1. python分别统计男女人数_python实现爬虫统计学校BBS男女比例(一),python男女比例...
  2. 杭州创思已采用RFID仓库管理系统,苏州新导智能的应用
  3. warning: #546-D: transfer of control bypasses initialization
  4. 君正主控CPU芯片,X2000多场景应用案例
  5. 藏身于stdio.h中的size_t
  6. Xming + SecureCRT 在Windows下远程Linux主机的X11图形转发
  7. [ pikachu ] 靶场通关之 XSS (一) --- 概述
  8. C++学习笔记(一) 基础语法 —参考阿发你好
  9. 前端页面更新,解决浏览器缓存不更新问题
  10. 【供应链 销售管理】业务单据:“销售订单”业务操作-“[销售订单-TYXXXSDD003866-修改]”冲突,请稍候再使用。