本文简要介绍 python 语言中 scipy.signal.ZoomFFT
的用法。
用法:
class scipy.signal.ZoomFFT(n, fn, m=None, *, fs=2, endpoint=False)#
创建一个可调用的缩放 FFT 变换函数。
这是对单位圆周围一组等距频率的线性调频脉冲 z-transform (
CZT
) 的特化,用于比计算整个 FFT 和截断更有效地计算 FFT 的一部分。- n: int
信号的大小。
- fn: array_like
给出频率范围的长度为 2 的序列 [f1, f2] 或标量,假定范围为 [0, fn]。
- m: 整数,可选
要评估的点数。默认值为 n。
- fs: 浮点数,可选
采样频率。如果
fs=10
例如,表示 10 kHz,则f1和f2也将以 kHz 为单位。默认采样频率为 2,因此f1和f2应在 [0, 1] 范围内,以保持变换低于奈奎斯特频率。- endpoint: 布尔型,可选
如果为 True,则 f2 是最后一个样本。否则,不包括在内。默认为假。
- f: ZoomFFT
可调用对象
f(x, axis=-1)
用于计算缩放 FFTx.
参数 ::
返回 ::
注意:
选择默认值使得
f(x, 2)
等效于fft.fft(x)
,如果m > len(x)
,则f(x, 2, m)
等效于fft.fft(x, m)
。采样频率为 1/dt,即信号 x 中样本之间的时间步长。单位圆对应于从 0 到采样频率的频率。默认采样频率为 2 表示 f1、f2 值直至奈奎斯特频率都在 [0, 1) 范围内。对于以弧度表示的 f1、f2 值,应使用 2*pi 的采样频率。
请记住,缩放 FFT 只能对现有 FFT 的点进行插值。它无法帮助解决两个独立的附近频率。频率分辨率只能通过增加采集时间来提高。
这些函数是使用 Bluestein 的算法实现的(如
scipy.fft
)。 [2]参考:
[1]Steve Alan Shilling,“啁啾 z-transform 及其应用的研究”,第 29 页(1970 年)https://krex.k-state.edu/dspace/bitstream/handle/2097/7844/LD2668R41972S43.pdf
[2]Leo I. Bluestein,“离散傅立叶变换计算的线性滤波方法”,东北电子研究与工程会议记录 10, 218-219 (1968)。
例子:
要绘制转换结果,请使用以下内容:
>>> import numpy as np >>> from scipy.signal import ZoomFFT >>> t = np.linspace(0, 1, 1021) >>> x = np.cos(2*np.pi*15*t) + np.sin(2*np.pi*17*t) >>> f1, f2 = 5, 27 >>> transform = ZoomFFT(len(x), [f1, f2], len(x), fs=1021) >>> X = transform(x) >>> f = np.linspace(f1, f2, len(x)) >>> import matplotlib.pyplot as plt >>> plt.plot(f, 20*np.log10(np.abs(X))) >>> plt.show()
相关用法
- Python SciPy signal.ZerosPolesGain用法及代码示例
- Python SciPy signal.czt_points用法及代码示例
- Python SciPy signal.chirp用法及代码示例
- Python SciPy signal.residue用法及代码示例
- Python SciPy signal.iirdesign用法及代码示例
- Python SciPy signal.max_len_seq用法及代码示例
- Python SciPy signal.kaiser_atten用法及代码示例
- Python SciPy signal.oaconvolve用法及代码示例
- Python SciPy signal.hilbert用法及代码示例
- Python SciPy signal.ricker用法及代码示例
- Python SciPy signal.group_delay用法及代码示例
- Python SciPy signal.cheb2ord用法及代码示例
- Python SciPy signal.get_window用法及代码示例
- Python SciPy signal.lfilter用法及代码示例
- Python SciPy signal.morlet用法及代码示例
- Python SciPy signal.coherence用法及代码示例
- Python SciPy signal.dfreqresp用法及代码示例
- Python SciPy signal.TransferFunction用法及代码示例
- Python SciPy signal.dbode用法及代码示例
- Python SciPy signal.residuez用法及代码示例
- Python SciPy signal.bilinear_zpk用法及代码示例
- Python SciPy signal.firls用法及代码示例
- Python SciPy signal.impulse用法及代码示例
- Python SciPy signal.buttord用法及代码示例
- Python SciPy signal.find_peaks用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.ZoomFFT。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。