Tôi đang cố gắng thêm tài liệu cho tất cả các chức năng của cửa sổ trong scipy.signal và tôi bị kẹt trên Slepian (giống như DPSS?) Và các cửa sổ Gaussian tổng quát , điều mà tôi chưa từng nghe thấy trước đây.
Có hai biến là tham số hình dạng của một số loại, p
trong Gaussian tổng quát và width
trong Slepian. ( sig
dường như là sigma, độ lệch chuẩn.)
2 câu hỏi:
Thay vì tôi kỹ thuật đảo ngược và đoán, bất cứ ai cũng có thể giải thích những biến này được gọi là gì và chúng làm gì?
Bạn có thể giải thích những gì các cửa sổ này là hữu ích cho hoặc nơi chúng được sử dụng?
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
Các trận đấu có thể có:
Hàm dpss_windows của nipy sử dụng NW
, "băng thông được chuẩn hóa một nửa tương ứng với 2NW = BW * f0 = BW * N / dt nhưng với dt được lấy là 1"
Sử dụng dpss của Matlabtime_halfbandwidth
Đây có phải là cùng một cửa sổ không? Là time_halfbandwidth
giống như width
?
Phân phối chuẩn tổng quát có (bằng hai lần p
?) Được gọi là tham số hình dạng, với phân phối chuẩn cho = 1 và phân phối Laplace cho β = 2.