Кілька запитань про сліпі та узагальнені гаусські вікна


10

Я намагаюся додати документацію для всіх віконних функцій в scipy.signal, і я застряг на Slepian (такий же, як DPSS?) Та узагальнених гауссових вікнах, про які я раніше ніколи не чув.

Є дві змінні, які є параметрами форми певного типу, pв узагальненому гауссовому та widthсліпійському. ( sigЗдається, сигма, стандартне відхилення.)

2 питання:

  1. Замість мене зворотної інженерії та здогадувань, хтось може пояснити, як називаються ці змінні і що вони роблять?

  2. Чи можете ви пояснити, для чого ці вікна корисні чи де вони використовуються?

 

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

Можливі матчі:

Функція dpss_windows nipy використовує NW"стандартизовану половину пропускної здатності, що відповідає 2NW = BW * f0 = BW * N / dt, але з dt, прийнятим як 1"

Dpss Matlab використовує time_halfbandwidthЦе те саме вікно? Це time_halfbandwidthте саме, що і width?

Це визначення DPSS має "бажану частоту відсічення основної долі в радіанах на секунду".ωc

Узагальнений нормальний розподіл має β (рівний вдвічі p?), Який просто називають параметром форми, з нормальним розподілом для β = 1 і розподілом Лапласа для β = 2.


FWIW Я, здається, пам’ятаю, що DPSS - це те саме (або надзвичайно схоже на) вікно Kaiser. Вибачте це все, що я отримав. :-)
Spacey

@Mohammad: Вікно Кайзера - це наближення DPSS, я думаю, тому що справжня DPSS обчислювально дорога? en.wikipedia.org/wiki/Window_function#Kaiser_windows
endolith

2
DPSS - це вікно, спроектоване із обмеженою оптимізацією, обмеженням є допустима ширина основної частки. По суті, це мінімізує енергію поза основною часткою (бічні лобзики) відносно нерухомої основної енергії. У мене є хороша книга вдома (за містом у справах), тому я можу сформулювати кращу відповідь, гідну опублікувати, коли я переглядаю, але це суть її.
Брайан

Відповіді:


4

Сліпові послідовності - це сімейство функцій. Більшість алгоритмів обчислюють 2 * NW - 1 послідовності одночасно для даного NW. N - кількість точок у послідовності, а W визначає половину ширини магістральної долі в частотній області для перетворення Фур'є заданої послідовної послідовності. Як правило, для обробки сигналу ви використовуєте СЗ 3 або 4.

NWNWN

Якщо ви оцінюєте спектр потужності стаціонарного часового ряду, DPSS - це набір вікон, який ви повинні використовувати.

Узагальнена Гауссова функція повертає Гауссова схожу функцію, підняту на послідовно більш високі потужності залежно від параметра p. У міру того, як p піднімається до послідовно вищих сил, узагальнений Гаусс стає вужчим у часовій області. Приємною властивістю Гаусса є те, що саме його власне перетворення Фур'є і саме функція досягає межі щодо принципу невизначеності. Функція Гаусса може бути корисною, якщо ви хочете обчислити короткочасне перетворення Фур'є або спектрограму як оцінювач для мінливого за часом спектру потужності нестаціонарного часового ряду.


"Гарна властивість Гаусса полягає в тому, що це його власна трансформація Фур'є". Це справедливо лише для p = 1, правда, правда?
ендоліт

-е-ах2pcос(2πкх)гх

1

Єдиним прикладом спростування GG є власне перетворення. p = 0,5 дає звичайний показник повернення до спини, який має перетворення 2a / (s ^ 2 + a ^ 2).

Що стосується блоку постійного струму, то він є. у частотній області Fdcx (w) = 1 - F (w). Це призведе до відхилення навколо постійного струму з близьким постійним струмом, коли воно стане неоптимізованим у пропускній смузі, що тепер проходить. Тому я використовую лише Dolph для цього, щоб широкосмугова смуга пропускання стала рівномірною.

Це імпульс мінус початкова функція вікна назад у часовій області. Наскільки великий імпульс? він повинен змусити суму послідовності до нуля.

Попередження, послідовність парної довжини змушує нуль на частоті Найквіста, тому вам захочеться цього уникнути.


-1

Фур'є-трансформація Г. Г. також є гауссом. Використовуючи теорему згортання, FT (Gaussian \ times Gaussian) = FT (Gaussian) \ conv FT (Gaussian) = Gaussian \ conv Gaussian = Gaussian. Сподіваюся, що допомогло!


Це узагальнений Гаусс, хоча і не звичайний гаусс. Це не власна трансформація. Дивіться зображення: docs.scipy.org/doc/scipy/reference/generated / ...
ендоліти
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.