IFFT - synteza sygnału na bazie jego widma

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
garteb
Posty: 2
Rejestracja: 14 wrz 2010 00:23
Wersja środowiska: LabVIEW 8.5

IFFT - synteza sygnału na bazie jego widma

Post autor: garteb »

Witam wszystkich,

Pracując nad projektem w którym zastosować muszę odwrotną transformatę Fourriera do syntezy sygnału na bazie jego zmodyfikowanego widma natrafiłem na pewien problem. Żeby przybliżyć zagadnienie podaję opis algorytmu:

1. Wyznaczam widmo częstotliwościowe (Amplituda i Faza)
2. Modyfikuję amplitudy dla interesującej mnie częstotliwości ( w zamieszczonym przykładzie nie ma tego kroku - żeby nie zaciemniać ).
3. Konwertuję widmo do postaci składającej się z części rzeczywistej (Re) i urojonej (Im).
4. Z Re oraz Im tworzę liczbę zespoloną w postaci Re + Im*i.
5. Widmo będące już tablicą liczb zespolonych podaję do funkcji IFFT.
6. Buduję waveforma żeby "odzyskać" pierwotny sygnał.

Problemem jest to, że po zastosowaniu IFFT mam połowę mniej próbek i inną amplitudę. Nie świadczy to jednak o tym, że mam o połowę krótszy sygnał, ale wygląda to tak jakby jego próbkowanie zmniejszyło się o połowę.

Czy ktoś może zajmował się czymś podobnym?
W czym popełniam błąd?

Z góry dzięki za wszelkie rady,
Pozdrawiam

Daję screeny i VI (wymaga Sound & Vibration Toolkit)
Załączniki
IFFT_synteza_panel.png
IFFT_synteza.png
FFT tutorial.vi
(24.27 KiB) Pobrany 372 razy
Awatar użytkownika
rivui
Posty: 27
Rejestracja: 01 lut 2010 16:50
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Kopenhaga

Re: IFFT - synteza sygnału na bazie jego widma

Post autor: rivui »

Hej

Z tego co na szybko zobaczylem to inaczej budujesz dwa Waveform'y ktore potem porownujesz. Pierwszy budujesz dajac tablice wartosci Y i dt natomiast drugi dajac tylko wartosci Y przez co dt bedzie wartoscia default. Rozwin strukture build waveform i daj te sama wartosc dt. Niestety mam LabView 8.5 w pracy wiec nie moge otworzyc Twojego pliku.

Pozdrawiam
Awatar użytkownika
smiga
Administrator
Posty: 817
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: IFFT - synteza sygnału na bazie jego widma

Post autor: smiga »

Jak wyciągniesz sobie informację z bloczka SVFA Magnitude and Phase... Spectrum info/spectral info/FFT size to zobaczysz, że masz 2000, składowa rzeczywista i urojona mają po 1000, ich złożenie (Re/Im To Complex) daje też 1000 ... więc to na pewno nie jest problem dt.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

IFFT - synteza sygnału na bazie jego widma

Post autor: jogurt_owocowy »

garteb pisze:W czym popełniam błąd?
W tym, że bloczek liczący widmo zwraca najwyraźniej nie pełne widmo, a tylko jego dolną połowę (niosącą pełną informację o sygnale, jeśli ten jest rzeczywisty). W istniejącym rozwiązaniu musiałbyś po modyfikacjach w dziedzinie widmowej zrekonstruować pełne symetryczne widmo, "odbijając" je względem częstotliwości Nyquista (i dbając o kilka ważnych szczegółów). Moim zdaniem, lepszym rozwiązaniem jest użycie "surowej" FFT do policzenia pełnego widma, pracy na nim i powrócenie do dziedziny czasu tak, jak to robisz teraz.

Pozdrawiam
garteb
Posty: 2
Rejestracja: 14 wrz 2010 00:23
Wersja środowiska: LabVIEW 8.5

Re: IFFT - synteza sygnału na bazie jego widma

Post autor: garteb »

Po przeczytaniu porad doszedłem do czegoś co już działa bliżej moich oczekiwań.
Pomogło symetryczne odbicie widma. Nadal jednak miałem problem z wartością amplitud.
Okazało się, że pomogło pomnożenie części Re i Im przez liczbę próbek podzieloną przez 1,41 (pierwiastek z 2).

Kojarzy mi się to z RMS dla przebiegu sinusoidalnego - czy to przemnożenie na czuja ma jakieś poparcie teoretyczne?
(szukałem informacji odnośnie tego jak w praktyce zrealizować krok po kroku syntezę z użyciem IFFT ale nie natknąłem się na coś takiego)

W załączeniu screeny.
Załączniki
IFFT_synteza_panel_2.png
IFFT_synteza_2.png
ODPOWIEDZ