热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LimeSDR中文教程(四)

现在我们来继续看LimeSDR的有关知识。这是第四篇文章,尽管这是我们实际操作的第二个联系,但是它还是与前面的所有文章都有关系,如果你没有

现在我们来继续看LimeSDR的有关知识。这是第四篇文章,尽管这是我们实际操作的第二个联系,但是它还是与前面的所有文章都有关系,如果你没有看前三篇文章,我推荐你看一下。

 

上一篇文章我们看了self_test.ini,把这个例子里大多数有关内容都讲了。这次我们会使用之前学到的知识来提高信号质量,并创建我们第一个应用。

 

开始

到这里,我们假设LimeSuite已经在你电脑上装好了,并且运行正常。

 

如果你没有装好,你可以去装一下Pothos,同时装好GQRX或者SDR Console(你不是一定要装这个两个程序,其它类型的接收机程序也可以)。

 

然后我们还需要一些额外的硬件,比如FM天线。如果没有也不要紧,你可以用一根75cm长的没有屏蔽的导线接在SMA头上就行。

 

还有,我们现在的工作频率还是需要许可的,因此记得发射端不要接高增益天线。值得指出的是,现在大多数欧洲国家可以合法得使用MP3发射机来发射FM频段、nW级别的信号,所以说理论上你可以用LimeSDR来发射这种信号,但是最好还是不要冒险。

 

GQRX/SDR Console

 

大多数人第一次用SDR都会使用GQRX或者SDR Console。我们不会讲太多小细节,但是还会讲几个注意事项。除此之外,我们还需要用这个程序确认我们能在哪个频点收到广播信号,这样我们后期就可以在别的程序中调谐到这个信号。你可以使用这两个程序来找VHF频段的FM广播。在我们这里,BBC 3频道的信号最强,频率是90.9MHz。

 

SDR Console只支持Windows,它支持LimeSDR,并且支持硬件加速功能。没有太多地方要设置,你只要设置正确的接收通道就行。在这里我们使用的是LNAL(低频率通道)RX1_L,因为我们找的信号在100MHz附近。你可以看看第一篇文章,你就知道怎么接线了。

 

GQRX的输入控制页面的设置方式也是类似的。通过前几篇文章你应该能过自己做设置了。

 

 

 

 

 

 

Pothos的强大之处

 

如果你要按着我的教程做,那你现在最好先在前面说到的程序里找到一个合适的广播频率。找到后你就可以开始写我们的第一个程序了。大多数情况下,第一步都会写一个FM接收机。如果你想直接下载一个可以运行的程序,你可以下载Josh Blum写的。

 

但是在开始之前,我还要介绍一下Pothos。Pothos是一个用于SDR的基于数据流的编程环境。简单来说,你可以用绘制流图的方式来编程,而不需要输入代码,这样使用就很方便。我们可以打开PothosGUI,然后把新应用另存为你喜欢的名字。

 

右侧是可选模块。这些模块我们会使用到,我们先要添加一个SDR Source,在SDR下面里。注意source是信源,它只有输出,sink是信宿,只有输入。

 

 

双击这个模块,打开SDR Source的属性,把它们改为如下设置。注意:

Device Args,有很多参数,你只要直接点下拉框,然后选择你的LimeSDR就可以。

在channels选项卡中里,你需要选择LNAL,并且把你要听的广播的频率以Hz的形式输入。比如,我们现在要听90.9MHz就要写作90900000Hz,你也可以写作90.9e6。

 

 

 

点击commit,并加入2个模块,分别是Audio sink和Freq Demod。这些都做好后,点击go按钮。记得把音量调低。

 

白噪声

你现在听到的应该只是噪声。这很正常,我们来看看我们目前做了什么:

一个SDR设备(LimeSDR)输出IQ信号 采样率1MSps/s

我们设置了默认的增益和滤波器

一个频率解调器。这是软件实现的FM解调器

一个播放声音的模块

 

首先我们要检查是否有足够的增益,我们可以先调整SDR的增益,调高点。要调到多高取决于你的信号强度。一旦达到足够增益后,信号会从白噪声,变成一个奇怪的声音,这个声音还是听不清在说什么。

 

再看看哪里有问题,我们可以发现我们直接给喇叭输出了1MSps/s的采样率,这是不对的,我们需要降采样。最简单的方法是使用一个滤波器(但是不做滤波)。添加FIR filter,然后找到Decimation属性,改为35,把Data Type从Complex Float32改为Float32。这是因为解调后我们的信号就不是IQ信号了,把这个模块接到解调模块和音频信宿模块中间。

 

到目前为止,你应该能从噪声中听到一些音频了!如果你要看一下数据,可以用spectrogram。和很多Pothos模块意义,它有widget,别忘了把它加入graph widget。

 

 

 

从spectrogram,我们可以清晰得看到没有设置好滤波器,这样我们可以看到一个很宽的频段,相当于我们在听1MHz带宽的信号,把噪声也收下来了。

 

是时候做一些滤波了

尽管手动设计FIR滤波器很有趣,但是有控件可以帮我自动完成设计。我们现在加入FIR Designer和FIR Filter。这些控件内部有变量,连起来后会有些不同,所以暂时先别连起来。

 

在FIR Designer属性里,把频率上限设置为16kHz(16e3或者16000),剩下的设置都用默认的。

 

FIR Filter模块不需要修改,直接用就可以。我们这里用的是Complex Float32,因为我们会输入IQ信号给滤波器。

 

把滤波器的0口(橘黄色)接好。什么都不会变化,还是会有噪声和音频一起输出到喇叭上。现在我们加入一些taps。把FIR Designer输出拖到FIR Filter上,这样就会出现Connection控制面板,在里面我可以看到FIR Designer的输出。点击左侧的tapsChanged,然后点右侧的setTaps,最后点commit。

 

这样我们听到的音频信号更好了。但是等一下,好像我们听到的声音像是蓝精灵的在说话。声音还是有问题。这是因为我们前面告诉你的decimation设置是错的,应该是25。如果这个设置不对,输出的音频频率会变化。你可以玩一下这个参数,听上去的声音会很有趣。

 

 

最后

我们现在有了一个非常简单的FM接收机了。你还可以加入一些调谐频率和增益的控制。在用于降采样的FIR滤波器上再加入一个filter designer,也会提高音频质量,还有采样率和带宽也可以调整。这个简单的应用可以帮助你学会使用pothos,你还可以通过这个学懂Josh写的FM程序。这些模块是大多数SDR系统的组成部分:滤波器->解调器->降采样。

 

我们的教程的理论知识都比较少。我们以后会通过一些实用的例子讲一些理论,这样就更能发挥出LimeSDR的潜力。

 


推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
author-avatar
v56158645
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有