Ich versuche, Dokumentation für alle Fensterfunktionen in scipy.signal hinzuzufügen, und stecke bei den Fenstern Slepian (wie DPSS?) Und Generalized Gaussian fest , von denen ich noch nie zuvor gehört hatte.
Es gibt zwei Variablen, die Formparameter irgendeiner Art sind, p
im verallgemeinerten Gaußschen und width
im Slepischen. ( sig
scheint Sigma zu sein, die Standardabweichung.)
2 Fragen:
Kann mir jemand erklären, wie diese Variablen heißen und was sie tun, anstatt sie rückzuentwickeln und zu erraten?
Können Sie erklären, wofür diese Fenster nützlich sind oder wo sie verwendet werden?
def general_gaussian(M, p, sig, sym=True):
"""Return a window with a generalized Gaussian shape.
The Gaussian shape is defined as ``exp(-0.5*(x/sig)**(2*p))``, the
half-power point is at ``(2*log(2)))**(1/(2*p)) * sig``.
"""
if M < 1:
return np.array([])
if M == 1:
return np.ones(1, 'd')
odd = M % 2
if not sym and not odd:
M = M + 1
n = np.arange(0, M) - (M - 1.0) / 2.0
w = np.exp(-0.5 * (n / sig) ** (2 * p))
if not sym and not odd:
w = w[:-1]
return w
def slepian(M, width, sym=True):
"""Return the M-point slepian window.
"""
if (M * width > 27.38):
raise ValueError("Cannot reliably obtain slepian sequences for"
" M*width > 27.38.")
if M < 1:
return np.array([])
if M == 1:
return np.ones(1, 'd')
odd = M % 2
if not sym and not odd:
M = M + 1
twoF = width / 2.0
alpha = (M - 1) / 2.0
m = np.arange(0, M) - alpha
n = m[:, np.newaxis]
k = m[np.newaxis, :]
AF = twoF * special.sinc(twoF * (n - k))
[lam, vec] = linalg.eig(AF)
ind = np.argmax(abs(lam), axis=-1)
w = np.abs(vec[:, ind])
w = w / max(w)
if not sym and not odd:
w = w[:-1]
return w
Mögliche Übereinstimmungen:
Die Funktion dpss_windows von nipy verwendet NW
die "standardisierte halbe Bandbreite entsprechend 2NW = BW * f0 = BW * N / dt, wobei dt jedoch als 1 angenommen wird".
Matlabs dpss verwendet time_halfbandwidth
Ist dies das gleiche Fenster? Ist time_halfbandwidth
das gleiche wie width
?
Diese DPSS-Definition hat "die gewünschte Grenzfrequenz der Hauptkeule im Bogenmaß pro Sekunde".
Die verallgemeinerte Normalverteilung hat β (gleich zweimal p
?), Was nur als Formparameter bezeichnet wird, mit Normalverteilung für β = 1 und Laplace-Verteilung für β = 2.