2026a

# nextpow2


2 的更高次幂的指数

函数库: TyMath

# 语法

P = nextpow2(A)

# 说明

P = nextpow2(A) 返回对 A 中每个元素满足 的最小的 2 的幂的指数。按照惯例,nextpow2(0) 返回零。

您可以使用 nextpow2 填充传递到 ty_fft 的信号。当信号长度并非 2 次幂时,这样做可以加快 FFT 的运算速度。示例

# 示例

下一个双精度整数值的 2 次幂

定义一个整数值向量,并计算下一个 2 次幂大于这些值的指数。

using TyMath
a = [1 -2 3 -4 5 9 519]
p = nextpow2.(a)
p = 1×7 Matrix{Int64}:
 0  1  2  2  3  4  10

计算正的 2 的更高次幂。

np2 = 2 .^ p
np2 = 1×7 Matrix{Int64}:
 1  2  4  4  8  16  1024

保留原始输入值的符号。

np2 .* sign.(a)
ans = 1×7 Matrix{Int64}:
 1  -2  4  -4  8  16  1024
无符号整数值的 2 更高次幂

定义一个无符号整数向量,并计算 2 的更高次幂大于这些值的指数。

using TyMath
a = UInt32.([1020 4000 32700])
p = nextpow2.(a)
p = 1×3 Matrix{Int64}:
 10  12  15

计算下一个大于 a 中值的 2 次幂。

2 .^ p
ans = 1×3 Matrix{Int64}:
 1024  4096  32768
带填充的优化 FFT

当信号长度不等于 2 的幂时,使用 nextpow2 函数可提升 ty_fft 的性能。

创建包含 8191 个样本值的一维向量。

using TyMath
rng = MT19937ar(5489)
x = rand(rng, 1, 8191)

计算 2 的更高次幂中大于 8191 的值。

p = nextpow2(8191)
n = 2^p
n = 8192
y = ty_fft(x, n)

# 输入参数

A - 输入值
标量 | 向量 | 矩阵 | 多维数组

输入值,指定为标量、向量、矩阵或多维数组。

示例: 15

示例: [-15.123 32.456 63.111]

示例: Int16([-15 32 63])

数据类型: Int64 | Int32 | Int16 | Int128 | Float16 | Float32 | Float64 | UInt8 | UInt16 | UInt32 | UInt64

复数支持:

# 另请参阅

fft | ty_fft | log2 | pow2