多相滤波器组信道器 FFT 或 IFFT

信息处理 fft IFFT 过滤器组 多相
2022-02-04 00:02:16

我指的是 Xilinx 应用说明Polyphase Filter Bank Channelizer接收器部分应该有 FFT,但 pdf 在 Tx 和 Rx 中都提到了 IFFT。

FJ Harris、C. Dick 和 M. Rice的论文“使用多相滤波器组进行无线通信的数字接收器和发射器”,载于IEEE Transactions on Microwave Theory and Techniques,vol。51,没有。4,第 1395-1412 页,2003 年 4 月也提到了相同的内容。

Xilinx 如何通过在 Tx 和 Rx 中实施 IFFT 获得正确的结果?

3个回答

对不起,我没有读过这篇论文,所以这只是一个猜测。

FFT 和 IFFT 几乎是相同的算法,因此在 FPGA 中编码两者确实没有意义。只需使用

$$F^{-1} (x) = F(x')/N, \\ F(x) = N \cdot F^{-1}(x)'$$

其中 N 是 FFT 的长度,“'”是共轭复数运算符。

首先,XAPP1161 的开发人员分别为他们的发送器和接收器模块重新使用对象 dsp.ChannelSynthesis 和 dsp.Channelizer。这些是 MATLAB 的 DSP System Toolbox 的对象。通道合成器框图对应于 XAPP1161 图 3 多相滤波器组(第 3 页)中的发送器模块,

在此处输入图像描述

Channelizer 框图对应于 XAPP1161 的图 3 多相滤波器组(第 3 页)中的接收器块,唯一的例外是:XAPP1161 在其输出到 $y(m)$ 总线时显示MIFFT 而 MATLAB 块输出$y(m)$总线是M 点 FFT

在此处输入图像描述

这种“差异”(而是拼写错误)不会影响 XILINX 演示解决方案的运行,因为设计文件使用 MATLAB 的 DSP System Toolbox 的“正确”对象 dsp.ChannelSynthesis 和 dsp.Channelizer,而不是开发人员的文本刻入他们的图纸表明。

Harris/Dick/Rice 的论文还分别在发送器和接收器块中使用了 IFFT(图 27,第 13 页):

Rice 的论文,图 27(第 13 页)

Forward DFT 和 Inverse DFT 是非常相似的变换,与以下相关:

$x[n]$是一个长度为 $N$的序列,$X_f[k]$是它的 N 点正向 DFT,$x_i[k]$是它的 N 点逆 DFT:(忽略$k $$n$是指,让它只是一个序列索引。)

$$X_f[k] = \text{DFT}\{x[n]\} = \sum_{n=0}^{N-1} x[n] e^{-j\frac{2\pi} {N}nk}$$ $$x_i[k] = \text{I-DFT}\{x[n]\} = \frac{1}{N}\sum_{n=0}^{N-1 } x[n] e^{j\frac{2\pi}{N}nk}$$

那么$X_f[k]$$x_i[k]$通过以下方式相关:

$$ X_f[k] = N ~ x_i[-k] $$

其中$x_i[-k]$是循环反转的序列$x_i[k]$

如您所见,正向和反向 DFT 结果(几乎)相同,只是线性比例为$N$和反向输出排序。因此,您可以通过正确执行缩放和重新排序来使用它们中的任何一个来计算另一个。