def sweep(f1, f2, duration, fs, method='linear', window=None):
"""Generate frequency modulated sweep.
:param f1: starting frequency in Hz
:param f2: ending frequency in Hz
:param duration: duration of the pulse in s
:param fs: sampling rate in Hz
:param method: type of sweep (``'linear'``, ``'quadratic'``, ``'logarithmic'``, ``'hyperbolic'``)
:param window: window function to use (``None`` means rectangular window)
For supported window functions, see documentation for :func:`scipy.signal.get_window`.
>>> import arlpy
>>> x1 = arlpy.signal.sweep(20000, 30000, duration=0.5, fs=250000)
>>> x2 = arlpy.signal.cw(20000, 30000, duration=0.5, fs=250000, window='hamming')
>>> x2 = arlpy.signal.cw(20000, 30000, duration=0.5, fs=250000, window=('kaiser', 4.0))
"""
n = int(round(duration*fs))
x = _sig.chirp(time(n, fs), f1, duration, f2, method)
if window is not None:
w = _sig.get_window(window, n)
x *= w
return x
评论列表
文章目录