Перевод из Re в IQ. Что лучше? Квадратурный или Гильберта(БПФ)

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 852
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Перевод из Re в IQ. Что лучше? Квадратурный или Гильберта(БПФ)

Сообщение Бахурин Сергей » 22 июл 2016, 23:55

Santik писал(а):
Бахурин Сергей писал(а): Преобразование Гильберта на основе FFT-IFFT это тоже фильтр, но вы не контролируете его подавление и оно составляет всего 13 дБ.
:shock: Это как? Вернее, в каком диапазоне? И сколько выборок идет на FFT?
Давайте рассмотрим такой пример:

Пусть у нас входной сигнал идет в виде непрерывного очень длинного (в пределе бесконечного) потока цифровых отсчетов и мы хотим произвести расчет его преобразования Гильберта при помощи обнуления спектральных отсчетов в отрицательной области.

Тогда мы должны ограничить выборку FFT для расчета преобразования и реализовать обработку с перекрытием для исключения краевых эффектов. Например ограничим FFT выборку длиной NFFT = 64 точки. Обработка с перекрытием подразумевает следующую процедуру:
1) берем первую выборку x(0:63) --> FFT c обнулением (и умножением на 2) --> IFFT --> получаем комплексный y(0:63), реальная часть которого это х(0:63) а мнимая - ортогональное дополнение.

2) Для исключения краевого эффекта выбираем из y(0:63) только точки с индексами y(16:47). Результат z(16:47) = y(16:47).

3) Следующая выборка исходного сигнала будет смещена не на 64 отсчета на 32. Тогда
x(32:95) --> FFT c обнулением (и умножением на 2) --> IFFT --> y(0:63).

4) Снова выбираем половину центральных отсчетов z(48:79) = y(16:47)

Продолжаем сдвигать на 32 точки входной сигнал, делать 64 точечное преобразование и выбирать только 32 центральных отсчетов.

В результате мы будет иметь поток выходного аналитического сигнала с блочным преобразованием.
И если мы оценим спектральную плотность мощности этого потока то обнаружим боковые лепестки в отрицательной области частот (На рисунке ниже результ при входном сигнала в вииде гауссовского белого шума, NFFT = 64, СПМ построена по 2048 точкам).
hilbert_fft.png
Почему мы видим такую картину? Ответ в свойствах дискретного сигнала. Дело в том что при обнулении FFT мы обнуляем лишь фиксированные точки в спектре, в то время как спектр дискретного сигнала есть непрерывная функция. Таким образом мы не контролируем поведение спектра между точками в которых мы обнулили спектр. Это классический эффект Гиббса.

Я подготовил пример программы которая рассчитывает данный график с использованием DSPL.
Исходный код программы
DSPL проект для MINGW
Быстрый старт

PS Запускать надо под 32 битной версией Windows.
PPS Буду благодарен за помощь в сборке 64 битной DSPL (все исходники предоставлю от вас лишь настроить MINGW по ссылке выше).

Итак в сухом остатке. Использование FFT для преобразования Гильберта это не очень хороший путь.Гораздо лучше делать через фильтрацию, потому что в этом случае мы можем контролировать эффект Гиббса за счет весовой обработки.

Predator_r
Сообщения: 2
Зарегистрирован: 17 май 2019, 11:48

Re: Перевод из Re в IQ. Что лучше? Квадратурный или Гильберта(БПФ)

Сообщение Predator_r » 17 май 2019, 12:15

Здравствуйте. У мена глобальный теоретический вопрос:
Есть сигнал, оцифрованный на частоте Fs. Имеем полезный сигнал в полосе от 0 до Fs/2 (ну не до самых краёв, но тут не важно) и повторы его спектра в полосах от -Fs/2 до 0 и от Fs/2 до Fs. Если перенести в 0, тоесть на Fs/4 будет полезный сигнал в полосе от -Fs/4 до Fs/4 и повторы его спектра в полосах от -3Fs/4 до -Fs/4 и от Fs/4 до 3Fs/4.
Можно-ли тут-же продецимировать этот сигнал в 2 раза, а потом выделить полезный полуполосным фильтром? По идее сигнал «завернётся» сам в себя, тоесть на каждую точку ляжет её-же отражение, но не побьются-ли фазы или еще что?
Или надо всё-таки четвертьполосным фильтром выделять полезную часть на полной тактовой частоте?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 852
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Перевод из Re в IQ. Что лучше? Квадратурный или Гильберта(БПФ)

Сообщение Бахурин Сергей » 17 май 2019, 14:26

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

Predator_r
Сообщения: 2
Зарегистрирован: 17 май 2019, 11:48

Re: Перевод из Re в IQ. Что лучше? Квадратурный или Гильберта(БПФ)

Сообщение Predator_r » 17 май 2019, 14:54

Благодарю. Именно это я и имел ввиду под фразой "не побьются-ли фазы или еще что". Стало-быть побьются.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость