我正在尝试构建一个基本的GNURadio示例,其中我有一个包含一些文本的文本文件,我想在其中添加一个前导码,以便能够在接收器处检测数据的开头。接下来我想用GMSK对其进行调制并传输(使用USRP)。在接收器处,另一个USRP将采集接收信号的样本并将其传递给GMSK Demod块,然后相关器将搜索前导码,将其删除,并将文本数据传递到文件接收器,在那里将其存储在文本文件。
-------------- ---------------- ---------- ------
-Source File - -> -Packet Encoder- -> -GMSK Mod- -> -USRP-
-------------- ---------------- ---------- ------
------ ------ ------------ ---------------- -----------
-USRP- -> -Sync- -> -GMSK Demod- -> -Packet Decoder- -> -File Sink-
------ ------ ------------ ---------------- -----------
假设相位和频率偏移得到纠正,我对这将如何工作的理解是GNURadio将获取文本文件中的一大块数据并将其传递到下一个将添加前导码的块,然后GMSK将调制此序列并将其发送到USRP(这将重复,直到读取文本文件中的所有文本)。我关心的是接收器,接收块如何知道调度器在每个循环中传递的数据的大小(长度)。 (即,来自文本文件的字节数+前导码的长度)?因为如果接收器处的调度程序将更少的符号传递给块而不是文本块+前导码的长度,那么我可能能够检测到前导码,但之后我将只发送部分文本(以及该序言)和那个特定的序列),文本的剩余字节将由调度程序在下一个循环中传递'因此会因为前导码搜索而被删除(丢失)。
不幸的是我找不到这方面的文档,所以我可能会遗漏一些东西。我的主要问题是:如何使调度程序获取足够数量的符号,以便能够找到前导码并提取随附的文本字节,但同时允许块重复相同的步骤以用于下一个序列文字+序言?