导航教程PSK解调-GNU Radio

原文链接: Guided Tutorial PSK Demodulation - GNU Radio.

在本教程中,我们将着重于模拟而不是空中传输。它将讨论在发送和接收具有实际硬件和信道效果的信号时所涉及的许多问题。我们将进行模拟,然后逐步恢复信号。
请记住本教程不是处理数字信号接收问题的唯一方法。已经有为各种算法和方法用于实现这些步骤,不同类型的数字信号将表现出不同的行为。在这里,我们通过一系列步骤,使用GNU Radio中可用的算法实现PSK信号的接收和解调。但是,并不意味这教程是完成这一任务的唯一方法。

目标

  1. 了解信号失真和信道效应问题。
  2. 识别恢复信号所需的阶段。
    定时恢复
    多径信道
    相位和频率校正
    解码符号和位序

先决条件

参考资料:
我们建议的阅读清单
ARRL手册11.5正交调制
F.J.Harris和M.Rice,“软件无线电中符号定时同步的多速率数字滤波器”,IEEE通信中的选定领域,第19卷,第12号,2001年12月。[1]

发送信号

第一级是发射QPSK信号。我们生成一个比特流并将其调制到一个复杂的星座中。为此,我们使用星座调制块,它使用星座对象以及控制发送信号的其他设置。

星座对象允许我们确定符号是如何编码的。然后,调制器块可以使用这种具有或不带差分编码的调制方案。星座调制器需要打包字节,因此我们有一个随机源生成器,提供0-255值的字节。

在处理每个符号的样本数时,我们希望保持这个值尽可能小(最小值为2)。通常,我们可以使用这个值来帮助我们匹配所需的比特率和我们将要使用的硬件设备的采样速率。由于我们使用的是模拟,每个符号的采样数只对确保我们在整个流程图中匹配此速率很重要。我们将在这里将每个符号的样本数设为4,这比我们所需要的要大,但是对于在不同的域中可视化信号很有用。

最后,我们设置了额外的带宽值。星座调制器使用根升余弦(RRC)脉冲成形滤波器,它给我们一个单一的参数来调整滤波器的滚降系数,通常被称为‘alpha’。下面的图是由mpsk_rc_rolloff.grc示例生成的,体现出不同的过剩带宽值。滚降系数的典型值在0.2到0.35之间。

在这里插入图片描述
示例流程图mpsk_stage1.grc发送QPSK星座。它在时间、频率和星座图上都绘制了发送信号和部分接收机链。

在这里插入图片描述
在星座图中,我们看到了过采样和滤波过程的影响。在这种情况下,RRC滤波器添加了有意的自干扰,称为符号间干扰(ISI)。ISI对接收到的信号不好,因为它将符号混淆在一起。我们将在时间恢复部分深入研究这个问题。现在,让我们看看我们对信号做了什么。如果你只是看这张图中传输的信号,那么你应该会看到,频率图显示的是一个形状很好的信号,然后滚动到噪声中。如果我们不在信号上加一个成形滤波器,我们就会发射方波,在相邻的信道中产生大量能量。通过减少带外发射,我们的信号现在很好地保持在我们信道的带宽内。

在这里插入图片描述
但是这个信号有一个很小的问题,可以在时域图中看到。让我们关闭时域图中的所有信号,除了发送信号的真实部分(即“Re{TX}”)。接下来,通过单击鼠标中间的按钮来打开菜单,将点数从200增加到5000。使用相同的菜单,在Re{TX}行标签下,转到“行标记”并单击圆形。你应该看到的是一些杂乱无章的观点。当我们认为我们在传输1和0时,我们该如何接收这些样本呢?使用下拉按钮显示发送的信号。

在这里插入图片描述

我们在这张图片中看到的实际上是我们之前提到的ISI。我们通过在接收器上使用另一个滤波器来消除ISI。从根本上说,我们所做的是故意在发射机上使用一个RRC过滤器,它导致了ISI。但是,当我们将两个RRC滤波器卷积在一起时,我们得到了一个升余弦滤波器,它是Nyquist滤波器的一种形式。因此,了解RRC滤波器的这个特性,我们可以在接收端使用另一个RRC滤波器。滤波在这里只是一个卷积,所以接收端RRC滤波器的输出是一个ISI最小化的升余弦脉冲形状的信号。另一个好处是,在没有信道效应的情况下,我们所做的是在接收端使用了匹配滤波器

那么,通过匹配RRC滤波器之后接收到的信号是什么样子的呢?在时间图中,我们可以打开“Re{RX}”信号,并使用下拉菜单控件向该输出添加一个符号。相对于发送信号的混乱,该接收版本在+1、-1和0处有三条不同的线(零可能很难看到,所以您必须仔细观察)。使用下拉按钮显示接收器处的清理信号。对于保持分数的人,该匹配滤波器满足Nyquist ISI准则。在时间恢复阶段,我们将以不同的格式再次看到这一点。

在这里插入图片描述

添加信道

第一阶段的例子只涉及传输QPSK信号的机制。现在我们将研究信道的影响,在信号被发射和接收的过程中信号之间是如何被扭曲的。第一步是添加一个信道模型,这是使用示例mpsk_stage2.grc完成的。首先,我们将使用GNU Radio的最基本的信道模型块

这个块允许我们模拟一些我们必须处理的主要问题。接收器的第一个问题是噪音。我们接收器中的热噪声会引起我们所知道的加性高斯白噪声。我们通过调整信道模型的噪声电压值来设置噪声功率。我们在这里指定电压而不是功率,因为我们需要知道信号的带宽来正确计算功率。GNU无线电的理念之一是块的独立性,因此信道模型不知道任何有关传入信号的信息。我们可以根据所需的功率电平计算噪声电压,并知道仿真的其他参数。

另一个重要问题是两个无线电台有不同的时钟,它驱动无线电设备的频率。首先,由于时钟是不完美的,因此在无线电台之间是不同的。一个无线电台名义上在fc (例如450 MHz)频率发射,但不完善意味着它实际上是在fc +f_Delta_1频率上发射。同时,另一个无线电台有不同的时钟,因此有不同的偏移量f_Delta_2。当它被设置为fc 时,实际频率在fc +f_Delta_2。最后,接收到的信号相对于我们认为它应该在的地方会有f_Delta_1+f_Delta_2的偏移量(这些delta有可能是正的,也有可能是负的)。

与时钟问题相关的是理想的采样点。我们已经在发射机中对信号进行过采样,但是当接收到信号时,我们需要在原始的采样点对信号进行采样,以达到最大的信号功率和最小的码间干扰。类似于我们在第一阶段的仿真中添加的第二个RRC滤波器,我们可以看到,在每个符号中的4个样本中,有一个位于+1、-1或0的理想取样点。但同样,这两个无线电台运行的速度不同,因此理想的取样点是未知的。

我们模拟的第二阶段允许我们处理这些加性噪声、频率偏移和定时偏移的影响。当我们第一次运行这个图(如下所示),我们屏蔽了这些全部影响,但可以通过滑块来调整设置。我们可以添加一些噪声(0.2)、一些频率偏移(0.025)和一些定时偏移(1.0005)来查看我们开始产生的信号。

在这里插入图片描述
在这里插入图片描述
星座图向我们展示了大量样本,比我们在上一阶段开始的时候要糟糕得多。从这个接收到的信号来看,我们现在不得不去掉所有这些影响。

恢复定时

现在我们将经历整个恢复过程。请记住,我们可以使用许多算法来恢复每个阶段。有些可以同时进行多个阶段的联合恢复。我们将在这里使用多相时钟恢复算法。

我们将从时间恢复开始。我们试图找到最佳的采样时间,以最大限度地提高每个样本的信噪比,减少符号间干扰(ISI)的影响。

我们可以用示例流程图symbol_sampling.grc(where we simply create four separate symbols of 1’s in row then filter them)来说明ISI问题。滤波的第一阶段对每个符号执行过采样,并使用根升余弦滤波器。我们接着使用另一个不改变速率的根升余弦滤波器。这里的第二个RRC滤波器将信号从使用非Nyquist RRC滤波器转换为Nyquist升余弦(RC)滤波器,就像我们在本教程的第一阶段中讨论的那样。下图显示了被RCC和RC滤波后符号之间的差异。没有奈奎斯特滤波,我们可以看到在每个符号的理想取样点,其他符号都有一些能量。如果我们把这些符号相加在一起,就像我们会在一个连续的样本流中一样,其他样本的能量相加在一起使那个点的符号失真。相反,在RC滤波器输出中,其他样本的能量在给定符号的理想采样点为0。这意味着,如果我们在正确的样本点取样,我们只能从当前符号获得能量,而不会受到流中其他符号的干扰。同样,我们看到的是时间恢复如何应用匹配滤波器来满足Nyquist ISI准则。

在这里插入图片描述
在这里插入图片描述
这种仿真可以让我们轻松地调整每个符号的样本数、RRC滤波器的额外带宽以及抽头数。然后,我们可以调整这些不同的值,看看它们如何影响取样点的行为。

接下来,让我们来看看发射机和接收机的时钟不同对采样点产生了什么影响。使用示例流程图 symbol_sampling_diff.grc,我们仿真了发射机和接收机不同时钟的影响。每个时钟都是不完美的,因此a)将在不同的时间点开始,b)相对于其他时钟漂移。我们通过增加一个重采样器来仿真这一点,该重采样器在发送信号(在上面的发送图像中)和接收器之间稍微调整符号采样时间,如下所示。这里显示的1.125的时钟差是极端的,作为一种可视化技术,在这个设置中显示它。实际上,时间差是百万分之几。但是在这里,请注意,由于在不同的时间点采集样本,理想的采样周期是未知的,任何采样也将包括ISI。

在这里插入图片描述
我们在这里的任务是只使用来自接收样本的信息,同步发送和接收时钟。这称为时钟或定时恢复。

多相时钟同步块的详细信息

我们可以使用各种算法来恢复接收机的时钟,而且几乎所有这些算法都涉及某种反馈控制回路。那些没有的通常是数据辅助使用一个已知的词,如前导。我们将使用多相滤波器组时钟恢复技术,这可以在弗雷德哈里斯的文章《通信系统的多速率信号处理》中找到。这个块(多相时钟同步块)为我们做了三件事。首先,它执行时钟恢复。其次,对接收匹配滤波器进行滤波消除ISI问题。第三,它对信号进行下采样,并在每秒采样次数为1时下产生采样点。

该块工作时计算输入信号的第一差分,该差分与其时钟偏移量相关。如果我们一开始模拟得非常简单,我们可以看到差分滤波器是如何工作的。首先,使用示例流图 symbol_differential_filter.grc,我们可以看到当我们的速率参数为1时(即没有时钟偏移),一切看起来是多么完美。我们需要的样本显然是0.25毫秒。差分滤波器([-1,0,1])生成符号的差分,如下图所示,该滤波器在正确采样点的输出为0。然后,我们可以反过来说,当差分滤波器的输出为0时,我们找到了最佳采样点。

在这里插入图片描述
当我们有时间偏移时会发生什么?该输出如下所示,the timing offset where the peak of the symbol is off and the derivative filter does not show us a point at zero。

在这里插入图片描述
我们所能做的不是使用单个滤波器,而是构建一系列滤波器,每个滤波器都有不同的相位。如果我们有足够的不同相位的滤波器,其中之一是正确的滤波器相位将给我们希望的时间值。让我们看看构建5个过滤器的仿真,这意味着5个不同的相位。把单位圆(0到2π)分割为5个相等的片,每个滤波器对应一个片。使用示例流图symbol_differential_filter_phase.grc,我们可以看到这对我们有何帮助。注意,这里我们使用分数重采样器是因为它可以很容易地进行相移(在0和1之间),但它也会改变信号的滤波延迟,所以我们使用后续延迟块进行校正。

下面的图片给了一个处理问题的思路,虽然它有点不精确。我们可以看到,标记为d(sym0)/dt+phi3的信号在0处有一个采样点。这告诉我们理想的采样点出现在这个相位偏移处。因此,如果我们调整接收机的RRC滤波器相位为phi3(即3×2pi/5),那么我们就可以校正定时偏差,并把这个采样时间作为理想的采样点。

在这里插入图片描述
但正如我们所讨论的,这只是一个仿真的近似;实际上,每个滤波器的样本不会在同一时间点出现。我们必须根据过滤器的数量(例如,5)过采样,才能真正看到这种行为。不过,这可以让我们更进一步地了解正在发生的事情。我们可以把这些不同的滤波器看作是一个大滤波器的一部分,这个大滤波器的采样率是M,例子中M=5。我们可以通过这样的方法对输入的信号进行采样,然后选择一个时间点,在这个时间点上我们可以得到差分滤波器的0输出。问题是我们在讨论大量额外的计算复杂性,因为这与我们的采样率成正比。相反,我们以输入采样率处理不同相位的滤波器,但是在这些不同相位的滤波器组中,我们可以在不增加计算成本的情况下获得过采样滤波器的效果。

所以在上面的例子中,我们使采样率偏移了已知的1.2,发现我们可以使用五个滤波器中的一个作为理想的采样点。不幸的是,我们实际上只有5个不同的相位能够在这里准确地生产和纠正。位于这些相位之间的任何采样偏移量仍然会面临我们之前探索过ISI问题。因此,我们在我们的时钟恢复算法中使用了5个以上的滤波器。在不探索数学的情况下(见上面提到的harris的书),我们可以使用32个滤波器给我们一个最大的ISI噪声因子,它是一个不超过16位值的量化噪声。如果我们想要超过16位的精度,我们可以使用更多的滤波器。

那又怎么样?我们有一大组滤波器,其中一个滤波器处于(或非常接近)理想采样相位偏移。我们如何自动找到它?好吧,我们使用二阶控制回路,就像我们在这些恢复情况下几乎总是这样做的那样。用于恢复的错误信号是差分滤波器的输出。控制回路从其中一个滤波器开始,并将输出作为误差信号进行计算。然后它按照误差信号的比例上下移动滤波器组,所以我们试图找到误差信号最接近0的位置。这是我们对采样点的最佳滤波器。由于我们希望发送和接收时钟彼此相对漂移,所以我们使用二阶控制回路来获得正确的滤波器相位以及两个时钟之间的速率差。

GNU Radio的digital examples目录中有一个示例example_timing.py。您可以自己运行此脚本来查看多相时钟同步恢复块的收敛行为。

在接收机中使用多相时钟同步块

现在让我们将这个块用于我们的仿真。示例流图mpsk_stage3.grc获取信道模型的输出并将其通过我们的多相时钟同步块。基于上述讨论,该块设置了32个滤波器,环路带宽为2pi/100。该块还接受每个符号的预期样本值,但这只是我们对该值应该是什么的猜测。在内部,块将根据传入信号的速率围绕该值进行调整。但是,请注意,我已经设置了这个仿真,其中的估计值与我们传输的4sps略有不同。这是为了模拟发射机和接收机之间的初始定时偏移。因为我们将定时偏移控制初始化为1.0,它使事情稍微困难一些,这样我们就可以观察到星座的会聚。

在这里插入图片描述
在这里插入图片描述
运行此脚本时,我们看见,左侧的星座为定时恢复前的接收信号,右侧的星座为定时恢复后的接收信号。经过32个滤波器后ISI仍然有一点噪声,一旦我们将信道噪声电压设置调整为大于0,噪声很快就会被吸收。

然后我们可以改变时间和频率偏移。移动时间条,我们看见时钟同步块如何使信号保持锁定,并在理想的星座点(或非常接近)输出样本。当我们加上频偏时,我们可以看到星座变成了一个圆。星座仍然在单位圆上,所以我们知道它仍然保持正确的定时,但是块不允许我们校正频率偏移。我们还需要处理这个问题,但以后再说。

同样,我们可以通过更改使用的taps变量的版本来更改多多径仿真环境。添加多路径将向我们显示时钟恢复块对多路径是健壮的,但不会对其进行更正,因此,我们需要其他方法来解决。

多径

首先让我们了解多路径是什么。关于多径的问题已经有很多文章,我们将在这里对其进行足够的探讨,以便大致了解其来源以及如何影响我们的通信能力。我们不会详细讨论真正的衰落信道或如何分析它们的特性。

多径效应是因为在大多数通信环境中,信号从发射机到接收机不会有单一路径。就像下面的漫画所示,每当有一个对象反射到信号时,可以在两个节点之间建立一条新的路径。建筑物、标志、树木、人、猫等表面都会产生信号反射。这些反射路径中的每一个都将根据路径的长度在不同的时间出现在接收器上。在接收者处将这些相加会导致失真,无论是建设性的还是破坏性的。

在这里插入图片描述
这些信号在接收器处组合的影响是信号的失真。如果反射之间的时间差相对于符号的宽度足够小,则失真可能在符号内——码间干扰。当反射比符号时间长时,来自一个符号的反射将影响后面的信号——符号间干扰的另一个原因。

我们需要纠正这种行为,我们可以这样做的机制非常像立体声均衡器。事实上,我们称之为均衡器。使用立体声均衡器,我们可以改变某些频率的增益来抑制或增强这些信号——低音和高音是常见的。我已经创建了一个非常简单的例子,叫做multipath_sim.grc,帮助我们探索在频域中这是什么样子的。

multipath_sim.grc简单地建立了一个信道模型,信道提供五个均衡器旋钮,其中四个可以更改。这些旋钮的设置频率很简单,我们可以将它们从0调整到1。值为1时,旋钮将允许这些频率无障碍通过。值为0时,它们将在频谱中产生一个深零点,这将影响其周围的所有频率。运行脚本时,最好将频率图设置为平均值(右键单击图表并选择“平均值”;值为“中等”就可以了)。

在这个例子中,我们显式地控制频域,我们真正使用的是创建一个均衡器的能力,该均衡器可以校正或调整接收信号的频率响应。最终,目标如下图所示,也就是信号经过多径信道后的频域失真。均衡器的任务是反转信道。根本上,我们想消除由通道引起的失真,使均衡器的输出平坦。但是,与手动调整抽头相反,我们有更新这些抽头的算法。我们的工作是使用正确的均衡器算法并设置参数。这里的一个重要参数是均衡器中的抽头数。正如我们在仿真中看到的,五个抽头对频率响应的控制相当粗略。或者,抽头越多,计算抽头以及对信号运行均衡器所需的时间就越多。

在这里插入图片描述

均衡器

GNU Radio有两个易于使用的均衡器,CMA均衡器和LMS-DD均衡器。CMA均衡器(恒模算法)是一种盲均衡器,但它只适用于具有恒定振幅或模的信号。这意味着像MPSK这样的数字信号是很好的候选者,因为它们只有单位圆上的点(回想一下我们做的实验,我们锁定了信号定时,但有一个频率偏移;我们看到的是单位圆)。

CMA算法接收均衡器中要使用的抽头数,这将基于一些有根据的猜测、已知的最佳实践,以及信道本身的一些实际知识的组合。我们希望保持这个数字小,以减少算法的开销,同时确保有足够的自由度来校正我们的信道。

mpsk_stage4.grc示例中,我们使用具有11个抽头的CMA算法。这是一个仿真,这个数字在过去运作良好。从计算和信号的角度来分析它是如何影响性能的。

在这里插入图片描述
我们可以看到CMA算法收敛。也要注意的是,由于我们有一个时钟同步和均衡器块,所以它们是独立收敛的,但是一个阶段将影响下一个阶段。所以当两者都锁定信号时,发生了一些相互作用。最后,我们可以看到均衡器前后时间锁定多径信号的影响。在均衡器之前,我们有一个非常难看的信号,即使没有噪音。均衡器很好地解决了如何反转和取消这个通道,使我们再次有一个良好的、干净的信号。我们还可以看到频道本身,以及它如何使(信号)通过均衡器之后很好地变平。

在这里插入图片描述
改变提供给信道模型块的抽头可以更改多径。当前抽头只是简单地随机产生以提供一个多径配置文件,并没有真正的数学基础。有关具有衰落仿真的更复杂信道模型,请参阅GNU Radio手册中的信道模型页。

LMS-DD均衡器

现在一个很好的挑战是使用最小均方判决定向(LMS-DD)均衡器块。参数之间有很多重叠,除了一个主要特征。与类似于CMA这样的盲均衡器不同,这种均衡器需要知道接收信号。均衡器需要知道星座点才能进行校正,并且它使用关于样本的决策来影响均衡器抽头的更新。

这种均衡器适用于不符合CMA算法的恒模要求的信号,因此它可以用于QAM型调制。另一方面,如果信噪比足够差,则所做的决策是不正确的,这会破坏接收机的性能。块的性能在计算上也更复杂。然而,当信号质量好时,这种均衡器可以产生质量更好的信号,因为它对信号有直接的了解。一种常见的模型是使用盲均衡器进行初始捕获,以获得足够好的信号,以便由定向均衡器接管。不过,我们不会在这里做这种事。

作为一个挑战,使用mpsk_stage4.grc文件并用LMS-DD均衡器替换CMA均衡器恢复,看看是否可以使其收敛。该块使用星座对象,因此这里的部分困难在于为QPSK信号创建合适的星座对象并应用该对象。

相位和精细频率校正

考虑到我们已经使信道均衡,我们仍然有相位和频率偏移的问题。均衡器往往不能很快适应,因此频率偏移很容易超出均衡器保持的能力。另外,如果我们只是运行CMA均衡器,它关心的只是收敛到单位圆。它不知道星座,所以当它锁定时,它将锁定在任何给定的相位。我们现在需要校正任何相位偏移和任何频率偏移。

关于这个阶段的两件事。首先,我们将使用一个二阶环路,这样我们可以同时跟踪相位和频率,这是相位随时间变化的导数。第二,我们将在这里处理的恢复类型假设我们正在进行精细的频率校正。所以我们必须确定我们已经在理想频率的适当范围内。如果我们离得太远,我们在这里的循环就不会收敛,我们会继续旋转。有很多方法可以进行粗略的频率校正,但我们不会在这里讨论这些。

对于这个任务,我们将使用示例mpsk_stage5.grc中的Costas环(这里也可以使用星座接收器)。Costas环块可以同步BPSK、QPSK和8PSK。星座接收器将锁定任何给定的星座对象,尽管取决于星座,决策函数可能或多或少复杂。

在这里插入图片描述
与其他块一样,此块使用二阶循环,因此由循环带宽参数定义。它还需要知道PSK调制的阶数,即BPSK是2,QPSK是4,8PSK是8。在下一幅图中,我们设置了噪声、定时偏移、简单的多径信道和频率偏移。在均衡器之后,我们可以看到符号都在单位圆上,但是由于没有任何校正的频率偏移而旋转。在Costas环块的输出端,我们可以看到锁定的星座,就像我们开始时加上额外的噪声一样,我们对此无能为力。

在这里插入图片描述

解码

现在困难的部分完成了,我们可以解码信号了。使用mpsk_stage6.grc示例流程图,我们在Costas循环之后插入一个正交解调器来代替my_qpsk_demodulator,但是我们的工作还没有完成。在这一点上,我们得到从0到3的符号,因为这是QPSK方案中我们的字母表的大小。但是,在这些0-3的符号中,我们如何确定我们的符号到星座点的映射与我们传输时的相同?请注意,在上面的讨论中,我们对传输的符号到星座映射一无所知,这意味着我们在星座中可能有90度的模糊度。幸运的是,我们通过传输差分符号避免了这个问题。我们实际上并没有发送星座本身,而是通过将星座调制器块中的差分设置设置为True来发送星座符号之间的差异。所以现在我们撤销它。

在这里插入图片描述
流程图使用差分译码器块将差分编码符号转换回其原始符号,这是由于相位转换,而不是绝对相位本身。但即使不这样,我们的符号也不完全正确。这是解调最困难的部分,真的。在同步步骤中,我们有基本的物理和数学知识。不过,现在我们必须根据别人的说法来解释一些符号。基本上,我们只需要知道这个映射。幸运的是我们做到了,所以我们使用映射块将符号从差分解码器转换为我们传输的原始符号。现在,我们有了0~3的原始符号,我们使用解包位块将每个符号的2位解压成位。现在,我们有了原始的数据位流!

但我们怎么知道它是原始比特流呢?为此,我们将与输入比特流进行比较,因为这是仿真,我们可以访问传输的数据。但是,当然,发送器产生了压缩位,所以我们再次使用解包位块从每字节8位解包到每字节1位。然后,我们将这些流转换为0.0~1.0的浮点值,因为我们的时间接收器只接受浮点值和复数值。直接比较这两种数不会像我们展示任何东西。为什么?因为接收器链有许多延迟信号的块和滤波器,所以接收到的信号有一定数量的比特延迟。为了补偿,我们必须使用[Delay | delay]块将发送的比特延迟相同的量。我已经把这个设置成从0开始延迟。然后,您可以调整延迟以找到正确的值,并查看位是如何同步的。

在这里插入图片描述
答案请点击这里

您还可以从另一个信号中减去一个信号,以查看它们何时同步,因为输出将为0。当该信号不是0时,添加噪声和其他信道效应很容易被视为比特错误。

作为最后一个实验,注意我们使用的是有限长随机数发生器,所以我们应该能够看到接收信号中的模式。使用QT GUI时间光栅接收器,设置它以便您可以看到此模式。请记住,时间光栅图对流进行采样,因此结果显示可能与您预期的不完全一样。但如果设置正确,模式本身应该是可见的。

文章翻译自

原文链接: Guided Tutorial PSK Demodulation - GNU Radio.

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
GNU Radio系列教程是一系列关于GNU Radio软件的教学材料。这些教程提供了有关如何使用GNU Radio进行信号处理和通信系统开发的详细指导。 其中,是关于GNU Radio Companion (GRC)的引导教程。GRC是GNU Radio的图形化开发环境,它允许用户通过拖放模块来创建信号处理流程图。 是关于PSK解调的引导教程PSK是相位偏移键控的一种调制方式,该教程详细介绍了如何使用GNU Radio进行PSK解调的过程。 是关于多相时钟同步教程。在数字通信系统中,时钟同步对于正确解调和还原信号至关重要。该教程介绍了如何使用GNU Radio进行多相时钟同步。 通过学习这些教程,您将能够掌握GNU Radio的基本概念和功能,并且能够使用它进行信号处理和通信系统开发。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [GNU Radio系列教程(三):初级篇之GNU Radio GRC流图](https://blog.csdn.net/OpenSourceSDR/article/details/108295236)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [GNU Radio系列教程(七):初级篇之GNU Radio GRC PSK调制解调](https://blog.csdn.net/OpenSourceSDR/article/details/108531628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值