FIR filter design using the window method.
From the given frequencies freq and corresponding gains gain, this function constructs an FIR filter with linear phase and (approximately) the given frequency response.
Parameters :  numtaps : int
freq : arraylike, 1D
gain : arraylike
nfreqs : int, optional
window : string or (string, float) or float, or None, optional
nyq : float


Returns :  taps : numpy 1D array of length numtaps

See also
Notes
From the given set of frequencies and gains, the desired response is constructed in the frequency domain. The inverse FFT is applied to the desired response to create the associated convolution kernel, and the first numtaps coefficients of this kernel, scaled by window, are returned.
The FIR filter will have linear phase. The filter is Type I if numtaps is odd and Type II if numtaps is even. Because Type II filters always have a zero at the Nyquist frequency, numtaps must be odd if gain[1] is not zero.
New in version 0.9.0.
References
[R55]  Oppenheim, A. V. and Schafer, R. W., “DiscreteTime Signal Processing”, PrenticeHall, Englewood Cliffs, New Jersey (1989). (See, for example, Section 7.4.) 
[R56]  Smith, Steven W., “The Scientist and Engineer’s Guide to Digital Signal Processing”, Ch. 17. http://www.dspguide.com/ch17/1.htm 