Заполнение нулями в частотной области - специальная обработка X [N / 2]

18

Предположим, мы хотим интерполировать периодический сигнал с четным числом отсчетов (например, N = 8) путем заполнения нулями в частотной области.

Позвольте DFT X=[A,B,C,D,E,F,G,H]
Теперь давайте добавим 16 образцов Y. Каждый пример учебника и онлайн-учебник, который я видел, вставляет нули при подаче . (Тогда это интерполированный сигнал.)[Y4...Y11]
Y=[2A,2B,2C,2D,0,0,0,0,0,0,0,0,2E,2F,2G,2H]
y = idft(Y)

Почему бы не использовать вместо этого Y=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]?

Насколько я могу судить (мои знания по математике ограничены):

  • Минимизирует общую мощность
  • Это гарантирует, что если оно xявляется реальнымy
  • yпо-прежнему пересекается xво всех точках выборки, как требуется (я думаю, что это верно для любого pместа Y=[2A,2B,2C,2D,pE,0,0,0,0,0,0,0,(2-p)E,2F,2G,2H])

Так почему же так никогда не делается?


Редактировать : xне обязательно реальный или ограниченный диапазон.

finnw
источник
Вы пишете "Каждый пример учебника и онлайн-учебник, который я видел, вставляет нули в ...", можете ли вы обновить свой пост некоторыми ссылками? Просто любопытно, потому что вы также пишете, что x не обязательно является действительным значением, и первая упомянутая вами конструкция (в общем случае) не дает (в общем) реального результата с помощью обратного ДПФ.
Ниарен
@niaren вот один пример: dspguru.com/dsp/howtos/…
finnw
1
Стоит отметить, что для того, чтобы был действительным значением, вам необходимо указать Y = [ 2 A , 2 B , 2 C , 2 D , E , 0 , 0 , 0 , 0 , 0 , 0 , 0 , E , 2 F , 2 G , 2 H ]YYзнак равно[2A,2В,2С,2D,Е,0,0,0,0,0,0,0,Е*,2F,2грамм,2ЧАС](т. е. когда вы дублируете E для «отрицательной частоты» половины вектора частотной области, вам необходимо сопрягать его. Сигналы, которые действительны во временной области, имеют сопряженно-симметричные ДПФ.
Jason R
1
@ Джейсон R, если входной сигнал является действительным значением, то и E так [2A, 2B, 2C, 2D, E, 0,0,0,0,0,0,0, E, 2F, 2G, 2H] удовлетворяет этому условию. Если входные данные не являются действительными, то нет необходимости заставлять выходные данные быть действительными.
Finnw
Ты прав. Вот что я получаю за то, что пишу комментарий слишком поздно вечером.
Джейсон Р

Ответы:

7

Давайте посмотрим на частоты бинов в вашем 8-точечном ДПФ:

Поэтому при интерполяции с коэффициентом 2 , точкаЕчастоты «ы становится-πили+π.

ωAзнак равно0,ωВзнак равноπ/4,ωСзнак равноπ/2,ωDзнак равно3π/4,ωЕзнак равноπзнак равно-π (моd 2π),ωFзнак равно5π/4знак равно-3π/4 (моd 2π),ωграммзнак равно3π/2знак равно-π/2 (моd 2π),ωЧАСзнак равно7π/4знак равно-π/4 (моd 2π)
Е-π+π

На первый взгляд, я не вижу, в чем проблема с вашим подходом, так как не ясно, следует ли помещать в корзину, связанную с π или - π .Еπ-π

На странице Джулиуса О. Смита III он утверждает условие:

Кроме того, мы требуем, чтобы когда N четное, в то время как нечетное не требует такого ограничения.Икс(N/2)знак равноИкс(-N/2)знак равно0N

И его пример там для нечетного , что позволяет избежать проблемы.N


Не уверен, что это требуется, но вот полная ссылка на работу Юлиуса:

Смит, Д.О. Математика дискретного преобразования Фурье (ДПФ) с аудиоприложениями, второе издание, http://ccrma.stanford.edu/~jos/mdft/ , 2007 г., электронная книга, доступ к которой 28 сентября 2011 г.

Питер К.
источник
2

Есть много способов интерполировать данные. В моем понимании интерполяция означает, что вы «рисуете» линии между некоторыми точками данных. Это можно сделать разными способами. Одним из типов интерполяции, который полезен в DSP (особенно в многоскоростном DSP), является «Ограниченная полоса интерполяции». Если вы Google, вы получите много интересных и полезных хитов. То, что вы предлагаете, это не полосовая интерполяция. В вашей «повышенной выборке» х у вас есть частотные компоненты, которых нет в оригинальной х.

Изменить (слишком долго, чтобы вписаться в комментарий):

Иксзнак равно[A,В,С,D,Е,F,грамм,ЧАС]

Учитывая реальный вклад

Иксзнак равно[A,В,С,D,Е,D*,С*,В*]

Икс0,0,Икс1,0,,,,0-π/2π/2-π

Икс2знак равно[A,В,С,D,Е,D*,С*,В*,A,В,С,D,Е,D*,С*,В*]

π/2

YNзнак равноΣКзнак равно-Икс2КsяNс(0,5N-К)

На практике, однако, будут некоторые искажения, потому что фильтр с кирпичной стеной не реалистичен. Практичный фильтр может подавлять / удалять частоты на входе или оставлять некоторые частотные составляющие в изображении в сигнале с повышенной частотой дискретизации. Или фильтр может сделать компромисс между ними. Я думаю, что ваша конструкция в частотной области также отражает этот компромисс. Эти два примера представляют два разных варианта:

Yзнак равно[A,В,С,D,Е,0,0,0,0,0,0,0,Е*,D*,С*,В*]

Yзнак равно[A,В,С,D,0,0,0,0,0,0,0,0,0,D*,С*,В*]

Если входной диапазон ограничен ниже частоты Найквиста, как в вашей справке, эта проблема исчезнет.

ρ

Yзнак равно[A,В,С,D,ρ,0,0,0,0,0,0,0,ρ*,D*,С*,В*]

niaren
источник
1
Икс
@leftaroundabout Оригинал x ограничен по полосе (в этом примере частоте Найквиста). ОП хочет повысить x в 2 раза (моя интерпретация). Один из способов повышения x - это вставить нули в частотную характеристику, как показано OP (пример без E, тот, который показан в учебниках по DSP), и выполнить обратное FFT. Я считаю, что того же можно было бы достичь, вставив нули (с чередованием) в x и (низкочастотный) фильтр с помощью sinc. При вставке E, как показано OP, повышенная дискретизация x не ограничена полосой частот до исходной частоты Найквиста. Обычно это нежелательно (это искажение). Вы согласны?
Ниарен
1
Еπ2~-π2
Я предполагаю, что частота ± N / 2 присутствует в х. Если это не так (из-за ограничения полосы или иным образом), тогда E будет равно 0, так что не будет никакой разницы между заполнением E (или 2E) и заполнением 0.
finnw
1
Сигнал с ограниченной полосой пропускания может по-прежнему иметь содержимое в ячейке N / 2 из-за "спектральной утечки" из любого спектрального содержимого с непериодической апертурой в DFT, особенно вблизи (но не при) Fs / 2.
hotpaw2