本文主要是介绍js方波、三角波、斜波、正弦波数据生成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/* DEPTH 256 数据深度,即存储单元的个数WIDTH 1 存储单元的宽度 MODE 1 1:正弦波 2:三角波 3:斜坡 4:方波 maxwords 65535 最大值 */waveCreate(DEPTH, WIDTH, MODE, maxwords) {let arr = [];let temp = 0;for (let i = 0; i < DEPTH; i++) {switch (MODE) {case 1: //正弦波{temp = ((maxwords / 2) * Math.sin(2 * Math.PI * i / DEPTH) + maxwords / 2);break;}case 2: //三角波{let k = 2 * maxwords / DEPTH;if ((i % DEPTH) < DEPTH / 2) {temp += k;} else temp -= k;break;}case 3: //斜坡{let k = (maxwords - 1) / (DEPTH - 1);temp += k;if (temp >= maxwords) temp -= maxwords;break;}case 4: //方波{if ((i % DEPTH) <= (DEPTH / 2))temp = maxwords;elsetemp = 0;break;}default: {break;}}arr.push(temp);} //end forreturn arr;},
调用结果
let data = this.waveCreate(256, 1, 1, 65535);
let data = this.waveCreate(256, 1, 2, 65535);
let data = this.waveCreate(256, 1, 3, 65535);
let data = this.waveCreate(256, 1, 4, 65535);
这篇关于js方波、三角波、斜波、正弦波数据生成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!