Simulink中的FRS/GMRS接收机
这个例子展示了如何使用Simulink®和Communications Toolbox™实现一个对讲机接收器。本例所遵循的具体无线电标准是FRS/GMRS(家庭无线电服务/通用移动无线电服务)和CTCSS(连续音编码静噪系统)。可以从商业对讲机中使用模拟信号、捕获信号或接收信号RTL-SDR无线电通信工具箱支持包.
本示例设计用于FRS/GMRS操作的美国标准。这些标准的技术规范可在下面的参考列表中找到。在其他国家进行的操作可能行得通,也可能行不通。
所需硬件和软件
要使用捕获的信号运行此示例,您需要以下软件:
为了实时接收信号,还需要以下硬件设备:
RTL-SDR广播
步话机
和以下软件
有关通信工具箱支持的SDR平台的完整列表,请参阅的“SDR的MATLAB和Simulink硬件支持”一节软件定义无线电(SDR).
简介
有关FRS/GMRS技术和这些信号的解调的介绍,请参阅FRS / gmr步话机接收器的例子。
运行这个例子
若要使用模拟信号运行示例,请选择FRS / gmr信号发生器
块作为源信号源选择器
块。双击FRS / gmr信号发生器
块来选择CTCSS代码
源类型为“单音”、“啁啾”或“音频”之一。然后单击运行按钮。
要使用捕获的信号运行示例,请选择FRS / gmr捕获信号
块作为源信号源选择器
块。然后单击运行按钮。
要运行使用RTL-SDR无线电作为源的示例,请选择RTL-SDR接收机
块作为源信号源选择器
块。然后单击运行按钮。打开对讲机,将通道设置为14个通道(编号为1至14)中的一个,将专用码设置为38个专用码(编号为1至38)中的一个或0,在这种情况下不使用静音系统,并接受所有收到的消息。注意,38以上的私有代码是数字代码,在本例中没有实现。
双击通道数量
阻塞并选择与对讲机相同的通道号。双击CTCSS代码
块,并将CTCSS代码设置为您在对讲机中设置的专用代码。运行这个模型,看看你是否能听到自己的声音从电脑扬声器中传出来。如果没有,请尝试调整检测阈值
块值向下轻微。您可以在不停止和重新启动模型的情况下更改通道和私有代码。
如果在声音中听到一些中断或延迟,请在加速模式下运行模型。从模型菜单中,选择仿真->加速器,然后单击运行按钮。如果在加速模式下仍然遇到退出或延迟,请尝试在快速加速模式下运行模型。
“信号频谱”显示接收信号在输入端的频谱频道选择器
块。当你对着对讲机说话时,你可以观察频谱的变化。
接收机结构
下面的框图总结了接收器的结构。处理主要包括信号源、信道选择器、调频解调器和CTCSS处理四个部分。
信号源
这个例子可以使用三个信号源:
“模拟信号”:以240e3个样品/秒的速率模拟FRS/GMRS信号
“捕获信号”:无线信号写入文件,并使用基带文件读取器块以240e3个采样/秒的速度获取
“RTL-SDR无线电”:RTL-SDR无线电,频率为240e3个采样/秒。用对讲机作为发射机。将频道号设置为对讲机的频道号。
频道选择器
接收器去除直流分量,并对接收信号应用可变增益,以获得一个近似已知的振幅信号,减少干扰。然后,接收机应用低通信道分离滤波器来减少来自相邻信道的信号。相邻通道之间的间隔是25千赫,这意味着基带带宽最多是12.5千赫。因此,我们选择截止频率为10 kHz。
接下来,信道选择器计算滤波信号的平均功率。如果它大于阈值(设置为默认值10%),通道选择器将确定接收到的信号来自正确的通道,并允许信号通过。对于带外信号,虽然信道分离滤波器减小了其幅值,但仍然是调频调制,调频解调后仍会出现调制信号。要完全拒绝这样的信号,通道选择器输出全部为0。
调频解调器
此示例使用调频解调器基带
采样率和最大频率偏差分别设置为240 kHz和2.5 kHz。
CTCSS
首先,抽取滤波器将采样率从240 kHz转换为8 kHz。此速率是主机输出音频设备的本机采样速率之一。然后,CTCSS解码器使用Goertzel算法计算每个CTCSS音调频率下的功率,输出功率最大的代码。Goertzel算法提供了一种有效的方法来计算在预定频率上的频率分量,即FRS/GMRS使用的音码频率。
该模型将估计的接收代码与预选代码进行比较,如果两个代码匹配,则将信号发送到音频设备。当预选代码为零时,表示没有使用压制系统,并且决策块将通道上的信号传递给音频设备,无论使用哪种代码。
最后,一个截止频率为260赫兹的高通滤波器过滤掉CTCSS音调,其最大频率为250赫兹。使用一个音频设备的作家
通过计算机的扬声器播放接收到的信号。如果您听不到任何声音,请使用“DeviceName”参数选择其他设备音频设备的作家
块。
音频输出
在音频设备之前,使用一个截止频率为260hz的高通滤波器过滤掉CTCSS的音调(其最大频率为250hz),从而使他们听不到。
的音频设备的作家
块默认设置为输出到您的系统首选项中的当前音频设备。
探索的例子
CTCSS解码使用Goertzel算法计算传入信号的DTFT(离散时间傅里叶变换),并计算在音调频率处的功率。因为音调频率彼此非常接近(只有3-4 Hz的间隔),DTFT的块长度应该足够大,以提供足够的频率分析分辨率。然而,较长的块长度会导致解码延迟。例如,块长度为16384将导致2秒的延迟,因为CTCSS解码器在8 kHz采样率下工作。这在检测性能和处理延迟之间产生了权衡。最佳块长度可能取决于发射机和接收器的质量、发射机和接收器之间的距离以及其他因素。我们鼓励您通过导航到helperFRSReceiverConfig函数并更改CTCSSDecodeBlockLength字段的值来更改初始化函数中的块长度。这将使您能够观察到权衡,并为您的发射器/接收器对找到最优值。
当FRS / gmr信号发生器
作为源,您可以更改CTCSS语气振幅
参数,并观察这是如何影响信号频谱。
附录
本例中使用的脚本如下: