Перейти к содержанию
    

Дробная интерполяция

Доброе время суток!

Помогите чайнику.

Есть QPSK сигнал

Частота дискретизации 500 кГц.

Символьная скорость 182044 Гц.

Нужно произвести демодуляцию (программная реализация).

Использовал за основу схему Петрова(qpsk_fb_symbol_sync_fb_phase_sync_agc_2008_05_15)

 

По схеме на вход поступает сигнал с частотой дискретизайии в 8 раз превышающей символьную, для отработки на фильтре Фэрроу 3го порядка.

Вопрос в том, что если на мою реализацию этой схему подается сигнал с Fd = nFs(n-целое), то все работает, я интерполирую сигнал, чтобы было 8 Fd, выход четкий как нужно.

Но если, как в приведенных выше услових, т.е. нужна дробная интерполяция, то вылетает полная ерунда.

 

Я действую так: интерполирую сигнал в три раза(простым добавлением нулей + КИХ фильтр) Fd = 3*500000 = 1500000 Гц

А потом получается нужно получить частоту дискретизации 8*Fs = 8*182044 = 1456352 Гц.

т.е провести децимацию сигнала в 1500000/1456352 = 1,02997 раза.

Я это делаю путем прибавления к выходу схемы Гарднера (-0,02997/8). Это значение идет в фильтр Фэрроу. 8 потому что 8 отсчетов на 1 символ.

 

Я либо все сильно усложняю, либо чего-то не понимаю, но не пойму что именно.

Помогите разобраться!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в схеме выше ерунда получается или в программной реализации ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

почему сразу не сделать приемник на 8.24sps ?

Вы имеете в виду почему сразу не интерполировать до нужной частоты дискретизации?

А как это сделать если она дробная?

 

в схеме выше ерунда получается или в программной реализации ?

 

Трудно сказать, схема под MatLab работает, но она также работает если выход Гарднера заменить на const 1...

Если вы знаете, то подскажите какой блок нужно поставить в MatLab, чтобы он вносил дополнительно ошибку по времени(тогда проверю работоспособность схемы MatLab)

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

 

Мне кажется что в место, где нужно провести децимацию в 1,02997 раза, должно быть сделано по другому, но я не знаю как!

И гугл ничего не подсказывает.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по матлабу не подскажу, делаю всегда и модели и прототипы на C/C++

фарроу 3 порядка не использую, т.к. он себя плохо ведет на малых кратностях sps

особенно, если сигнал компактно сформирован с малым roll-off. Не хватает ему полосы.

использую классический Лагранж 6-8 порядка, и 4 отсчета на посылку.

 

Но децимацию провожу ДО схемы восстановления тактовой синхронизации

т.е. dI = 1,02997 это всегда постоянное соотношение для дробной интерполяции с Fd => Fd` = N*Vm

а ошибка со схемы тактовой dT (умноженная на какой-то Gain) - переменная - прибавляется dI с частотой следования символов Vm

 

и честно говоря, судя по тому, как описана проблема, даже не понимаю, где может быть косяк в вашей схеме

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

использую классический Лагранж 6-8 порядка, и 4 отсчета на посылку.

А не подскажите книгу хорошую где про них можно почитать? Если с ссылкой так и вовсе сказка)

А для чего нужна схема Годарда? Так и не нашел нигде вразумительного источника...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как это сделать если она дробная?

взять дробный NCO и все.

 

 

Но децимацию провожу ДО схемы восстановления тактовой синхронизации

т.е фактически вы используете схему с двойным преобразованием частоты. например для 8.24 спс, вы сначала делаете интерполяцию на 1.24 на не подстраиваемом NCO, а потом делаете 8спс уже в петле ОС?

 

в таком случае вам требуется в 2 раза больше ресурса, два интерполятора и два NCO. В софтовой реализации это не принципиально, а вот в хардварной...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно поподробней?

Куда еще то подробнее? вы же разобрались с принципом работы цифрового восстановления тактовой частоты, в модели петрова изучили как работает целочисленный NCO, осталось сделать один маленький шаг что бы сделать его дробным %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не подскажите книгу хорошую где про них можно почитать? Если с ссылкой так и вовсе сказка)

А для чего нужна схема Годарда? Так и не нашел нигде вразумительного источника...

в разных книгах его встречал, а чтоб именно про лагранжа книга была такого не видел

возьмите википедию или здесь, внизу есть ссылки на книги

 

схема Годарда используется для начальной слепой настройки корректора. Наберите в гугле "Godard blind equalization"

 

 

т.е фактически вы используете схему с двойным преобразованием частоты. например для 8.24 спс, вы сначала делаете интерполяцию на 1.24 на не подстраиваемом NCO, а потом делаете 8спс уже в петле ОС?
а что такое 8.24 и 1.24 ?

 

у NCO два слагаемого,

первое - постоянное дробное, условно dI, чтобы интерполировать на кратную частоту следования символов.

второе - переменное с выхода схемы тактовой синхронизации dT, поправка для dI. Не знаю, как еще по-другому объяснить.

 

 

p.s. -----------------------

да, у меня еще такой вопрос, отчего на Электрониксе все так любит схему Гарднера для тактовой синхронизации, очень часто встречаю, что ее используют в своих моделях ?

В свое время мне пришлось от нее отказаться из-за нестабильного поведения на плохих каналах: с большим МСИ, неравномерностью/завалом АЧХ. Очень высокий шум (джиттер) по выходу получался, может чего не доработал... На хороших каналах, естественно, все гуд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а что такое 8.24 и 1.24 ?

соотношение тактовой и символьной частоты. 8.24sample per symbol это тактовая частота сигнала в 8.24 раза выше символьной, фактически коэффициент преобразования частоты.

 

у NCO два слагаемого,

первое - постоянное дробное, условно dI, чтобы интерполировать на кратную частоту следования символов.

второе - переменное с выхода схемы тактовой синхронизации dT, поправка для dI. Не знаю, как еще по-другому объяснить.

хмм, может я не правильно что то говорю. вот положим есть демодулятор на нуле с частотой АЦП 8.24спс. Есть два варианта его сделать :

1. Поставить один интерполятор + один NCO с петлей по тактовой, настроить их на 8.24спс и работать.

2. Поставить интерполятор + один NCO вне петли по тактовой, на нем выполнить преобразование 8.24спс в 8спс. Затем поставить еще один интерполятор + один NCO с петлей по тактовой, настроенной на 8спс.

 

или я не правильно понял вашу фразу :laughing:

Но децимацию провожу ДО схемы восстановления тактовой синхронизации

 

Кстати проверял лагранжа 3 го порядка (по схеме фарроу), при 4спс уже можно работать, при 6-8 все намного лучше, а начиная с 10-16 ти можно забыть про нелинейности ;)

 

да, у меня еще такой вопрос, отчего на Электрониксе все так любит схему Гарднера для тактовой синхронизации, очень часто встречаю, что ее используют в своих моделях ?

В свое время мне пришлось от нее отказаться из-за нестабильного поведения на плохих каналах: с большим МСИ, неравномерностью/завалом АЧХ. Очень высокий шум (джиттер) по выходу получался, может чего не доработал... На хороших каналах, естественно, все гуд.

схема очень простая вот и все %) а на какую схему вы перешли ?

 

я кстати проверял гарднера + Tanlock на QPSK нормально работает при отношении сигнал шум 6-8дБ и канале с бегающим спектральным нулем в -20дБ (при работающем эквалайзере)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хмм, может я не правильно что то говорю. вот положим есть демодулятор на нуле с частотой АЦП 8.24спс. Есть два варианта его сделать :

1. Поставить один интерполятор + один NCO с петлей по тактовой, настроить их на 8.24спс и работать.

2. Поставить интерполятор + один NCO вне петли по тактовой, на нем выполнить преобразование 8.24спс в 8спс. Затем поставить еще один интерполятор + один NCO с петлей по тактовой, настроенной на 8спс.

конечно первый вариант, второй не имеет практического смысла. Петля по тактовой дает "прибавку" для дробного NCO.

 

Кстати проверял лагранжа 3 го порядка (по схеме фарроу), при 4спс уже можно работать, при 6-8 все намного лучше, а начиная с 10-16 ти можно забыть про нелинейности ;)
зависит от сигнала и характера искажений/ошибок в канале. С небольшой крутизной огибающей спектра и хорошим SNR можно работать и 2 отсчета на посылку для 3-фарроу, лишь бы выполнялось условие Найквиста для полосы обрабатываемого сигнала и АЧХ фарроу не искажала АЧХ сигнала.

 

кстати, какие там нелинейности? 3-порядка Фарроу это всего лишь одна из форм реализации 4-узлов Лагранжа. Лагранж это КИХ-фильтр, линейная схема (если не учитывать эффекты квантования и дискретности окна интерполяции).

 

схема очень простая вот и все %) а на какую схему вы перешли ?

я кстати проверял гарднера + Tanlock на QPSK нормально работает при отношении сигнал шум 6-8дБ и канале с бегающим спектральным нулем в -20дБ (при работающем эквалайзере)

сигнал реальный или модель ?

я работал с позиционностями КАМ в нескольких сотен, там очень чувствуются МСИ и нестабильность опорного гетеродина (смесителя). На предельных SNR пришлось накручивать "кустарные" схемы выделения модуляционной частоты из спектра огибающей (+ PLL к ней для петли ОС) в сочетании со слежением точного пика корректора. И корректор, и петля ФАПЧ работали от общей схемы по решению. Недостаток - узкая полоса захвата, поэтому схема использовалась для установившегося режима без переходных процессов.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зависит от сигнала и характера искажений/ошибок в канале. С небольшой крутизной огибающей спектра и хорошим SNR можно работать и 2 отсчета на посылку для 3-фарроу, лишь бы выполнялось условие Найквиста для полосы обрабатываемого сигнала и АЧХ фарроу не искажала АЧХ сигнала.

имхо 2спс и фарроу расчитанный по лагранжу не айс. лучше сделать поднять частоту дискретизации в 2 раза, если есть возможность.

 

кстати, какие там нелинейности? 3-порядка Фарроу это всего лишь одна из форм реализации 4-узлов Лагранжа. Лагранж это КИХ-фильтр, линейная схема (если не учитывать эффекты квантования и дискретности окна интерполяции).

нелинейности вызванные тем, что АЧХ фарроу постоянно при постоянном mu, но нелинейна при переменном mu. В реальности тактовые генераторы передатчика приемника всегда плывут, и mu скачет. так что.... (mu - дробная ошибка)

 

сигнал реальный или модель ?

реальный модем, на реальном железе.

 

я работал с позиционностями КАМ в нескольких сотен, там очень чувствуются МСИ и нестабильность опорного гетеродина (смесителя)....

это же какое нужно генераторное оборудование что бы запихать хотя бы КАМ512/КАМ1024 в радиоканал :rolleyes: по остальному понятно

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Куда еще то подробнее? вы же разобрались с принципом работы цифрового восстановления тактовой частоты, в модели петрова изучили как работает целочисленный NCO, осталось сделать один маленький шаг что бы сделать его дробным %)

Или я чего-то не понимаю, или поправьте меня)

1. Целочисленная интерполяция - добавляем нулевые отсчеты и подаем на КИХ фильтр

2. Дробная реализуется через схему фэрроу, которая собой представляет тоже КИХ фильтр.

Значит нужно Фэрроу поставит вместо фильтра в первом случае, я правильно ответил на свой вопрос???)))

 

в разных книгах его встречал, а чтоб именно про лагранжа книга была такого не видел

возьмите википедию или здесь, внизу есть ссылки на книги

 

схема Годарда используется для начальной слепой настройки корректора. Наберите в гугле "Godard blind equalization"

 

Спасибо за ссылочки, особенно за Годарада, почитаю))

Лагранж на dsplib все же доступней, попробую просто сделать не 3-го порядка а 6, и посмотреть как себя поведет модель.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...