当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy bartlett()用法及代码示例


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()

输出:



相关用法


注:本文由纯净天空筛选整理自RituRajSingh7大神的英文原创作品 numpy bartlett() in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。