Чому ми говоримо, що "нульова накладка насправді не збільшує роздільну здатність частоти"


12

Ось синусоїда частоти f = 236.4 Hz(вона становить 10 мілісекунд; вона має N=441точки зі швидкістю вибірки fs=44100Hz) та її DFT, без нульового прокладки :

введіть тут опис зображення

Єдиний висновок, який ми можемо дати, дивлячись на DFT, це: "Частота приблизно 200 ГГц".

Ось сигнал і його DFT з великим нульовим накладенням :

введіть тут опис зображення

Тепер ми можемо дати набагато більш точний висновок : "Уважно переглянувши максимум спектру, я можу оцінити частоту 236 Гц" (я збільшив масштаб і виявив, що максимум знаходиться поблизу 236).

Моє запитання: чому ми говоримо, що "нульова прокладка не збільшує роздільну здатність" ? (Я дуже часто бачив це речення, тоді вони кажуть "це лише додає інтерполяцію")

=> На моєму прикладі нульова накладка допомогла мені знайти правильну частоту з більш точним дозволом!


1
Ще один спосіб подумати над цим дуже старим питанням: якщо у вас взагалі не був сюжет часових рядів, а лише ффт з низькою роздільною здатністю - ви можете перетворити його на часовий ряд, нульову панель і повторно -fft для виходу 236 Гц. Отже, ффф з низькою роздільною здатністю повинен містити всю ту саму інформацію гладкого.
Джошуа Р.

Відповіді:


19

Резолюція має в цьому контексті дуже конкретне визначення. Це відноситься до вашої здатності вирішити дві окремі тони на сусідніх частотах. Ви збільшили швидкість вибірки вашої оцінки спектру, але ви не отримали жодної здатності розрізняти два тони, які можуть бути, наприклад, 236 Гц і 237 Гц. Натомість вони "розтопляться разом" у єдину крапку, незалежно від того, скільки нульових накладок ви застосовуєте.

Рішення для збільшення роздільної здатності - спостерігати за сигналом протягом більш тривалого періоду часу, а потім використовувати більший DFT. Це призведе до отримання головних часток, ширина яких обернено пропорційна розміру DFT, тому, якщо ви дотримуєтеся досить довго, ви можете фактично вирішити частоти декількох тонів, які знаходяться поруч один з одним.

-

Щоб побачити, як це відбувається, ось графік збільшеного FFT додавання двох сигналів: оригінального синусоїда та сигналу, який відрізняється за частотою від 0 до 100 Гц.

Тільки у напрямку різниці 100 ГГц ділянки (тут ліворуч) ви можете відрізнити (вирішити) два.

Код Scilab для створення сюжету нижче.

введіть тут опис зображення

f = 236.4;
d = 10;
N=441;
fs=44100;
extra_padding = 10000; 

t=[0:1/fs:(d/1000-1/fs)]
ff = [0:(N+extra_padding-1)]*fs/(N+extra_padding);

x = sin(2*%pi*f*t);

XX = [];

for delta_f = [0:100];
    y = sin(2*%pi*(f+delta_f)*t);
    FFTX = abs(fft([x+y zeros(1,extra_padding)]));
    XX = [XX; FFTX];
end

mtlb_axis([0 1300 0 500])

figure(1);
clf
[XXX,YYY] = meshgrid(ff,0:100);
mesh(XXX(1:100,[50:90]),YYY(1:100,[50:90]),XX(1:100,[50:90]))

Дякую ! добре, так що нульове накладання не допоможе вирішити два окремі тони на сусідніх частотах; однак у моєму прикладі це може бути корисним для того, щоб знайти пік спектру, і таким чином знайти основну частоту тону (наприклад, для точного відстеження тону)
Basj

я думав, що "нульова накладка не збільшує роздільну здатність" означала б "ви не можете зробити точне відстеження кроку за допомогою нульового набивання" (це неправда тут, приклад показує, що можна точно визначити деякий крок)
Basj

Я думаю, ви правильно розумієте. Нульова накладка має своє застосування, наприклад, в точній оцінці місця піку з грубого спектру. Це просто не срібна куля.
Джейсон R

1
Я просто спробував щось інше, ніж нульове набивання, але пов'язане. Замість того, щоб робити x(n)довше (з 0кінцем), я тримаю x(n)довжину N, але зміна тут: замість DFT(k) = \sum x(n) exp(-2*i*pi*n*k/N)для k=0,1,...,N-1, я роблю DFT2(k) = \sum x(n) exp(-2*i*pi*n*k/(10*N))для k=0,1,...,10*N-1... Це як додавання більшої кількості бункерів ( 10 Nбін замість Nчастотних бін), але зберігаючи те саме x(n)довжини N. Тепер бункери становлять 10 Гц, 20 Гц, ..., 100 Гц, 110 Гц, 120 Гц, ..... => Це те саме, що нульове прокладка: немає реальної додаткової роздільної здатності, а лише інтерполяція?
Бась

Чи додавання більшої кількості бункерів (10N замість N): DFT2(k) = \sum x(n) exp(-2*i*pi*n*k/(10*N))для k=0,1,...,10*N-1та збереження однакової x(n)довжини Nдають такий же результат, як нульова прокладка: насправді не більша роздільна здатність, а лише інтерполяція?
Бась

13

Термін "роздільна здатність" має численні значення, що може збити з пантелику людей, які намагаються спілкуватися при використанні двох різних значень.

В оптичному сенсі, щоб мати змогу вирішити дві чітко відокремлені точки (або дві сусідні вершини в спектрі) замість однієї розмитої краплі, нульове набивання не допоможе. Це значення, яке, швидше за все, використовується, коли заявляється, що прокладка з нуля не збільшує роздільну здатність.

Якщо вимога до роздільної здатності вимагає занурення (наприклад, мінімум на 3 дБ пониження) між спектральними піками, то роздільна здатність буде навіть нижчою, ніж відстань у FFT-бункері, наприклад, навіть не Fs / N, але 2X-3X, або більше, залежно від використовуваного вікна. Більш слабкою вимогою до роздільної здатності може бути лише інтервал частоти ортогональних векторів DFT, наприклад, Fs / N.

Що стосується точки побудови графіку, так, нульова накладка надасть вам більше балів на графік, як у роздільній здатності DPI (точки точки на дюйм). Це може полегшити виділення екстремуму очним яблуком. Однак це ті самі пункти, які ви отримали, зробивши дуже якісну інтерполяцію сюжету (синполяція Sinc) без будь-якої нульової прокладки, тому вони дійсно не додають жодної інформації, яка не могла б бути обчислена в іншому випадку без нульової прокладки.

З точки зору відстеження тону, параболічна чи синполяційна інтерполяція (інтерполяція між відмітками результатів FFT) віконного результату FFT, що не має нульових розмірів, може дати вам такий же хороший результат, як і більш обчислювально інтенсивніший довший графік FFT з нульовим накладом. Таким чином, нульове набивання дає вам "кращий" результат відстеження кроку, ніж ненульований та неінтерпольований вибір піку, але часто набагато менш ефективно, ніж просто використання інтерполяції.

Якщо ви додасте шум у свій приклад, але трохи менше, ніж сигнал, ви побачите, що пік, накладений нулем, може бути таким же неточним, як і ненульовий підбитий пік. Отже, у більш загальному випадку ви, можливо, не знайшли "правильну" частоту з більшою точністю, ніж раніше. Нульова накладка лише інтерполює неточний результат через шум, що ще одна причина, чому, як кажуть, не збільшує роздільну здатність.


Просто пам’ятайте: що трапиться, якщо у мене однаковий синусоїда f=236.4 hzпід час одного і того ж, 10msале з fs = 192hz замість 44,1Hz: Чи буде справжнє дозвіл частоти вище?
Basj

Підвищення ставки вибірки дасть вам більше високих частот, але той самий проміжок між
бінком

1
Чи збільшить швидкість вибірки sincкрива -подібна у DFT, звузиться чи ні? Якщо ні, це означає, що збільшення частоти вибірки не додасть роздільної здатності (в сенсі здатність вирішувати частоти)
Basj

@Basj Визначення конкретної частоти сигналу зазвичай називається оцінкою параметрів, тобто ви намагаєтеся оцінити параметр частоти. Для роздільної здатності (розділення 2 тонів) роздільна здатність задається де - довжина сигналу. Тож просто зміна частоти вибірки (а не тривалість) не вплине на дозвіл - це вплине на точність оцінки. Т1/TT
Девід

Ширина частоти Sinc пов'язана з шириною вікна даних у часі, нульове набивання або зміна швидкості вибірки насправді не впливає на неї (крім питань, що стосуються вибірки чи квантування).
hotpaw2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.