Niezależnie od tego, czy skalujesz wyjście DFT, do przodu czy do tyłu, nie ma to nic wspólnego z konwencją ani z tym, co jest matematycznie wygodne. Ma to wszystko związek z danymi wejściowymi do DFT. Pozwólcie, że pokażę kilka przykładów, w których skalowanie jest albo wymagane albo nie jest wymagane zarówno dla transformacji do przodu, jak i odwrotnej.
Musi skalować transformatę do przodu o 1 / N.
Po pierwsze, powinno być jasne, że aby przeanalizować prostą falę sinusoidalną, długość transformacji powinna być nieistotna z matematycznego punktu widzenia. Załóżmy, że N = 1024, Freq = 100, a twój sygnał to:
f (n) = cos (Freq * 2 * Pi * n / N)
Jeśli weźmiesz 1024 punkt DFT f (n), znajdziesz bin [100] = 512. Ale to nie jest znacząca wartość, dopóki nie skalujesz go o N. 512/1024 = 1/2 i oczywiście, druga 1/2 znajduje się w widmie ujemnym w bin [924].
Jeśli podwoisz długość DFT, N = 2048, wartości wyjściowe będą dwa razy większe niż 1024-punktowe DFT, co ponownie sprawia, że wyniki są bez znaczenia, chyba że skalujemy o 1 / N. Długość DFT nie powinna być czynnikiem w tego rodzaju analizach. W tym przykładzie musisz skalować skalę DFT o 1 / N.
Nie wolno skalować transformacji do przodu.
Załóżmy teraz, że masz odpowiedź impulsową filtru FIR z 32 kranami i chcesz poznać jego odpowiedź częstotliwościową. Dla wygody założymy filtr dolnoprzepustowy o wzmocnieniu 1. Wiemy, że dla tego filtra składowa DC DFT musi wynosić 1. I powinno być jasne, że tak będzie bez względu na wielkość DFT, ponieważ składnik DC jest po prostu sumą wartości wejściowych (tj. Sumą współczynników FIR).
Zatem dla tego wejścia DFT nie jest skalowane o 1 / N, aby uzyskać sensowną odpowiedź. Dlatego możesz zerować padającą odpowiedź impulsową tyle, ile chcesz, bez wpływu na wynik transformacji.
Jaka jest podstawowa różnica między tymi dwoma przykładami?
Odpowiedź jest prosta. W pierwszym przypadku dostarczaliśmy energię dla każdej próbki wejściowej. Innymi słowy, fala sinusoidalna była obecna dla wszystkich 1024 próbek, więc musieliśmy skalować moc wyjściową DFT o 1/1024.
W drugim przykładzie z definicji dostarczyliśmy energię tylko dla 1 próbki (impuls przy n = 0). Pobrano 32 próbki, aby impuls przeszedł przez filtr 32 kranów, ale to opóźnienie nie ma znaczenia. Ponieważ dostarczyliśmy energię dla 1 próbki, skalujemy moc wyjściową DFT o 1. Gdyby zdefiniować impuls z 2 jednostkami energii zamiast 1, skalowalibyśmy moc wyjściową o 1/2.
Nie wolno skalować odwrotnej transformacji.
Rozważmy teraz odwrotny DFT. Podobnie jak w przypadku DFT typu forward, musimy wziąć pod uwagę liczbę próbek, do których dostarczamy energię. Oczywiście musimy tu być nieco bardziej ostrożni, ponieważ musimy odpowiednio wypełnić zarówno dodatnie, jak i ujemne przedziały częstotliwości. Jeśli jednak umieścimy impuls (tj. 1) w dwóch odpowiednich przedziałach, to wynikiem wyjściowym odwrotnego DFT będzie fala kosinusowa o amplitudzie 2 bez względu na to, ile punktów użyjemy w odwrotnym DFT.
Tak więc, podobnie jak w przypadku DFT do przodu, nie skalujemy wyjścia odwrotnego DFT, jeśli wejście jest impulsem.
Musi skalować odwrotną transformację.
Rozważmy teraz przypadek, w którym znasz odpowiedź częstotliwościową filtra dolnoprzepustowego i chcesz wykonać odwrotny DFT, aby uzyskać odpowiedź impulsową. W tym przypadku, ponieważ dostarczamy energię we wszystkich punktach, musimy skalować moc wyjściową DFT o 1 / N, aby uzyskać sensowną odpowiedź. Nie jest to tak oczywiste, ponieważ wartości wejściowe będą złożone, ale jeśli przejrzysz przykład, zobaczysz, że to prawda. Jeśli nie skalujesz się o 1 / N, uzyskasz szczytowe wartości odpowiedzi impulsowej rzędu N, co nie może mieć miejsca, jeśli wzmocnienie wynosi 1.
Cztery szczegółowo opisane przeze mnie sytuacje to przykłady punktów końcowych, w których jasne jest, jak skalować wyniki DFT. Jednak między punktami końcowymi jest dużo szarego obszaru. Rozważmy więc kolejny prosty przykład.
Załóżmy, że mamy następujący sygnał, przy N = 1024, Freq = 100:
f(n) = 6 * cos(1*Freq * 2*Pi * n/N) n = 0 - 127
f(n) = 1 * cos(2*Freq * 2*Pi * n/N) n = 128 - 895
f(n) = 6 * cos(4*Freq * 2*Pi * n/N) n = 896 - 1023
Zwróć uwagę na różnice amplitudy, częstotliwości i czasu trwania dla trzech składników. Niestety DFT tego sygnału pokaże wszystkie trzy komponenty na tym samym poziomie mocy, mimo że drugi komponent ma 1/36 poziomu mocy pozostałych dwóch.
Fakt, że wszystkie trzy elementy dostarczają taką samą ilość energii, jest oczywisty, co tłumaczy wyniki DFT, ale należy tu zwrócić uwagę na ważną kwestię.
Jeśli znamy czas trwania różnych składników częstotliwości, możemy odpowiednio skalować różne przedziały częstotliwości. W tym przypadku zrobilibyśmy to, aby dokładnie skalować dane wyjściowe DFT: bin [100] / = 128; bin [200] / = 768; bin [400] / = 128;
Co prowadzi mnie do mojej ostatniej kwestii; generalnie nie mamy pojęcia, jak długo dany składnik częstotliwości jest obecny na wejściu do naszego DFT, więc nie jesteśmy w stanie wykonać tego rodzaju skalowania. Zasadniczo jednak dostarczamy energię dla każdego punktu próbkowania, dlatego podczas analizy sygnału powinniśmy przeskalować do przodu DFT o 1 / N.
Aby skomplikować sprawę, prawie na pewno zastosowalibyśmy okno do tego sygnału, aby poprawić rozdzielczość spektralną DFT. Ponieważ pierwsza i trzecia składowa częstotliwości znajdują się na początku i na końcu sygnału, są tłumione o 27 dB, podczas gdy środkowa część jest tłumiona tylko o 4 dB (okno Hanninga).
Dla jasności, wyjście DFT może być dość słabą reprezentacją wejścia, skalowane lub nie.
W przypadku odwrotnego DFT, który jest zwykle czystym problemem matematycznym, w przeciwieństwie do analizy nieznanego sygnału, wejście do DFT jest jasno określone, więc wiesz, jak skalować wyjście.
Podczas analizy sygnału za pomocą analizatora widma, analogowego lub FFT, problemy są podobne. Nie znasz mocy wyświetlanego sygnału, chyba że znasz jego cykl pracy. Ale nawet wtedy okienkowanie, rozpiętość, prędkości zamiatania, filtrowanie, typ detektora i inne czynniki działają na korzyść wyniku.
Ostatecznie musisz być bardzo ostrożny podczas przechodzenia między domenami czasu i częstotliwości. Pytanie, które zadałeś na temat skalowania, jest ważne, więc mam nadzieję, że wyjaśniłem, że musisz zrozumieć dane wejściowe do DFT, aby wiedzieć, jak skalować dane wyjściowe. Jeśli dane wejściowe nie są jasno określone, wyniki DFT należy rozpatrywać z dużą dozą sceptycyzmu, niezależnie od tego, czy skalujesz je, czy nie.