scipy.signal의 모든 창 기능에 대한 설명서를 추가하려고하는데 Slepian (DPSS와 동일?) 및 Generalized Gaussian 창 에 붙어 있습니다. 이전에는 들어 본 적이 없었습니다.
p
일반화 된 가우시안 및 width
슬레 피안 에서 어떤 유형의 모양 매개 변수 인 두 가지 변수가 있습니다 . ( sig
표준 편차 인 시그마 인 것으로 보입니다.)
두 가지 질문 :
역 엔지니어링과 추측 대신이 변수가 무엇이며 무엇을하는지 설명 할 수 있습니까?
이 창들이 무엇을 위해 유용한 지 또는 어디에 사용되는지 설명 할 수 있습니까?
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
가능한 경기 :
nipy의 dpss_windows 함수 는 NW
"2NW = BW * f0 = BW * N / dt에 해당하는 표준화 된 반 대역폭이지만 dt는 1로 사용됨 "을 사용합니다.
Matlab의 dpss 는 time_halfbandwidth
동일한 창입니까? 가 time_halfbandwidth
같은 것은 width
?
이 DPSS 정의 에는 "초당 라디안 단위로 원하는 주 로브 차단 주파수"가 있습니다.
일반 정규 분포 는 β p
= 1에 대한 정규 분포와 β = 2에 대한 라플라스 분포와 함께 모양 매개 변수라고하는 β (두 번 ?)를 갖습니다 .