Sub 倒序(X_() As Double)
Dim N As Integer, I As Long, J As Long, mn As Long, LH As Long, T As Double, k As Long
' 位序倒置
N = UBound(X_) '求数组大小,其值必须是2的幂
LH = N / 2
J = N / 2
For I = 1 To N - 2
If I < J Then '倒序
T = X_(J)
X_(J) = X_(I)
X_(I) = T
End If
Debug.Print I, J
k = LH '下面是向右进位算法
Do
If k > J Then Exit Do ' 高位是1吗?
J = J - k ' 是的,高位置0
k = k / 2 ' 准备次高位的权
Loop Until k = 0 ' 次高位的权若非0,则检查新的次高位
J = J + k ' 否则若最高位是0,则置1
Next
End Sub
Sub 蝶形算法(Xr() As Double)
Dim L As Long, LE As Long, LE1 As Long, N As Long, R As Long, P As Long, Q As Long, M As Byte
Dim Wr As Double, Wi As Double, W1r As Double, W1i As Double, Tr As Double, Ti As Double
Dim Pi As Double, T As Double
Dim Xi()
N = UBound(Xr) '求数组大小,其值必须是2的幂
M = 0