Теорема о сдвиге гласит :
Умножение на линейную фазу для некоторого целого числа m соответствует круговому сдвигу выхода : заменяется на , где нижний индекс интерпретируется по модулю N (то есть периодически).
Хорошо, это прекрасно работает:
plot a
N = 9
k = [0, 1, 2, 3, 4, 5, 6, 7, 8]
plot ifft(fft(a)*exp(-1j*2*pi*3*k/N))
Он сдвинут на 3 сэмпла, как я и ожидал.
Я думал, что вы могли бы также сделать это, чтобы смещаться на доли выборки, но когда я пытаюсь это сделать, мой сигнал становится мнимым, а не похожим на оригинал:
plot real(ifft(fft(a)*exp(-1j*2*pi*3.5*k/N)))
plot imag(ifft(fft(a)*exp(-1j*2*pi*3.5*k/N))), 'b--'
Я не ожидал этого вообще. Разве это не эквивалентно свертыванию с реальным импульсом, сдвинутым на 3,5 сэмпла? Значит, импульс должен быть реальным, а результат - реальным? И он должен иметь более или менее ту же форму, что и оригинал, но sinc интерполированы?
Ответы:
Если вы хотите, чтобы смещенный выходной сигнал IFFT был реальным, поворот / поворот фазы в частотной области должен быть сопряженным симметричным, как и данные. Это может быть достигнуто путем добавления соответствующего смещения к показателю вашего комплексного exp () для данного фазового наклона, так что фаза верхней (или отрицательной) половины, по модулю 2 Pi, отражает нижнюю половину в апертуре БПФ , Комплексная экспоненциальная функция сдвига также может быть сделана сопряженной симметричной путем индексации ее от -N / 2 до N / 2 с нулевой фазой при индексе 0.
Так уж сложилось, что соответствующее смещение для фазовых скручиваний или спиралей, которые завершают точное целое число, кратное поворотам 2 Pi в апертуре, чтобы быть сопряженным симметричным по апертуре, равно нулю.
С сопряженным симметричным вектором фазового скручивания результат должен затем закончиться как круговая интерполяция Синка для нецелых сдвигов.
Разработка ОП:
Ваш выбор k = [0, 1, 2, 3, 4, 5, 6, 7, 8] дает экспоненциальную комплексную асимметричность:
Если вместо этого вы используете k = [0, 1, 2, 3, 4, -4, -3, -2, -1], вы получите эрмит-симметрическую комплексную экспоненту:
и теперь, когда вы используете одну и ту же экспоненциальную формулу для сдвига на 0,5 или 3,5 выборки, вы получите реальный результат:
источник
k = [0, 1, 2, 3, 4]
, я должен использоватьk = [0, 1, 2, -2, -1]