除了hotpaw2的回答:
据推测,该信号源自发射器端的二进制输出。
我会说这很可能是错误的。
基于复杂基带的典型数字收发器如下所示:
Binary data -(0/1)->
Symbol mapper =(complex-valued symbols)=>
pulse shaper =(complex-valued, "smooth" digital baseband signal)=>
synchronous dual-DAC =(I & Q signals)=>
filters =>
I: mix with cos(2 pi f_RF) --\
subtract--> filters -(RF signal)-> Antenna
Q: mix with sin(2 pi f_RF) --/
在发射器端,您会看到一些射频信号——它总是模拟的,而不是二进制的。
我还没有找到任何有关如何完成最后一部分的有用文档。
你不可能读得太多,因为我知道的每本教科书都介绍了直接转换发射器和直接转换接收器(注意:它们有不同的名称,还有零如果或正交接收器)。
由于您已经获得了复杂的样本,我们可能会假设您正在使用像这样工作的接收器
Antenna -(RF signal)->
band-pass filter ->
multiply with cos(2 pi f_RF) -> low-pass filter -(I signal) ->
multiply with sin(2 pi f_RF) -> low-pass filter -(Q signal) ->
=(IQ signal pair)=> synchronous dual ADC =(digital complex baseband signal)=>
PC software
所以,模拟部分已经为你完成了。
现在,由您的 PC 软件来执行(不一定按此顺序,但所有这些通常都是必需的):
- f_RF 差异的估计/校正(没有两个物理振荡器完全相同)
- 相位差的估计/校正(即接收器和发射器的 cos() 没有同时“启动”,并且由于速度有限,信号在非零时间内“悬空”了一段时间光)
- 反转发射器的脉冲整形
- 符号率的估计/校正(即单个符号长多少个数字样本?)
- 猜测发射器发送了哪些符号
- 将这些符号转换回它们所代表的位
实际上,还有一些额外的步骤(通道编码、硬件缺陷校正、均衡……)。
无论如何,这些步骤的顺序以及它们的完成方式完全取决于发射器产生什么样的调制方案/波形;请注意,您如何无法使用 3G 手机获取您的无绳固定电话发送的比特,或使用您的 WiFi 卡接收数字电视,或使用您的闭路电视接收器接收卫星电话。
即使对于相同类型信号的接收器,SDR 工程师也有很多选择——定时恢复机制的类型,例如,将样本转换为符号时可接受的计算复杂度与这样做时的错误率,以及很多很多更多的。
因此,
我意识到这很可能非常简单,
没有。这是数字通信技术中最困难的问题,也是主要问题,科学支持现代最大的技术领域之一。一般来说,建立好的接收器很难。有很多工具可以帮助您解决这个问题。但是:即使是这些工具,也需要对数字通信背后的理论有深入的了解,然后才能走出去编写自己的 SDR 接收器。
但不要绝望:
有很多“简单”的系统相对容易接受,单独的教程可能会让你走得很远。这是一个令人兴奋的技术领域,如果不好玩,我就不会在这上面花费我一生的大部分时间!
我已经见证了几十次如何能够从只是模拟信号的数字表示的东西中实际获取二进制数据使人们a)快乐并且b)使对该理论的理解取得巨大飞跃。
我会鼓励你尝试数字信号!
根据您的假设,传输的信号是二进制的,我将继续大胆猜测您的专业:您可能是计算机科学专业的学生吗?
我可以看到这个信号世界可能有点令人生畏,如果你来自一个你可以安全假设的背景
input---wire/file/network-->output
输入==输出,但数字通信并非如此。
无论如何,无论您是什么,我都建议您阅读有关信号理论的内容。GNU Radio wiki 有一个关于推荐文献的页面。获得一本 DSP 基础书籍和一本 Digital Comm 基础书籍;其中一些以 PDF 格式免费提供。
同时,花 5 分钟阅读GNU Radio 指导教程的介绍章节。这些教程旨在缓慢、仔细、按顺序(不要跳过一章)让您构建一个简单的数字接收器。他们所做的是教一个工具,但他们需要依赖一些信号理论背景,所以如果你缺乏这些,他们可能不会那么清楚。