utils/maths
用于数学处理的辅助模块。
这些函数和类仅用于内部,这意味着最终用户无需访问此处的内容。
- utils/maths
- static
.interpolate_data(input)
.permute_data(array, dims, axes)
⇒*
.softmax(arr)
⇒T
.log_softmax(arr)
⇒T
.dot(arr1, arr2)
⇒number
.cos_sim(arr1, arr2)
⇒number
.magnitude(arr)
⇒number
.min(arr)
⇒*
.max(arr)
⇒*
.medianFilter(data, windowSize)
.round(num, decimals)
⇒number
.bankers_round(x)
⇒number
.dynamic_time_warping(matrix)
⇒Array.<Array<number>>
- inner
- ~P2FFT
new P2FFT(size)
.createComplexArray()
⇒Float64Array
.fromComplexArray(complex, [storage])
⇒Array.<number>
.toComplexArray(input, [storage])
⇒Float64Array
.transform(out, data)
⇒void
.realTransform(out, data)
.inverseTransform(out, data)
⇒void
._transform4(out, data, inv)
⇒void
._singleTransform2(data, out, outOff, off, step)
⇒void
._singleTransform4(data, out, outOff, off, step, inv)
⇒void
._realTransform4(out, data, inv)
._singleRealTransform2(data, out, outOff, off, step)
⇒void
._singleRealTransform4(data, out, outOff, off, step, inv)
- ~NP2FFT
~AnyTypedArray
:Int8Array
|Uint8Array
|Uint8ClampedArray
|Int16Array
|Uint16Array
|Int32Array
|Uint32Array
|Float32Array
|Float64Array
- ~P2FFT
- static
utils/maths.interpolate_data(input)
类型: utils/maths
的静态方法
参数 | 类型 |
---|---|
input | TypedArray |
utils/maths.permute_data(array, dims, axes) ⇒ <code> * </code>
帮助方法,直接置换 AnyTypedArray
类型: utils/maths
的静态方法
返回值: *
- 置换后的数组和新的形状。
参数 | 类型 |
---|---|
array | T |
dims | Array.<number> |
axes | Array.<number> |
utils/maths.softmax(arr) ⇒ <code> T </code>
计算数字数组的softmax。
类型: utils/maths
的静态方法
返回: T
- softmax数组。
参数 | 类型 | 描述 |
---|---|---|
arr | T | 要计算softmax的数字数组。 |
utils/maths.log_softmax(arr) ⇒ <code> T </code>
计算输入数组的softmax函数的对数。
类型: utils/maths
的静态方法
返回: T
- 结果log_softmax数组。
参数 | 类型 | 描述 |
---|---|---|
arr | T | 要计算log_softmax函数的输入数组。 |
utils/maths.dot(arr1, arr2) ⇒ <code> number </code>
计算两个数组的点积。
类型: utils/maths
的静态方法
返回: number
- arr1和arr2的点积。
参数 | 类型 | 描述 |
---|---|---|
arr1 | Array.<number> | 第一个数组。 |
arr2 | Array.<number> | 第二个数组。 |
utils/maths.cos_sim(arr1, arr2) ⇒ <code> number </code>
计算两个数组之间的余弦相似度。
类型: utils/maths
的静态方法
返回: number
- 两个数组之间的余弦相似度。
参数 | 类型 | 描述 |
---|---|---|
arr1 | Array.<number> | 第一个数组。 |
arr2 | Array.<number> | 第二个数组。 |
utils/maths.magnitude(arr) ⇒ <code> number </code>
计算给定数组的大小。
类型: utils/maths
的静态方法
返回: number
- 数组的大小。
参数 | 类型 | 描述 |
---|---|---|
arr | Array.<number> | 要计算大小的数组。 |
utils/maths.min(arr) ⇒ <code> * </code>
返回数组中最小元素的值和索引。
类型: utils/maths
的静态方法
返回: *
- 最小元素的值和索引,格式为:[valueOfMin, indexOfMin]
抛出:
Error
如果数组为空。
参数 | 类型 | 描述 |
---|---|---|
arr | Array<number> | TypedArray | 数字数组。 |
utils/maths.max(arr) ⇒ <code> * </code>
返回数组中最大元素的值和索引。
类型: utils/maths
的静态方法
返回: *
- 最大元素的值和索引,格式为:[valueOfMax, indexOfMax]
抛出:
Error
如果数组为空。
参数 | 类型 | 描述 |
---|---|---|
arr | Array<number> | AnyTypedArray | 数字数组。 |
utils/maths.medianFilter(data, windowSize)
对提供的数据执行中值滤波。填充通过镜像数据完成。
类型: utils/maths
的静态方法
参数 | 类型 | 描述 |
---|---|---|
data | AnyTypedArray | 输入数组 |
windowSize | number | 窗口大小 |
utils/maths.round(num, decimals) ⇒ <code> number </code>
辅助函数,用于将数字四舍五入到给定的位数。
类型: utils/maths
的静态方法
返回: number
- 四舍五入后的数字
参数 | 类型 | 描述 |
---|---|---|
num | number | 要四舍五入的数字 |
decimals | number | 位数 |
utils/maths.bankers_round(x) ⇒ <code> number </code>
辅助函数,用于将数字四舍五入到最接近的整数,其中平局四舍五入到最接近的偶数。也称为“银行家舍入”。这是 python 中的默认舍入模式。例如:1.5 四舍五入到 2,2.5 四舍五入到 2。
类型: utils/maths
的静态方法
返回: number
- 四舍五入后的数字
参数 | 类型 | 描述 |
---|---|---|
x | number | 要四舍五入的数字 |
utils/maths.dynamic_time_warping(matrix) ⇒ <code> Array. < Array < number > > </code>
测量两个时间序列(例如,输入音频和输出标记以生成标记级时间戳)之间的相似性。
类型: utils/maths
的静态方法
参数 | 类型 |
---|---|
matrix | Array.<Array<number>> |
utils/maths~P2FFT
基-4 FFT 的实现。
P2FFT 类提供对长度为 2 的幂的数组执行快速傅里叶变换的功能。代码改编自 https://npmjs.net.cn/package/fft.js
Kind: utils/maths
的内部类
- ~P2FFT
new P2FFT(size)
.createComplexArray()
⇒Float64Array
.fromComplexArray(complex, [storage])
⇒Array.<number>
.toComplexArray(input, [storage])
⇒Float64Array
.transform(out, data)
⇒void
.realTransform(out, data)
.inverseTransform(out, data)
⇒void
._transform4(out, data, inv)
⇒void
._singleTransform2(data, out, outOff, off, step)
⇒void
._singleTransform4(data, out, outOff, off, step, inv)
⇒void
._realTransform4(out, data, inv)
._singleRealTransform2(data, out, outOff, off, step)
⇒void
._singleRealTransform4(data, out, outOff, off, step, inv)
new P2FFT(size)
抛出:
Error
FFT 大小必须是大于 1 的 2 的幂。
参数 | 类型 | 描述 |
---|---|---|
size | number | 输入数组的大小。必须是大于 1 的 2 的幂。 |
p2FFT.createComplexArray() ⇒ <code> Float64Array </code>
创建一个大小为 2 * size
的复数数组。
Kind: P2FFT
的实例方法
Returns: Float64Array
- 一个大小为 2 * size
的复数数组。
p2FFT.fromComplexArray(complex, [storage]) ⇒ <code> Array. < number > </code>
将存储在 Float64Array 中的复数表示转换为实数数组。
Kind: P2FFT
的实例方法
Returns: Array.<number>
- 表示输入复数表示的实数数组。
参数 | 类型 | 描述 |
---|---|---|
complex | Float64Array | 要转换的复数表示。 |
[storage] | Array.<number> | 可选数组,用于存储结果。 |
p2FFT.toComplexArray(input, [storage]) ⇒ <code> Float64Array </code>
将实值输入数组转换为复值输出数组。
Kind: P2FFT
的实例方法
Returns: Float64Array
- 复值输出数组。
参数 | 类型 | 描述 |
---|---|---|
input | Float64Array | input |
[storage] | Float64Array | 实值输入数组。 |
[storage]
用于存储输出数组的可选缓冲区。
Kind: P2FFT
的实例方法
抛出:
参数 | 类型 | 描述 |
---|---|---|
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array |
|
data | Float64Array | out |
用于存储结果的输出缓冲区。
data
Kind: P2FFT
的实例方法
抛出:
- 要转换的输入数据。
参数 | 类型 | 描述 |
---|---|---|
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array | |
data | Float64Array | 对给定的输入缓冲区执行实值正向 FFT,并将结果存储在给定的输出缓冲区中。输入缓冲区必须仅包含实数值,而输出缓冲区将包含复数值。输入和输出缓冲区必须不同。 |
Error
如果输入和输出缓冲区相同。
out
Kind: P2FFT
的实例方法
抛出:
- 输出缓冲区。
参数 | 类型 | 描述 |
---|---|---|
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array | data |
data | Float64Array | out |
包含实值的输入缓冲区。
p2FFT.inverseTransform(out, data) ⇒ <code> void </code>
Kind: P2FFT
的实例方法
参数 | 类型 | 描述 |
---|---|---|
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array | data |
data | Float64Array | 对给定的 |
Error 如果 out 和 data 指向同一个缓冲区。 | number | out |
p2FFT._singleTransform2(data, out, outOff, off, step) ⇒ <code> void </code>
对给定的数据集执行基数为 2 的离散傅里叶变换。
Kind: P2FFT
的实例方法
参数 | 类型 | 描述 |
---|---|---|
data | Float64Array | 对给定的 |
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array | data |
outOff | number | 写入输出数据的偏移量。 |
off | number | 开始读取输入数据的偏移量。 |
step | number | 索引输入数据的步长。 |
p2FFT._singleTransform4(data, out, outOff, off, step, inv) ⇒ <code> void </code>
对长度为 8 的输入数据执行基数为 4 的变换。
Kind: P2FFT
的实例方法
参数 | 类型 | 描述 |
---|---|---|
data | Float64Array | 长度为 8 的输入数据数组。 |
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array | 长度为 8 的输出数据数组。 |
outOff | number | 要开始写入的输出数组的索引。 |
off | number | 要开始读取的输入数组的索引。 |
step | number | 输入数组中元素之间的步长。 |
Error 如果 out 和 data 指向同一个缓冲区。 | number | 逆变换的比例因子。 |
p2FFT._realTransform4(out, data, inv)
实数输入基数为 4 的实现。
Kind: P2FFT
的实例方法
参数 | 类型 | 描述 |
---|---|---|
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array | 变换数据的输出数组。 |
data | Float64Array | 要变换的实数数据的输入数组。 |
Error 如果 out 和 data 指向同一个缓冲区。 | number | 用于规范化逆变换的比例因子。 |
p2FFT._singleRealTransform2(data, out, outOff, off, step) ⇒ <code> void </code>
对提供的进行单次实数输入基数为 2 的变换。
Kind: P2FFT
的实例方法
参数 | 类型 | 描述 |
---|---|---|
data | Float64Array | 输入数据数组。 |
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array | 输出数据数组。 |
outOff | number | 输出偏移量。 |
off | number | 输入偏移量。 |
step | number | 步长。 |
p2FFT._singleRealTransform4(data, out, outOff, off, step, inv)
使用基数为 4 的算法计算单个实值变换。此方法仅在 len=8 时调用。
Kind: P2FFT
的实例方法
参数 | 类型 | 描述 |
---|---|---|
data | Float64Array | 输入数据数组。 |
对给定的输入数据执行快速傅里叶变换 (FFT),并将结果存储在输出缓冲区中。 | Float64Array | 输出数据数组。 |
outOff | number | 输出数组中的偏移量。 |
off | number | 输入数组中的偏移量。 |
step | number | 输入数组的步长。 |
Error 如果 out 和 data 指向同一个缓冲区。 | number | inverse 的值。 |
utils/maths~NP2FFT
NP2FFT 类提供对非 2 的幂长度的数组执行快速傅里叶变换的功能。在这种情况下,使用 chirp-z 变换。
更多信息,请参见: https://math.stackexchange.com/questions/77118/non-power-of-2-ffts/77156#77156
Kind: utils/maths
的内部类
new NP2FFT(fft_length)
构造一个新的 NP2FFT 对象。
参数 | 类型 | 描述 |
---|---|---|
fft_length | number | FFT 的长度。 |
utils/maths~AnyTypedArray : <code> Int8Array </code> | <code> Uint8Array </code> | <code> Uint8ClampedArray </code> | <code> Int16Array </code> | <code> Uint16Array </code> | <code> Int32Array </code> | <code> Uint32Array </code> | <code> Float32Array </code> | <code> Float64Array </code>
种类:utils/maths
的内部类型定义。
< > GitHub 上更新