2016-04-13 2 views
0

Так что я пытаюсь выполнить частотный сдвиг на множестве вещественных точек. Чтобы добиться сдвига частоты, нужно умножить данные на сложную экспоненту, что делает результирующий комплекс данных. Если мною умножить только на косинус, я получаю результаты как на суммарной, так и на разностной частотах. Я хочу просто сумму или разницу.В python, если я выполняю fft на сложных данных, то irfft только положительные частоты, как это влияет на данные?

То, что я сделал, это умножить данные на сложную экспоненту, использовать fft.fft() для вычисления fft, а затем использовать fft.irfft() только на положительных частотах, чтобы получить реальный ценный набор данных, который имеет только суммарное или разностное смещение по частоте. Это, кажется, отлично работает, но я хочу знать, есть ли какие-либо недостатки в этом, или, возможно, более подходящий способ достижения той же цели. Заранее благодарим за любую помощь, которую вы можете предоставить!

+0

Не проблема. БПФ реальных данных является избыточным в спектральной области (должно быть, вы помещаете только N значений в, значения 2N не могут быть зависимыми). Оставляя отрицательные частоты не удаляет информацию, если вы не применяете другое обращение к этим негативам и хотите сохранить информацию. Я сохраняю все частоты до IFFT, но вам этого не нужно. – roadrunner66

+0

@ reoadrunner66 Но это не БПФ реальных данных. Я умножил реальные данные на комплексное число (ы), которое делает его _complex_ данными. Затем я принимаю полный БПФ, в котором отрицательные частоты не обязательно являются избыточными. Затем я подаю только положительные частоты этого в IRFFT, в этот момент функция IRFFT предполагает, что отрицательные частоты являются конъюгатами положительных элементов, следовательно, избыточными, когда они вообще не являются. – jmurray1241

+0

Если вы умножаете только на одно комплексное число (фиксированная фаза), вы не должны увеличивать информационный контент. Но нужно было бы рассмотреть аналитическое решение. – roadrunner66

ответ

1

Что вы делаете, это прекрасно. Вы генерируете аналитический сигнал для размещения отрицательных частот таким же образом, как и дискретное преобразование Гильберта. У вас будут проблемы с масштабированием - вам нужно удвоить все сигналы, отличные от DC и non-Nyquist, в реальной частотной части результатов FFT.

Некоторые практические проблемы заключаются в том, что этот метод обеспечивает задержку размера окна, поэтому, если вы пытаетесь сделать это в режиме реального времени, вам следует, вероятно, изучить использование трансформатора FIR Hilbert и соответствующих сумм. В этом случае задержка будет групповой задержкой трансформатора Гильберта.

Еще один интересный вопрос заключается в том, что вам нужно помнить, что компонент постоянного тока вашего сигнала также будет смещаться вместе со всеми другими частотами. Поэтому я бы рекомендовал, чтобы вы демалировали данные (сохраняя значение) перед сменой, обнуляйте ячейку DC после FFT данных (чтобы удалить любой частотный компонент, завершенный в бункере DC), затем добавьте среднее значение для сохранения уровней сигнала в конце.

+0

Удивительный! Я был обеспокоен тем, что был слишком хорош, чтобы быть правдой. Что касается масштабирования, вы уверены в коэффициенте два на реальных частотах? Насколько я понимаю, rfft/irfft выполняют одни и те же вычисления и просто предполагают, что отрицательные частоты сопряжены с положительными и, следовательно, соответственно возвращают положительные частоты/реальные значения. – jmurray1241

+0

Что касается задержки, это временная задержка, равная размеру окна моего fft? Трансформатор Гильберта предназначен для его противодействия? Кроме того, важным является компонент постоянного тока, если вам не нужны абсолютные амплитуды, т. Е. Если вы просто собираетесь демодулировать радиочастотный сигнал? – jmurray1241

+0

Вы отбрасываете половину своей энергии, если только сохраняете положительные частоты. Итак, фактор 2 прав. Как я уже говорил, вы не отбрасываете информацию. Просто аналитический БПФ реального сигнала, разделенный на косинус и синусоидальные части, применяет правила симметрии (косинус симметричный, синус-антисимметричный), и вы можете доказать, почему вы в порядке, что делаете. – roadrunner66

 Смежные вопросы

  • Нет связанных вопросов^_^