LimeSDR官方系列教程(四):To Pothos and Beyond
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
温馨提示:“开源SDR实验室”是北京的。
本文介绍Pothos相关基本使用方法。
目录
一、入门
二、GQRX/SDR Console
三、Pothos强大之处
1、白噪声
2、滤波器
四、本文小结
五、有用链接和联系方式
一、入门
到此,一般情况下您已成功安装了LimeSuite并且工作一切正常。如果您还没有,可能是安装Pothos以及GQRX或SDR Console的好时机(这两个软件不是仅有的可以使用的软件,任何通用接收器应用程序都可以使用LimeSDR)。
其次,我们还需要为LimeSDR准备一些其他的硬件,比如在收听FM广播时我们需要一个能够匹配FM频率的天线。 如果找不到合适的天线,也不要担心,长度约为75厘米的非屏蔽线和SMA连接器也可以充当临时的天线。
同样的,鉴于我们再次在需要经过许可的频段上进行实验,所以在实验过程中最好断开TX端口上的所有高增益天线。需要注意的是,尽管我们实验的频段在大多数欧洲国家/地区都获得了许可【这是翻译的原文】,所以现在在某些FM频段内使用nW功率级别的“MP3发射器”是合法的,因此从理论上讲,在法律范围内可以将LimeSDR作为FM发射器来使用。
二、GQRX/SDR Console
使用SDR设备并启动相关应用程序时,几乎都要像GQRX或SDR Console一样来调整一下SDR设备的一些设置。虽然我们不会在此介绍更详细的信息,但仍有一些关键事项需要说明一下。我们需要确认可以收听的无线电频道:在使用这些无线电应用程序时,这些无线电频道需要在您所在地区的VHF FM无线电波段附近搜索。在我们的这个实例中,我们发现90.9MHz上有一个强信号,即BBC Radio 3【这是本文国外作者的实际FM电台频率】。
SDR Console是Windows系统的独有应用程序,支持LimeSDR,并且支持硬件加速。除了设置正确的天线接收端口外,没有太多需要调整的地方。在FM接收实验中,由于我们需要的100MHz左右的FM信号,因此我们使用LNAL(低频段)RX1_L接收端口。有关这些频段以及要使用的LNA的相关说明,请参阅《LimeSDR官方系列教程(一):LimeSDR简介》。GQRX在“Input Controls”选项卡中具有上述类似功能的控件。
三、Pothos强大之处
如果您要继续,那么现在是玩这些应用程序并找到广播频道的好时机。是时候为我们使用的第一个应用程序进行预热了。与所有其他新事物一样,我们将首先使用FM收音机作为第一个程序。如果您想要一个好的示例而又不想自己做一个,Josh Blum为大家带了一个很好的示例。在开始之前,我们先介绍一下Pothos。Pothos是为SDR而定做的一个数据流编程软件套件。简而言之,该软件使用图形化的编程方法(类似于LabView),而不需要像LabWindows一样键入运行代码,这使得它的使用变得非常直观。因此,我们首先打开PothosGUI,然后通过“save as”来保存我们的程序。请注意到图片中的右边部分,这些是我们可以与之交互的一些控件,如图所示,我们添加一个“SDR source”控件,它位于“SDR”标签中。
双击该控件可以打开SDR Source的属性,并做如下更改:Device Args有几个选项,单击下拉框并选择LimeSDR。在“channels”中,我们安装实验需要选择LNAL,并设置为以Hz为单位的频率。频道频率需要与您的广播频道匹配。在图中我们设置的频率是90.9MHz或90900000Hz,您也可以使用工程符号,如90.9e6。
点击提交,再添加“Audio Sink”和“Freq Demod”控件。完成此操作后,单击“开始”按钮即可。切记先调低音量!
1、白噪声
听起来不像BBC Radio 3或者您选择的广播电台!好吧,这不足为奇,让我们看看目前的情况:
- LimeSDR以1M sample/s的速度输出原始I/Q数据。
- 默认增益和滤波设置。
- 频率解调器。这是一个软件FM解调器。
- 扬声器播放音频。
我们首先要检查的是当前是否有足够的增益。将SDR设备的“Gain”调高,需要调整的量取决于您的信号,一旦获得足够的增益,信号便会从白噪声变为数字式杂音,但仍然无法分辨。看看还有什么不对劲的地方,我们可以看到计算机正在扬声器上播放1M sample的数据…这可能无法正常工作,因此请降低采样率,最简单的方法是使用滤波器。添加“FIR filter”并打开属性,将“Decimation”改为35,将“Data Type”从Complex Float32改为Float32,因为在解调之后,我们不再拥有I/Q的基带将其连接到解调器和音频接收器之间。
此时,在该频段的某个频率应该可以听到一些广播的声音。为了使输入的数据可视化,我们还可以使用一个“频谱图”控件。
从频谱图中可以明显看出,我们并没有对滤波器进行设置,因此我们可以在输出端看到“超宽”的频谱,如图所示我们正在收听1MHz以上的频谱、噪声和所有噪声。
2、滤波器
手动设置FIR滤波器很“有趣”,而且软件中有一些控件可以为我们做到这一点,现在我们添加一个“FIR Designer”和“FIR Filter”,这些设备内部都有变量,因此在我们连接它们时会有所不同。对于FIR Designer,将上限频率设置为16KHz(16e3或16000),其余的默认设置就可以了。
FIR Filter无需作调整,使用默认设置即可。我们需要Complex Float 32,因为我们将同时过滤I和Q数据。接下来,连接过滤器的“0”(橙色)节点。一切都没有改变,此时白噪声与扬声器发出的音频混合在一起。因此,让我们添加一些节流器。将FIR Designer输出端拖到FIR Filter的主体上。这将打开“Connection”控制面板。在这里,我们可以设置FIR Designer输出的结果。单击左侧的“tapsChanged”,然后单击右侧的“setTaps”并提交。
我们经过滤波器以后的音频信号要好得多了,但是请稍等,听起来好像我们在听“蓝精灵”,声音听起来不太对劲。 好吧,我们承认刚才为您提供了错误的抽样设置,本应该是25;如果此设置不正确,输出信号将被频移。从中可以看出这是值得使用的控件,因为可以获得一些非常有趣的结果。
四、本文小结
我们实现了一个非常基本的FM收音机,可以添加用于调谐和控制增益的控件来进行改进,使用Filter Designer对“FIR Filter”的采样及其采样率/带宽的调整都会有所帮助 这个基本的应用程序应该足以在Pothos中入门,并希望能解释一下Josh的FM广播的工作原理。大多数SDR系统的基本构建块都是:Filter ->demodulator ->decimation。
五、有用链接和联系方式
淘宝店铺、QQ技术交流群、微信公众号、哔哩哔哩、CSDN联系方式如下:
LimeSDR官方系列教程(四):To Pothos and Beyond相关推荐
- docker 打包镜像_Spring Boot2 系列教程(四十一)部署 Spring Boot 到远程 Docker 容器
不知道各位小伙伴在生产环境都是怎么部署 Spring Boot 的,打成 jar 直接一键运行?打成 war 扔到 Tomcat 容器中运行?不过据松哥了解,容器化部署应该是目前的主流方案. 不同于传 ...
- 史上最详细的Android Studio系列教程四--Gradle基础
史上最详细的Android Studio系列教程四--Gradle基础 转载于:https://www.cnblogs.com/zhujiabin/p/5125917.html
- asp.NET自定义服务器控件内部细节系列教程四
如大家要转载,请保留本人的版权: /* *Description:asp.NET自定义服务器控件内部细节系列教程 *Auther:崇崇-天真的好蓝 *MSN:chongchong2008@msn.co ...
- Redis系列教程(四):Redis为什么是单线程、及高并发快的3大原因详解
Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快: 2.redis是单线程的,省去了很多上下文切换线程的时间: 3.redis使用多路复用技术,可以处理并发的连接.非阻塞 ...
- ClickHouse系列教程四:允许远程连接 allow remote access
ClickHouse系列教程: ClickHouse系列教程 先查看ClickHouse server端监听端口的状态: root@ubuntu:/var/lib/clickhouse/# lsof ...
- ASP .NET Core Web MVC系列教程四:添加模型
系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程三:添加视图 ...
- ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互 entity-framework(MySQL/MariaDB 版)
系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 系列教程代码的GitHub地址:ASP .Net Core Razor ...
- ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互(SqlServer 版)
系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客 上一个教程:ASP .NET Core 系列教程三:自动生成Razor ...
- ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云
向视图中添加服务 现在,ASP.NET MVC 6 支持注入类到视图中,和VC类不同的是,对类是公开的.非嵌套或非抽象并没有限制.在这个例子中,我们创建了一个简单的类,用于统计代办事件.已完成事件和平 ...
- QML官方系列教程——QML Applications
附网址:http://qt-project.org/doc/qt-5/qmlapplications.html 假设你对Qt的官方demo感兴趣,能够參考本博客的另一个系列Qt5官方demo解析集 每 ...
最新文章
- 一通骚操作,我把SQL执行效率提高了10000000倍!
- Python学习之字符串
- 【Groovy】集合遍历 ( 集合中有集合元素时调用 flatten 函数拉平集合元素 | 代码示例 )
- c语言错误指导,c语言编程指导.pdf
- nginx fastcgi python_Nginx + webpy 和FastCGI搭建webpy环境
- lucene计分公式详解
- Python学习笔记之几点代码格式要求
- sqlite+php+函数大全,Sqlite 常用函数 推荐
- 【区块链】以太坊truffle+web3+ganache简单实践
- 计算机图形学----投影矩阵
- 编程计算二叉树中某结点的层数
- 标准库函数begin和end的使用
- Python爬取实习僧职位信息
- oop部分,构造方法,this的使用。
- 计算机用户名怎么改好听,Win10如何修改电脑名字 Win10重命名电脑名称方法图解...
- 360P2建html网站,360P2刷机
- 数据分析与预处理常用的图和代码
- 几月份应该吃哪里的水果?
- 查看 Oracle中表的索引
- Cocos2d-x 4.0 + cpp + lua + Windows环境搭建