首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >8位PCM信号的FFT分析

8位PCM信号的FFT分析
EN

Stack Overflow用户
提问于 2016-03-12 15:33:40
回答 1查看 1K关注 0票数 0

我在node:https://www.npmjs.com/package/fft-js中使用了快速傅里叶变换实现。

我使用wav读取器,它读取我的wav文件,该文件被编码为8位PCM,并将数据输出为一个8位无符号整数数组。

我看到fft-js期望信号值从-1到1,如它的用法示例所示:

代码语言:javascript
复制
var fft = require('fft-js').fft,
    signal = [1,0,1,0];

var phasors = fft(signal);

console.log(phasors);

我该怎么办?我是否应该将wav文件的8位pcm表示形式转换为-1到1之间的值,如果是这样的话?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-12 15:50:59

根据维基百科上的这个文章,您应该能够获取8位uint数据,并将其映射到-1到1之间的一个数字,与此类似:

代码语言:javascript
复制
let arrForFFT = uint8Array.map(num => (num - 128) / 128)

如果我的uint8Array看起来像这样:

代码语言:javascript
复制
[ 256, 192, 128, 64, 0]

那么arrForFFT看起来会是这样的:

代码语言:javascript
复制
[ 1, 0.5, 0, -0.5, -1]

编辑:如果您不使用ES2015,代码将如下所示:

代码语言:javascript
复制
var arrForFFT = uint8Array.map(function(num) {
  return (num - 128) / 128
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35959607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档