mindspore.ops.blackman_window
- mindspore.ops.blackman_window(window_length, periodic=True, *, dtype=None)[源代码]
布莱克曼窗口函数,常用来为FFT截取有限长的信号片段。
window_length 是一个Tensor,控制返回的窗口大小,其数据类型必须是整数。特别当 window_length 为1时,返回的窗口只包含一个值,为 1 。 periodic 决定返回的窗口是否会删除对称窗口的最后一个重复值,并准备用作该函数的周期窗口。因此,如果 periodic 为True,则 \(N\) 为 \(window\_length + 1\) 。
\[w[n] = 0.42 - 0.5 cos(\frac{2\pi n}{N - 1}) + 0.08 cos(\frac{4\pi n}{N - 1})\]其中, \(N\) 是总的窗口长度 window_length ,n为小于 \(N\) 的自然数 [0, 1, …, N-1]。
- 参数:
window_length (Tensor) - 返回窗口的大小,数据类型为int32,int64。输入数据的值为[0, 1000000]的整数。
periodic (bool,可选) - 决定返回的窗口作为周期函数或者对称窗口。默认值:
True
。
- 关键字参数:
dtype (mindspore.dtype,可选) - 输出数据类型,目前只支持float16、float32和float64。默认值:
None
。
- 返回:
1D Tensor,大小为 window_length ,数据类型与 dtype 一致。如果 dtype 为
None
,则数据类型为float32。- 异常:
TypeError - window_length 不是Tensor。
TypeError - periodic 不是bool。
TypeError - dtype 不是float16、float32、float64。
TypeError - window_length 的数据类型不是int32、int64。
ValueError - window_length 的值不在[0, 1000000]。
ValueError - window_length 的维度不等于0。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> from mindspore import Tensor, ops >>> window_length = Tensor(10, mindspore.int32) >>> output = ops.blackman_window(window_length, periodic=True, dtype=mindspore.float32) >>> print(output) [-2.9802322e-08 4.0212840e-02 2.0077014e-01 5.0978714e-01 8.4922993e-01 1.0000000e+00 8.4922981e-01 5.0978690e-01 2.0077008e-01 4.0212870e-02]