Теорема о сдвиге гласит :
Умножение на линейную фазу для некоторого целого числа 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 интерполированы?