logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.
  • #1 4806904
    NH2501
    Poziom 10  
    Witam!

    Szukałem, szukałem i nic nie mogę znaleźć o "centrowaniu widma".
    Czy ktoś się spotkał z taką procedurą? Moja wiedz o FFT jest płytka i może nie jest to poprawna nazwa.
    Zabieg ten jest potrzebny dla uzyskania poprawnej skali częstotliwości.

    Mam poprawne widmo jednak po nałożeniu skali f wypada ono w złym miejscu. Wiem, że mam je w jakiś sposób przesunąć przed nałożeniem na skalę. Ma to związek z odbiciami lustrzanymi (część rzeczywista) i ujemnymi offsetami (część urojona).

    Pozdrawiam,
    Hubert Bartkowiak
  • #2 4808154
    shg
    Poziom 35  
    Jeżeli korzystasz z jakiegoś programu matematycznego, to zajrzyj do pomocy, przy fft() (albo cfft(), jeżeli program ma taką osobną funkcję) powinien być przykład zastosowania takiej funkcji centrującej.

    Jeżeli natomiast upierasz się, żeby to zrobić ręcznie, czy też nie korzystasz z tego typu programu, to wynik zależał będzie od implementacji. Najczęściej jest tak, że tablica z wynikami zaczyna się od częstotliwości dodatnich, po składowej Nyquista zaczyna się część dla częstotliwości ujemnych w odwrotnej kolejności, tzn. od najwyższej do najnizszej częstotliwości.
    Centrowanie takiego widma sprowadza się do podzielenia tablicy na dwie części (dodatnie i ujemne częstotliwości). Miejsce w którym należy podzielić zależy od implementacji. Czasem w jednym elemencie tablicy znajduje się składowa stała (jako rzeczywista) i składowa częstotliwosci Nyquista (jako urojona, mimo tego, że jest rzeczywista), a czasem obie składowe w osobnych elementach. W zależnosci od tego, dla N próbek sygnału, będziesz miał albo N+1, albo N elementów w tablicy widma. W pierwszym przypadku punkty o indeksach od 0 do N/2 należy zostawić, a punkty o indeksach N/2+1 do N "dokleić" przed nimi w odwrotnej kolejności. W drugim przypadku należy zostawić punkty o indeksach od 0 do N/2-1 a "dokleić" przed nimi punkty o indeksach N/2 do N-1, również w odwrotnej kolejności.

    Sprawdzić to można przez policzenie FFT dla N punktów i sprawdzenie długości wyniku transformacji.
  • #3 4817767
    NH2501
    Poziom 10  
    Ogromne dzięki za wyjaśnienia. Faktycznie, sporo ona zmienia w wyglądzie widma po dołożeniu osi częstotliwości. A wiesz może jak ten proceder nazywa się w terminologii angielskiej?

    Pozdrawiam,
    NH2501
  • #4 4820857
    shg
    Poziom 35  
    Spectrum shifting, ale z tym byłbym ostrożny, bo to tylko częściowe przesunięcie, a samo przesunięcie widma może oznaczać po prostu jego przesunięcie (jako całości). Spectrum centering, to już lepsze, ale też niedoskonałe.
    Jako taka nazwa tego raczej nie istnieje, bo proces ten nie wynika z żadnych zależności matematycznych, a tylko z organizacji danych w konkretnej implementacji. Z punktu widzenia matematyki, dostajemy po prostu dodatnie i ujemne częstotliwości, a to jak są one ułożone, wynika tylko z zastosowanego algorytmu. Interpretacja natomiast, niezależnie od ich ułozenia w pamięci, pozostaje ta sama.
  • #5 4844262
    NH2501
    Poziom 10  
    Witam!

    Chciałbym powrócić do tego tematu, bo zwątpiłem czy dobrze korzystam z Twoich wskazówek. W załączniku widmo (zespolone) nad którym pracuje przed centrowaniem.
    Jeśli się nie mylę, to po lewej są f ujemne, a po prawej f dodatnie.
    Po centrowaniu powinno ono wyglądać tak, że urojone "duchy" powinny sąsiadować z rzeczywistymi pikami widma. A jeśli widmo ma przechodzić od najmniejszych do największych częstotliwości, to zdaje się, że muszę w odwrotnej kolejności przepisać obie połówki widma, a nie tylko jedna, jak pisałeś.

    Czy może mieć to miejsce, tj. taka jest specyfika algorytmu FFT, którego używam?
  • #6 4844587
    shg
    Poziom 35  
    Co do implementacji, to równie dobrze mogło by być na przemian, raz ujemna raz dodatnia. Napisałem tylko jak jest najczęściej. Myślę, że najlepszym rozwiązaniem będzie po prostu wygenerowanie odpowiednich sygnałów testowych i sprawdzenie, ale najpierw poszukałbym w dokumentacji.
REKLAMA