Sub 倒序(X_() As Double)Dim N As
vb6.0吧
全部回复
仅看楼主
level 11
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 / 2J = N / 2For I = 1 To N - 2If I < J Then '倒序T = X_(J)X_(J) = X_(I)X_(I) = TEnd IfDebug.Print I, Jk = LH '下面是向右进位算法DoIf k > J Then Exit Do ' 高位是1吗?J = J - k ' 是的,高位置0k = k / 2 ' 准备次高位的权Loop Until k = 0 ' 次高位的权若非0,则检查新的次高位J = J + k ' 否则若最高位是0,则置1NextEnd SubSub 蝶形算法(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 ByteDim Wr As Double, Wi As Double, W1r As Double, W1i As Double, Tr As Double, Ti As DoubleDim Pi As Double, T As DoubleDim Xi()N = UBound(Xr) '求数组大小,其值必须是2的幂M = 0L = 2Pi = 3.14
15926535897
9DoL = L + LM = M + 1Loop Until L > NN = L / 2ReDim Xi(N - 1)L = 1DoLE = 2 ^ LLE1 = LE / 2Wr = 1Wi = 0T = Pi / LE1W1r = Cos(T)W1i = -Sin(T)R = 0DoP = RDoQ = P + LE1Tr = Xr(Q) * Wr - Xi(Q) * WiTi = Xr(Q) * Wi + Xi(Q) * WrXr(Q) = Xr(P) - TrXi(Q) = Xi(P) - TiXr(P) = Xr(P) + TrXi(P) = Xi(P) +
2020年04月29日 07点04分 1
level 11
傅里叶变换vb源码
2020年04月29日 07点04分 2
level 11
测试可变换成功
2020年04月29日 07点04分 3
1