📜  DSP-就地计算

📅  最后修改于: 2020-11-25 05:39:23             🧑  作者: Mango


内存的这种有效利用对于设计快速硬件以计算FFT非常重要。就地计算一词用于描述此内存使用情况。

时间顺序抽取

在此结构中,我们以二进制格式(即0和1)表示所有点。然后,我们反转这些结构。之后得到的序列称为位反转序列。这也称为时间抽取。八点DFT的就地计算以表格格式显示,如下所示-

POINTS BINARY FORMAT REVERSAL EQUIVALENT POINTS
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7

时间顺序抽取

频率序列抽取

除了时间序列,N点序列也可以用频率表示。让我们采取四点顺序来更好地理解它。

假设序列为$ x [0],x [1],x [2],x [3],x [4],x [5],x [6],x [7] $。首先,我们将把两个点分组。从数学上讲,该序列可以写为:

$$ x [k] = \ sum_ {n = 0} ^ {N-1} x [n] W_N ^ {nk} $$

现在,让我们将一组序列号为0到3,将另一组序列号为4到7。现在,数学上可以显示为:

$$ \ displaystyle \ sum \ limits_ {n = 0} ^ {\ frac {N} {2} -1} x [n] W_N ^ {nk} + \ displaystyle \ sum \ limits_ {n = N / 2} ^ {N-1} x [n] W_N ^ {nk} $$

让我们用r代替n,其中r = 0、1、2 ….(N / 2-1)。数学上

$$ \ displaystyle \ sum \ limits_ {n = 0} ^ {\ frac {N} {2} -1} x [r] W_ {N / 2} ^ {nr} $$

首先,我们采用前四个点(x [0],x [1],x [2],x [3]),并尝试用数学方式表示它们,如下所示:

$ \ sum_ {n = 0} ^ 3x [n] W_8 ^ {nk} + \ sum_ {n = 0} ^ 3x [n + 4] W_8 ^ {(n + 4)k} $

$ = \ lbrace \ sum_ {n = 0} ^ 3x [n] + \ sum_ {n = 0} ^ 3x [n + 4] W_8 ^ {(4)k} \ rbrace \ times W_8 ^ {nk} $

现在$ X [0] = \ sum_ {n = 0} ^ 3(X [n] + X [n + 4])$

$ X [1] = \ sum_ {n = 0} ^ 3(X [n] + X [n + 4])W_8 ^ {nk} $

$ = [X [0] -X [4] +(X [1] -X [5])W_8 ^ 1 +(X [2] -X [6])W_8 ^ 2 +(X [3] -X [7])W_8 ^ 3 $

我们可以进一步将其分为两部分,这意味着与其将其分解为4点序列,不如将其分解为2点序列。