使用RTL-SDR和Matlab Simulink玩转软件无线电(十七)

2023-12-12 06:58

本文主要是介绍使用RTL-SDR和Matlab Simulink玩转软件无线电(十七),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3.9.4 寻找你手机的频率

观察你身边的移动信号频谱很有趣,但是观察你自己手机的发射和接收频率更有趣。为了做到这一点。你需要找到你手机当前的工作频率。手机的频率会变好,你可能注意到你的手机会自动变更信号标准,根据区域不同会选择使用不同种类的信号。你的手机可以在信号种类不变的情况下更改信号频率,这取决于你那里的用户数量和连接需求。


为了找到你手机的频率,你必须打开工程模式,这样你才能看到详细信息。这些设置在大多数手机上都有,还会提供当前信号强度(dBm),以及最重要的上下行链路频率。这些频率用ARFCN来表示,而不是实际的MHz,这个数字可以很方便地转换到频率,你可以上网找找[77]。对于喜欢挑战的读者,可以自己通过3.1的公式来计算GSM频段。你可能需要查一下其它几个f常数的值,因为不同国家不一样。


[119]提供了一个进入工程模式的教程。如果你的手机包含在内,你就能够根据教程来打开工程模式,找到所有的信息进行后面的练习,如果你的手机没有这个模式,那么你还是看看其它手机发出的信号。


练习3.8 观察移动信号频谱:挑战

这个练习包括一系列的挑战,你会观察手机在不同标准下的发射和接收的信号。你需要一个可以进入工程模式的手机来做这个练习。如果你的手机不支持,你也借不到这种手机,你还是可以看看我们的实验录像。


(a)打开Matlab。设置工作文件夹。然后打开模型。


(b)运行程序。保证你选择的天线接到RTL-SDR上,RTL-SDR连接到你的电脑,并且Matlab可以与其通信。点击开始运行按钮启动程序。


(c)进入工程模式,参照[119]GSMUMTS甚至LTE-A都可能出现,取决于你手机的功能。浏览这些菜单,你会了解到你现在使用的标准,你连接上以后还能看到信号功率。如果是GSM网络,你还能看到ARFCN,这个数字可以转化为频率。


大多数手机无法在工程模式中开启关闭连接,也就是说你可能要经常退出或重新进入这个模式。如果你认为你观察到的频谱与你做的操作不符,你可能要重新进入此模式观察连接信息,因为你的手机可能自动更改频率了。


另一点,现在的新技术(3G,4G)都主要提供的是数据连接。这样上下行链路的流量可能很不一样,因为频道是非对称的。比如你在看在线视频,大多数都是下行链路的流量,上行链路的流量很少,因为你的手机是在下载数据。如果你在把照片上传到社交网络上,那就会反一反。


(d)当你的手机使用不同标准时,你可能要做不同的操作以便观察。2G模式下,你可以发短信或者打电话,这样你的天线能收到上行链路的活动。当你在观察3G或者4G信号时,你可以做一些在线搜索或者观看在线视频,这样你会得到下行链路的数据包。许多手机可以选择制式,比如可以把3G或者4G关闭。你可以看看你手机是否能强制进行2G连接。一般来说,手机默认会选择最高速的连接。有时候你不能选择你当前的制式,你要耐心一点。


(e)拨打GSM电话。下面的视频展示的是手机上的工程模式,以及ARFCN号码如何计算为频率,最后是使用RTL-SDR/Simulink观察这个电话的频谱。


语音通信的帧可能以200kHz宽度的脉冲显现。


(f)GSM挑战。你看了视频吗,现在该你自己试试了。把你的手机强制连接到GSM网络,可以试试选择2G模式或者关掉数据连接,然后找到上行链路的中心频率。把RTL-SDR调谐到这个频率,然后打个电话。你可以看到一个很强的GSM信号吗?这个截图展示的是我们看到的上行链路的频谱。你看到类似的东西了吗,你也可以发一条短信,看看有什么不一样。


(g)使用UMTS网络来观看在线视频。下面的录像展示的我们先进入工程模式,查到UMTS上下行链路的频率。然后调谐到RTL-SDR的上行频率,并观看Youtube视频。


手机发出的信号用于向网络发出连接请求和获取视频数据的请求。视频不停地下载到手机的缓存里,请求和应答也不停地从手机发出,用来保持连接。


(h)UMTS挑战。你看过视频了吗?现在该你自己试试了。确认WiFi关闭,然后强制手机连接到3G模式。到工程模式里找到UMTS的上下行频率。把RTL-SDR调谐到你的上行频率,然后访问互联网。下面的截图应该跟你看到的差不多。


(i)你看到你手机发出的5MHz宽的脉冲吗?你在这个模式下打电话或者发短信会看到什么?你要知道UMTS频道是在几个用户间共享的。因此,你应该找一个人口稀疏的地方尝试,这样效果更明显。如果你是这个频道唯一的用户,那么你会看到更明显的效果,你的手机的活动可以立即反应在频谱上。如果你不确定频谱图反应的是否是你自己手机的信号,你可以试试把手机调整到飞行模式。飞行模式保证了手机停止一切连接,并且频谱图上你自己的信号会消失。


(j)UMTS频道非对称。接下来你可以看看UMTS上下行链路的区别。把手机设置3G模式,然后用前面介绍的方法找到上下行频率。


(k)你先打开一个比较长的在线视频,然后调谐RTL-SDR到手机的上行频率。尽管你在观看视频时主要是在下载数据,但是你也在上传大量控制数据,这些数据经过上行链路传回基站。这是因为数据传输协议的要求,你的手机看上去上下行链路的活动差不多。此时,如果你把增益调低,比如5dB左右,你应该能看到频谱仪上的脉冲。FFT图会有跳上跳下,瀑布图也会显示出这种很短时间的脉冲,以橘黄色的线显示。


然后把频率调谐到下行频率。这时你的增益要高一点(一般在30dB),然后你可以跟前面看到的比较一下。你应该能看到此时的活动看上去是不变的,保持在高位。增益要比前面搞的原因是你的手机离你的RTL-SDR很近,而基站可能几百米远,这样意味着你的RTL-SDR天线收到的原始信号强度是不同的。


(l)当你完成观察频谱后,你可以继续往下看或者直接跳到下一节。


(m)最终的移动通信挑战。最后的挑战是查询UK Ofcom的移动基站数据库,找到你附近的移动基站。如果你不在英国,你应该找找你自己国家的。


(n)对在英国的读者,Sitefinder是一个很好的网络资源,你可以看到附近的基站的具体位置,并且显示它们支持的标准以及运营商。使用Sitefinder,来找到到底是哪里的基站在与你的手机通信。我们会给你一些提示。


查询你手机当前连接到的运营商

找到你当前的标准,是2G还是3G或者4G

找到你的上下行频率

在你附近的几个基站里找到与前面这些详细信息相符的基站


这篇关于使用RTL-SDR和Matlab Simulink玩转软件无线电(十七)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/483664

相关文章

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示