进一步的检查表明,串行器模块只删除了非数据载体。很可能碰巧任何非数据的东西都是超级嘈杂的,而数据载体根本没有嘈杂,但我仍然想知道这怎么可能。
这里发生的神奇之处在于帧均衡器块中使用的实际均衡器。如果您在 GRC¹ 中向上滚动,您可能会看到有效负载均衡器对象块,其中包含一个“simpledfe”均衡器。
现在,simpledfe代表简单数据反馈均衡器。它实际上有很好的文档记录,但不知何故文档工具坏了,HTML 文档实际上不包含源代码中给出的任何解释。
因此,这是文档的源代码摘录:
/* \brief Simple decision feedback equalizer for OFDM.
* \ingroup ofdm_blk
* \ingroup equalizers_blk
*
* \details
* Equalizes an OFDM signal symbol by symbol using knowledge of the
* complex modulations symbols.
* For every symbol, the following steps are performed:
* - On every sub-carrier, decode the modulation symbol
* - Use the difference between the decoded symbol and the received symbol
* to update the channel state on this carrier
* - Whenever a pilot symbol is found, it uses the known pilot symbol to
* update the channel state.
*
* This equalizer makes a lot of assumptions:
* - The initial channel state is good enough to decode the first
* symbol without error (unless the first symbol only consists of pilot
* tones)
* - The channel changes only very slowly, such that the channel state
* from one symbol is enough to decode the next
* - SNR low enough that equalization will always suffice to correctly
* decode a symbol
* If these assumptions are not met, the most common error is that the
* channel state is estimated incorrectly during equalization; after that,
* all subsequent symbols will be completely wrong.
*
* Note that the equalized symbols are *exact points* on the constellation.
* This means soft information of the modulation symbols is lost after the
* equalization, which is suboptimal for channel codes that use soft decision.
*
*/
嗯,但是空载的航母呢?
现在,看看ofdm_equalizer_simpledfe我们看到的实现:
void
ofdm_equalizer_simpledfe::equalize(gr_complex *frame,
int n_sym,
const std::vector<gr_complex> &initial_taps,
const std::vector<tag_t> &tags)
{
[…]
gr_complex sym_eq, sym_est;
for (int i = 0; i < n_sym; i++) {
for (int k = 0; k < d_fft_len; k++) {
if (!d_occupied_carriers[k]) {
continue;
}
[…]
换句话说:这些与原始 FFT 保持不变。
现在,一个典型的直接转换 OFDM 系统将使 DC 载波不被占用——它包含接收器 LO 的泄漏。这通常是一个相对强大的 FFT bin,其幅度不应有太大变化,其相位应取决于进行 DFT 的时间点,这是由 Schmidl&Cox 同步确定的帧开始时间。这就是我的解释| ⋅ | ≈50星座点,其余的很可能是原始幅度的不均衡噪声,特别是因为我们正在查看一个同时显示 1024 个星座点的星座接收器 - 所以我们会看到一些噪声功率的异常值。
¹ 在屏幕上显示整个 GRC 流程图通常是不可能的。因此,工具栏和菜单中的“保存屏幕截图按钮”非常方便!