logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[DSP] Jak policzyć diagonalną bispektrum sygnału

Grzybens 27 Gru 2011 21:12 1506 5
REKLAMA
  • #1 10310811
    Grzybens
    Poziom 13  
    Mam taki problem.
    Mam sygnał rzeczywisty x[n]. Potrzebuję policzyć diagonalną jego bispektrum.
    Samo liczenie BS jest dosyć skomplikowaną sprawą i zabiera trochę zasobów (tworzy się duża macierz), a w zasadzie całe BS nie jest mi potrzebne. Potrzebuję jedynie diagonalną tej macierzy.
    Znalazłem sobie wzór na tą diagonalną, ale mam mały problem.
    Diagonalną można policzyć w następujący sposób:

    DBS = X^2(w)X*(2w)
    gdzie 'w' to pulsacja, 'X' to dft sygnału x, a 'X*' to sprzężenie

    Nie wiem tylko jak zinterpretować to 2w. To jest podwójna pulsacja, ale jak ją uzyskać? Trzeba resamplować sygnał?
  • REKLAMA
  • #2 10345496
    Grzybens
    Poziom 13  
    Dalej pociągnę temat bo może ktoś jednak będzie wiedział. Mógłby ktoś obeznany sprawdzić czy dobrze kombinuję?
    Z tego co pamiętam to X(2f) oznacza tyle co x(0.5t)
    Czy tzn że wystarczy jak zrobię resample sygnału z fs na fs/2
    sygnał skróci mi się wtedy o połowę. Następnie uzupełnię sygnał zerami i otrzymam 2 sygnały tej samej długości z czego jeden z nich będzie X(2w)
    Czy mam rację?
  • REKLAMA
  • #3 10370685
    kspro
    Poziom 27  
    Myślę, że źle kombinujesz, chociaż wiem tyle o bispektrum ile wyczytałem z Wikipedii albo nawet i mniej :)
    "Z tego co pamiętam to X(2f) oznacza tyle co x(0.5t)" - według mnie to bzdura, ale ad rem!
    Nie trzeba niczego resamplować, po prostu posługując się tym samym ciągiem próbek sygnału x(t) trzeba obliczyć DFT dwa razy: raz - prążek dla danej częstotliwości/pulsacji ω, czyli X(ω), a dwa - prążek dla 2ω, czyli X(2ω), i wstawić do wzoru. Jeżeli trzeba obliczyć cała diagonalną bispektrum, to może się opłacać przeprowadzenie wpierw FFT, bo i tak będą potrzebne wszystkie prążki z dolnej połowy i co drugi (parzysty) z górnej połowy widma.
  • REKLAMA
  • #4 10371297
    Grzybens
    Poziom 13  
    kspro napisał:

    "Z tego co pamiętam to X(2f) oznacza tyle co x(0.5t)" - według mnie to bzdura, ale ad rem!

    Wynika to z własności przekształcenia Fouriera:

    x(at) = 1/a * X(w/a) gdy a>0

    Co do Twojego algorytmu, to później też o nim myślałem. Natomiast nie miałem za bardzo czasu żeby to sprawdzić. :(
  • REKLAMA
  • Pomocny post
    #5 10375460
    kspro
    Poziom 27  
    No tak, teraz rozumiem o co Ci chodziło, mianowicie o własność transformacji Fouriera zwaną podobieństwem, tylko że formalny zapis który podałeś jest nieprawidłowy, bo po znaku równości brakuje operatora transformaty odwrotnej. Formalnie powinno być tak:
    Jeżeli x(t) <=> X(jω) to wówczas dla a>0 zachodzi x(at) <=> 1/a * X(jω/a)
    Natomiast ja przyjąłem, że x(0.5t) oznacza próbkę o dwa razy mniejszym numerze (n/2) natomiast X(2f) odpowiedni prążek widma, co ma się nijak do siebie, i dlatego napisałem, że to bzdura. Ale mniejsza o to.

    Chciałbym podkreślić coś innego, co mnie uderzyło. Z Wikipedii bispektrum B(f1,f2) = X(-f1-f2) • X(f1) • X(f2), możliwe że to jakieś tam uproszczenie ale jeżeli pamiętamy, że F(-n) = F*(n), to dla ω1=ω2=ω wychodzi to co napisałeś na początku, czyli DBS=X²(ω)•X*(2ω). Gdzie indziej znalazłem, że bispektrum używa się między innymi do wykrywania nieliniowości, no i rzeczywiście wygląda na to, że B(f1,f2) jest iloczynem dwóch prążków i ich produktu przemiany f1+f2 (jak w mieszaczu), bez tego produktu przemiany wyjdzie zero. Wszystko to łącznie oznaczałoby, że indeksy f1 i f2 bispektrum muszą być ograniczone tak żeby produkt przemiany nie wychodził poza fs/2, co w przypadku diagonalnej oznacza f < fs/4, bo inaczej to nie miałoby sensu ze względu na aliasy. Biorąc to pod uwagę uważam, że to co wcześniej napisałem ma sens.
  • #6 10375992
    Grzybens
    Poziom 13  
    No tak, skrót myślowy którego użyłem faktycznie może wprowadzić w błąd. Nawet dalsza część tamtej wypowiedzi tego dokładnie nie prostuje. Ale tak jak piszesz, mniejsza o to.
    Dzięki za wytłumaczenie. Myślę, że sprawa już jest rozwiązana. :)
REKLAMA