小编Hex*_*ler的帖子

JavaScript 中的傅里叶变换可视化

我使用这个库对音频文件进行 fft,之后我想用canvasjs可视化结果,但我不知道如何做到这一点。

我不确定应该使用什么 asxyaxes。如果是频率和幅度,怎么办?最大x轴值应等于最大频率,如果是,则步长值是多少?(我计算了幅度和最大频率)。

如果有人能提供帮助,我将不胜感激。

编辑:我尝试重现这个,但我得到了以下结果。幅度并没有那么糟糕,但相位却很可怕。我认为这Math.atan2()将是问题所在,因为这是根据两个数字计算的,所以我尝试使用 Math.js 和数组,但得到了相同的结果。(链接中的预期结果)

    for (var i = 0; i < 10 - 1/50; i+=1/50) {
      realArray.push(Math.sin(2 * Math.PI * 15 * i) + Math.sin(2 * Math.PI * 20 * i));
    }

    //Phase
    counter = 0;
    for (var i = 0; i < realArray.length ; i++) {
      rnd.push({x: i, y: (Math.atan2(imag[counter], realArray[counter]) * (180 / Math.PI))});
      counter++;
    }

    //Magnitude
    counter = 0 …
Run Code Online (Sandbox Code Playgroud)

javascript fft typescript canvasjs ionic2

2
推荐指数
1
解决办法
3683
查看次数

标签 统计

canvasjs ×1

fft ×1

ionic2 ×1

javascript ×1

typescript ×1