Незалежно від того, чи ви масштабуєте результат свого DFT, вперед чи в зворотному напрямку, це не має нічого спільного з умовами або з математичного зручності. Це стосується всього входу до DFT. Дозвольте мені показати кілька прикладів, коли масштабування потрібно або не потрібно як для прямого, так і для зворотного перетворення.
Потрібно масштабувати перехід вперед на 1 / N.
Для початку слід зрозуміти, що для аналізу простої синусоїди довжина перетворення повинна бути невідповідною, математично кажучи. Припустимо, N = 1024, Freq = 100, і ваш сигнал:
f (n) = cos (Freq * 2 * Pi * n / N)
Якщо ви візьмете 1024 точок DFT з f (n), ви знайдете цей бін [100] = 512. Але це не є значущим значенням, поки ви не масштабуєте його за N. 512/1024 = 1/2, і звичайно, інші 1/2 знаходяться в негативному спектрі у бункері [924].
Якщо подвоїти довжину DFT, N = 2048, вихідні значення будуть вдвічі вищими за 1024 точок DFT, що знову ж таки робить безглузді результати, якщо ми не масштабуємо на 1 / N. Тривалість DFT не повинна бути фактором для подібного роду аналізів. Тож у цьому прикладі потрібно масштабувати масштаб DFT на 1 / N.
Не повинно масштабувати прямої трансформації.
Тепер припустимо, що у вас є імпульсна характеристика фільтра FIR на 32 крана і хочете знати його частотну характеристику. Для зручності ми припустимо фільтр низьких частот з коефіцієнтом посилення 1. Ми знаємо, що для цього фільтра DC компонент DFT повинен бути 1. І повинно бути зрозуміло, що це буде так, незалежно від розміру DFT, оскільки компонент постійного струму - це просто сума вхідних значень (тобто сума коефіцієнтів FIR).
Таким чином, для цього введення DFT не масштабується на 1 / N, щоб отримати змістовну відповідь. Ось чому ви можете занулювати імпульсну відповідь на скільки завгодно, не впливаючи на результат перетворення.
У чому полягає принципова відмінність цих двох прикладів?
Відповідь проста. У першому випадку ми постачали енергію для кожного вхідного зразка. Іншими словами, синусоїда була присутня для всіх 1024 зразків, тому нам потрібно було масштабувати вихід DFT на 1/1024.
У другому прикладі, за визначенням, ми постачали енергію лише для 1 вибірки (імпульс при n = 0). Для імпульсу було потрібно 32 зразки, щоб пробити свій шлях через 32-кратний фільтр, але ця затримка не має значення. Оскільки ми постачали енергію для 1 зразка, ми масштабуємо вихід DFT на 1. Якщо імпульс визначався з 2 одиницями енергії замість 1, ми би масштабували вихід на 1/2.
Не повинно масштабувати зворотне перетворення.
Тепер розглянемо зворотний DFT. Як і у випадку з прямим DFT, ми повинні враховувати кількість проб, яким ми постачаємо енергію. Звичайно, ми повинні бути дещо обережнішими, тому що ми повинні заповнити як позитивні, так і негативні частоти. Однак якщо ми розмістимо імпульс (тобто 1) у двох відповідних бінах, то отриманим результатом зворотного DFT буде косинусова хвиля з амплітудою 2 незалежно від того, скільки точок ми будемо використовувати у зворотному DFT.
Таким чином, як і у прямому DFT, ми не масштабуємо зворотний вихід DFT, якщо вхід є імпульсом.
Потрібно масштабувати обернене перетворення.
Тепер розглянемо випадок, коли ви знаєте частотну характеристику фільтра низьких частот і хочете зробити зворотний DFT, щоб отримати його імпульсну характеристику. У цьому випадку, оскільки ми постачаємо енергію в усіх точках, ми повинні масштабувати вихід DFT на 1 / N, щоб отримати змістовну відповідь. Це не так очевидно, тому що вхідні значення будуть складними, але якщо ви працюєте на прикладі, ви побачите, що це правда. Якщо ви не масштабуєте на 1 / N, у вас буде пікове значення імпульсної відповіді на порядок N, що не може бути випадком, якщо посилення дорівнює 1.
Чотири ситуації, які я тільки що деталізував, - це приклади кінцевих точок, де зрозуміло, як масштабувати результат DFT. Однак між кінцевими точками є багато сірої зони. Тож розглянемо ще один простий приклад.
Припустимо, у нас є наступний сигнал з 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
Зауважте різниці амплітуди, частоти та тривалості для трьох компонентів. На жаль, DFT цього сигналу покаже всі три компоненти на одному рівні потужності, навіть якщо 2-й компонент має 1/36 рівня потужності інших двох.
Факт, що всі три компоненти постачають однакову кількість енергії, очевидний, що пояснює результати ДФТ, але тут слід зробити важливий момент.
Якщо ми знаємо тривалість для різних частотних компонентів, то можемо відповідно масштабувати різні частотні відрізки. У цьому випадку ми зробимо це, щоб точно масштабувати вихід DFT: bin [100] / = 128; бін [200] / = 768; бін [400] / = 128;
Що підводить мене до моєї остаточної точки; загалом, ми не маємо уявлення про те, як довго певний частотний компонент присутній на вході в наш DFT, тому ми не можемо зробити такий тип масштабування. Однак, як правило, ми постачаємо енергію для кожної точки вибірки, тому нам слід аналізувати прямий DFT на 1 / N під час аналізу сигналу.
Для ускладнення питань ми майже напевно застосуємо вікно до цього сигналу для поліпшення спектральної роздільної здатності DFT. Оскільки перша і третя частотні компоненти знаходяться на початку та в кінці сигналу, вони ослаблені на 27 дБ, тоді як центральний компонент ослаблений лише 4 дБ (вікно Ханнінга).
Щоб було зрозуміло, вихід DFT може бути досить поганим представленням вхідних даних, масштабованих чи ні.
У випадку зворотного DFT, який зазвичай є чистою математичною задачею, на відміну від аналізу невідомого сигналу, вхід до DFT чітко визначений, тому ви знаєте, як масштабувати вихід.
При аналізі сигналу за допомогою спектрального аналізатора, аналогового або FFT проблеми є подібними. Ви не знаєте потужності відображуваного сигналу, якщо ви також не знаєте його робочого циклу. Але навіть тоді прозорість, проміжок, швидкість зачистки, фільтрація, тип детектора та інші фактори працюють на покращення результату.
Зрештою, ви повинні бути дуже обережними, рухаючись між часовими та частотними областями. Питання, яке ви задали щодо масштабування, є важливим, тому я сподіваюся, що я зрозумів, що ви повинні зрозуміти вхід до DFT, щоб знати, як масштабувати вихід. Якщо вхід не чітко визначений, результат DFT слід сприймати дуже скептично, незалежно від того, масштабуєте ви його чи ні.