节点 Digitalsignals IIRFilter 仅创建 NaN 值
Node Digitalsignals IIRFilter creates only NaN Values
我打算在项目中使用 DSP.js in the form of node.js digitalsignals npm 模块来处理信号数据。目前我正在尝试对我的信号执行低通滤波。由于我的信号的已处理数组数据在应用滤波器后仅包含 'NaN' 值,因此我尝试将滤波器应用于我使用 DSP.js 振荡器函数创建的信号(实际上是一个简单的正弦信号)。
我通过将其写入 console.log() 来检查正弦振荡器是否按预期生成正弦信号。
但在应用 IIRFilter 后,处理后的正弦信号也会产生 NaN 值。
我的测试代码如下:
var dsp = require('digitalsignals');
var buffer = [];
var osc = new dsp.Oscillator(dsp.SINEWAVE, 440, 1, 2048, 22050);
osc.generate();
buffer = osc.signal;
console.log(buffer); // shows correct sine signal array
var filter = new dsp.IIRFilter(dsp.LOWPASS, 200, 44100);
filter.process(buffer);
console.log(buffer); // shows only NaN
代码基本上是 copy/paste corban brook 的 github 站点。
可以测试此代码,例如这里:https://tonicdev.com/npm/digitalsignals,您可以在这里剪切和粘贴,不需要帐户。
他们实际上发布了错误的示例,您需要调用过滤器,例如像这样:
var filter = new dsp.IIRFilter(dsp.LOWPASS, 200,1,44100);
如果你查看 dsp.js https://github.com/zewemli/dsp.js/blob/master/dsp.js 你会在某处找到这样的定义:
var IIRFilter = DSP.IIRFilter = function(type, cutoff, resonance, sampleRate)
所以你基本上在你的调用中缺少共振参数。
我打算在项目中使用 DSP.js in the form of node.js digitalsignals npm 模块来处理信号数据。目前我正在尝试对我的信号执行低通滤波。由于我的信号的已处理数组数据在应用滤波器后仅包含 'NaN' 值,因此我尝试将滤波器应用于我使用 DSP.js 振荡器函数创建的信号(实际上是一个简单的正弦信号)。
我通过将其写入 console.log() 来检查正弦振荡器是否按预期生成正弦信号。
但在应用 IIRFilter 后,处理后的正弦信号也会产生 NaN 值。
我的测试代码如下:
var dsp = require('digitalsignals');
var buffer = [];
var osc = new dsp.Oscillator(dsp.SINEWAVE, 440, 1, 2048, 22050);
osc.generate();
buffer = osc.signal;
console.log(buffer); // shows correct sine signal array
var filter = new dsp.IIRFilter(dsp.LOWPASS, 200, 44100);
filter.process(buffer);
console.log(buffer); // shows only NaN
代码基本上是 copy/paste corban brook 的 github 站点。
可以测试此代码,例如这里:https://tonicdev.com/npm/digitalsignals,您可以在这里剪切和粘贴,不需要帐户。
他们实际上发布了错误的示例,您需要调用过滤器,例如像这样:
var filter = new dsp.IIRFilter(dsp.LOWPASS, 200,1,44100);
如果你查看 dsp.js https://github.com/zewemli/dsp.js/blob/master/dsp.js 你会在某处找到这样的定义:
var IIRFilter = DSP.IIRFilter = function(type, cutoff, resonance, sampleRate)
所以你基本上在你的调用中缺少共振参数。