Bartlett窗口与三角形窗口非常相似,不同之处在于端点为零。它通常用于信号处理中以使信号逐渐变细,而不会在频域中产生过多的纹波。
Parameters(numpy.bartlett(M)): M:int Number of points in the output window. If zero or less, an empty array is returned. 返回: out:array
最大值标准化为1的三角形窗口(仅当样本数为奇数时才出现值1),第一个和最后一个样本等于零。
例:
import numpy as np
print(np.bartlett(12))
输出:
[ 0. 0.18181818 0.36363636 0.54545455 0.72727273 0.90909091 0.90909091 0.72727273 0.54545455 0.36363636 0.18181818 0. ]
绘制窗口及其频率响应(需要SciPy和matplotlib):
对于窗口:
import numpy as np
import matplotlib.pyplot as plt
from numpy.fft import fft, fftshift
window = np.bartlett(51)
plt.plot(window)
plt.title("Bartlett window")
plt.ylabel("Amplitude")
plt.xlabel("Sample")
plt.show()
输出:
对于频率:
import numpy as np
import matplotlib.pyplot as plt
from numpy.fft import fft, fftshift
window = np.bartlett(51)
plt.figure()
A = fft(window, 2048) / 25.5
mag = np.abs(fftshift(A))
freq = np.linspace(-0.5, 0.5, len(A))
response = 20 * np.log10(mag)
response = np.clip(response, -100, 100)
plt.plot(freq, response)
plt.title("Frequency response of Bartlett window")
plt.ylabel("Magnitude [dB]")
plt.xlabel("Normalized frequency [cycles per sample]")
plt.axis('tight')
plt.show()
输出:
相关用法
- Python Numpy numpy.ndarray.__mod__()用法及代码示例
- Python Numpy numpy.ndarray.__divmod__()用法及代码示例
- Python Numpy numpy.ndarray.__floordiv__()用法及代码示例
- Python Numpy numpy.ndarray.__invert__()用法及代码示例
- Python Numpy numpy.ndarray.__or__()用法及代码示例
- Python Numpy numpy.ndarray.__sub__()用法及代码示例
- Python Numpy numpy.ndarray.__lshift__()用法及代码示例
- Python Numpy numpy.ndarray.__rshift__()用法及代码示例
- Python Numpy numpy.ndarray.__pow__()用法及代码示例
- Python Numpy numpy.ndarray.__eq__()用法及代码示例
- Python Numpy numpy.ndarray.__ge__()用法及代码示例
- Python Numpy numpy.ndarray.__le__()用法及代码示例
- Python Numpy numpy.ndarray.__gt__()用法及代码示例
- Python Numpy numpy.ndarray.__ne__()用法及代码示例
- Python Numpy numpy.ndarray.__neg__()用法及代码示例
注:本文由纯净天空筛选整理自RituRajSingh7大神的英文原创作品 numpy bartlett() in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。