标题:call 函数未定义,是否格式不对
只看楼主
谈一刻
Rank: 1
等 级:新手上路
威 望:2
帖 子:17
专家分:3
注 册:2012-7-20
结帖率:66.67%
已结贴  问题点数:20 回复次数:4 
call 函数未定义,是否格式不对
我想用音频波形转换频谱,已经做了模 kkfft.bas
在调用时出错,不明白,请指导,谢谢。
Private Sub Timer2_Timer()
  Dim value As Integer, i As Integer
  Randomize
  value = Int(200 * Rnd + (-100))
  List1.AddItem value
  If List1.ListCount > 0 And (List1.ListCount Mod 128 = 0) Then
    Picture1.Cls
    For i = List1.ListCount - 128 To List1.ListCount - 1
      xr(128 - (List1.ListCount - i)) = Val(List1.List(i))
      xi(128 - (List1.ListCount - i)) = 0
    Next
    'FFT变换
  ' Call kkfft0(pr(), pi(), 128, 1) '出错处---函数未定义
    '绘图
    Picture1.Scale (0, 100)-(127, -100)
    Picture1.DrawWidth = 1
    For i = 0 To 127
      Picture1.Line (i, Abs(xr(i)))-(i + 1, Abs(xr(i + 1))), vbBlue
    Next i
  End If
End Sub
---------------------
以下为call 的fftt.bas 的前面部分。
Public Sub kkfft(ByRef pr() As Double, _
    ByRef pi() As Double, _
    ByRef fr() As Double, _
    ByRef fi() As Double, _
    ByVal n As Integer, _
    ByVal k As Integer, ByVal L As Integer)
 
    Dim it As Integer
    Dim m As Integer
    Dim iis As Integer
    Dim i As Integer
    Dim j As Integer
    Dim nv As Integer
    Dim l0 As Integer
   
    Dim p, q, s, vr, vi, poddr, poddi As Double
    For it = 0 To n - 1
        m = it
        iis = 0
        For i = 0 To k - 1
            j = Int(m / 2)
            iis = 2 * iis + (m - 2 * j)
            m = j
        Next
        fr(it) = pr(iis)
        fi(it) = pi(iis)
    Next。。。。。。。。

搜索更多相关主题的帖子: call Dim Integer Double iis 
2018-04-27 11:27
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:14 
自己看看名称,多一个0,另外还缺3参数。

Call kkfft0(pr(), pi(), 128, 1) '出错处---函数未定义

Public Sub kkfft(ByRef pr() As Double, _
    ByRef pi() As Double, _
    ByRef fr() As Double, _
    ByRef fi() As Double, _
    ByVal n As Integer, _
    ByVal k As Integer, ByVal L As Integer)
2018-04-27 11:42
谈一刻
Rank: 1
等 级:新手上路
威 望:2
帖 子:17
专家分:3
注 册:2012-7-20
得分:0 
还是不懂它的格式写法。希望列出。
看这段描述“kkfft.bas,VB版快速傅里叶变换模块,翻译自徐世良的“C
语言常用算法程序集”,供vb用户免费使用
‘yangwqcumt,2012.04
‘----------------------------------------------------------------------------------
‘模块说明:
‘Pr(),pr(),分别是输入序列的实部与虚部;
‘Fr(),fi()分别是输出序列的实部与虚部;
‘以上数组的长度都是n,而且n等于2的k次方,n=2k
‘L为0时做正变换,为1时做反变换
‘--------------------------请参考徐教授的著作---------------------------”
按照这里,要call它,我的语法是否:kkfft pr 0 f(r) 0 128 0  ?不懂,试不对。
2018-05-02 15:17
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
'Pr(),fr(),分别是输入序列的实部与虚部;
'Pi(),fi()分别是输出序列的实部与虚部;
'以上数组的长度都是n,而且n等于2的k次方,n=2 ‘L为0时做正变换,为1时做反变换

以上数据都赋值后就可以调用

call kkfft( pr(),pi(),fr(),fi(), n,k , L ),
2018-05-02 16:28
谈一刻
Rank: 1
等 级:新手上路
威 望:2
帖 子:17
专家分:3
注 册:2012-7-20
得分:0 
好的,谢谢。
准备做个50周的正弦波来验证一下
2018-05-03 16:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486435-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.114385 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved