|
Дробная интерполяция |
|
|
|
May 5 2011, 20:09
|
Группа: Новичок
Сообщений: 9
Регистрация: 21-05-10
Пользователь №: 57 438

|
Доброе время суток! Помогите чайнику. Есть 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 символ.
Я либо все сильно усложняю, либо чего-то не понимаю, но не пойму что именно. Помогите разобраться!
|
|
|
|
|
May 6 2011, 18:09
|
Группа: Новичок
Сообщений: 9
Регистрация: 21-05-10
Пользователь №: 57 438

|
Цитата почему сразу не сделать приемник на 8.24sps ? Вы имеете в виду почему сразу не интерполировать до нужной частоты дискретизации? А как это сделать если она дробная? Цитата(Fast @ May 6 2011, 15:10)  в схеме выше ерунда получается или в программной реализации ? Трудно сказать, схема под MatLab работает, но она также работает если выход Гарднера заменить на const 1... Если вы знаете, то подскажите какой блок нужно поставить в MatLab, чтобы он вносил дополнительно ошибку по времени(тогда проверю работоспособность схемы MatLab) В любом случае моя реализация работает на сигналах, где нет нужды в дробной интерполяции, значит ошибка должна быть там. Мне кажется что в место, где нужно провести децимацию в 1,02997 раза, должно быть сделано по другому, но я не знаю как! И гугл ничего не подсказывает.
|
|
|
|
|
May 6 2011, 20:15
|
Местный
  
Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839

|
по матлабу не подскажу, делаю всегда и модели и прототипы на C/C++ фарроу 3 порядка не использую, т.к. он себя плохо ведет на малых кратностях sps особенно, если сигнал компактно сформирован с малым roll-off. Не хватает ему полосы. использую классический Лагранж 6-8 порядка, и 4 отсчета на посылку.
Но децимацию провожу ДО схемы восстановления тактовой синхронизации т.е. dI = 1,02997 это всегда постоянное соотношение для дробной интерполяции с Fd => Fd` = N*Vm а ошибка со схемы тактовой dT (умноженная на какой-то Gain) - переменная - прибавляется dI с частотой следования символов Vm
и честно говоря, судя по тому, как описана проблема, даже не понимаю, где может быть косяк в вашей схеме
|
|
|
|
|
May 9 2011, 15:36
|
Группа: Новичок
Сообщений: 9
Регистрация: 21-05-10
Пользователь №: 57 438

|
Цитата(Fast @ May 6 2011, 23:15)  использую классический Лагранж 6-8 порядка, и 4 отсчета на посылку. А не подскажите книгу хорошую где про них можно почитать? Если с ссылкой так и вовсе сказка) А для чего нужна схема Годарда? Так и не нашел нигде вразумительного источника...
|
|
|
|
|
May 9 2011, 18:38
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(x67 @ May 6 2011, 12:09)  А как это сделать если она дробная? взять дробный NCO и все. Цитата(Fast @ May 6 2011, 14:15)  Но децимацию провожу ДО схемы восстановления тактовой синхронизации т.е фактически вы используете схему с двойным преобразованием частоты. например для 8.24 спс, вы сначала делаете интерполяцию на 1.24 на не подстраиваемом NCO, а потом делаете 8спс уже в петле ОС? в таком случае вам требуется в 2 раза больше ресурса, два интерполятора и два NCO. В софтовой реализации это не принципиально, а вот в хардварной...
--------------------
|
|
|
|
|
May 9 2011, 19:38
|
Группа: Новичок
Сообщений: 9
Регистрация: 21-05-10
Пользователь №: 57 438

|
Цитата(des00 @ May 9 2011, 21:38)  взять дробный NCO и все. А можно поподробней?
|
|
|
|
|
May 10 2011, 10:57
|
Местный
  
Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839

|
Цитата(x67 @ May 9 2011, 19:36)  А не подскажите книгу хорошую где про них можно почитать? Если с ссылкой так и вовсе сказка) А для чего нужна схема Годарда? Так и не нашел нигде вразумительного источника... в разных книгах его встречал, а чтоб именно про лагранжа книга была такого не видел возьмите википедию или здесь, внизу есть ссылки на книги схема Годарда используется для начальной слепой настройки корректора. Наберите в гугле " Godard blind equalization" Цитата(des00 @ May 9 2011, 22:38)  т.е фактически вы используете схему с двойным преобразованием частоты. например для 8.24 спс, вы сначала делаете интерполяцию на 1.24 на не подстраиваемом NCO, а потом делаете 8спс уже в петле ОС? а что такое 8.24 и 1.24 ? у NCO два слагаемого, первое - постоянное дробное, условно dI, чтобы интерполировать на кратную частоту следования символов. второе - переменное с выхода схемы тактовой синхронизации dT, поправка для dI. Не знаю, как еще по-другому объяснить. p.s. ----------------------- да, у меня еще такой вопрос, отчего на Электрониксе все так любит схему Гарднера для тактовой синхронизации, очень часто встречаю, что ее используют в своих моделях ? В свое время мне пришлось от нее отказаться из-за нестабильного поведения на плохих каналах: с большим МСИ, неравномерностью/завалом АЧХ. Очень высокий шум (джиттер) по выходу получался, может чего не доработал... На хороших каналах, естественно, все гуд.
|
|
|
|
|
May 10 2011, 11:39
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Fast @ May 10 2011, 05:57)  а что такое 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спс. или я не правильно понял вашу фразу Цитата Но децимацию провожу ДО схемы восстановления тактовой синхронизации Кстати проверял лагранжа 3 го порядка (по схеме фарроу), при 4спс уже можно работать, при 6-8 все намного лучше, а начиная с 10-16 ти можно забыть про нелинейности Цитата да, у меня еще такой вопрос, отчего на Электрониксе все так любит схему Гарднера для тактовой синхронизации, очень часто встречаю, что ее используют в своих моделях ? В свое время мне пришлось от нее отказаться из-за нестабильного поведения на плохих каналах: с большим МСИ, неравномерностью/завалом АЧХ. Очень высокий шум (джиттер) по выходу получался, может чего не доработал... На хороших каналах, естественно, все гуд. схема очень простая вот и все %) а на какую схему вы перешли ? я кстати проверял гарднера + Tanlock на QPSK нормально работает при отношении сигнал шум 6-8дБ и канале с бегающим спектральным нулем в -20дБ (при работающем эквалайзере)
--------------------
|
|
|
|
|
May 10 2011, 13:31
|
Местный
  
Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839

|
Цитата(des00 @ May 10 2011, 15:39)  хмм, может я не правильно что то говорю. вот положим есть демодулятор на нуле с частотой АЦП 8.24спс. Есть два варианта его сделать : 1. Поставить один интерполятор + один NCO с петлей по тактовой, настроить их на 8.24спс и работать. 2. Поставить интерполятор + один NCO вне петли по тактовой, на нем выполнить преобразование 8.24спс в 8спс. Затем поставить еще один интерполятор + один NCO с петлей по тактовой, настроенной на 8спс. конечно первый вариант, второй не имеет практического смысла. Петля по тактовой дает "прибавку" для дробного NCO. Цитата(des00 @ May 10 2011, 15:39)  Кстати проверял лагранжа 3 го порядка (по схеме фарроу), при 4спс уже можно работать, при 6-8 все намного лучше, а начиная с 10-16 ти можно забыть про нелинейности  зависит от сигнала и характера искажений/ошибок в канале. С небольшой крутизной огибающей спектра и хорошим SNR можно работать и 2 отсчета на посылку для 3-фарроу, лишь бы выполнялось условие Найквиста для полосы обрабатываемого сигнала и АЧХ фарроу не искажала АЧХ сигнала. кстати, какие там нелинейности? 3-порядка Фарроу это всего лишь одна из форм реализации 4-узлов Лагранжа. Лагранж это КИХ-фильтр, линейная схема (если не учитывать эффекты квантования и дискретности окна интерполяции). Цитата(des00 @ May 10 2011, 15:39)  схема очень простая вот и все %) а на какую схему вы перешли ? я кстати проверял гарднера + Tanlock на QPSK нормально работает при отношении сигнал шум 6-8дБ и канале с бегающим спектральным нулем в -20дБ (при работающем эквалайзере) сигнал реальный или модель ? я работал с позиционностями КАМ в нескольких сотен, там очень чувствуются МСИ и нестабильность опорного гетеродина (смесителя). На предельных SNR пришлось накручивать "кустарные" схемы выделения модуляционной частоты из спектра огибающей (+ PLL к ней для петли ОС) в сочетании со слежением точного пика корректора. И корректор, и петля ФАПЧ работали от общей схемы по решению. Недостаток - узкая полоса захвата, поэтому схема использовалась для установившегося режима без переходных процессов.
|
|
|
|
|
May 10 2011, 15:19
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Fast @ May 10 2011, 08:31)  зависит от сигнала и характера искажений/ошибок в канале. С небольшой крутизной огибающей спектра и хорошим SNR можно работать и 2 отсчета на посылку для 3-фарроу, лишь бы выполнялось условие Найквиста для полосы обрабатываемого сигнала и АЧХ фарроу не искажала АЧХ сигнала. имхо 2спс и фарроу расчитанный по лагранжу не айс. лучше сделать поднять частоту дискретизации в 2 раза, если есть возможность. Цитата кстати, какие там нелинейности? 3-порядка Фарроу это всего лишь одна из форм реализации 4-узлов Лагранжа. Лагранж это КИХ-фильтр, линейная схема (если не учитывать эффекты квантования и дискретности окна интерполяции). нелинейности вызванные тем, что АЧХ фарроу постоянно при постоянном mu, но нелинейна при переменном mu. В реальности тактовые генераторы передатчика приемника всегда плывут, и mu скачет. так что.... (mu - дробная ошибка) Цитата сигнал реальный или модель ? реальный модем, на реальном железе. Цитата я работал с позиционностями КАМ в нескольких сотен, там очень чувствуются МСИ и нестабильность опорного гетеродина (смесителя).... это же какое нужно генераторное оборудование что бы запихать хотя бы КАМ512/КАМ1024 в радиоканал  по остальному понятно
--------------------
|
|
|
|
|
May 10 2011, 16:37
|
Группа: Новичок
Сообщений: 9
Регистрация: 21-05-10
Пользователь №: 57 438

|
Цитата(des00 @ May 10 2011, 04:40)  Куда еще то подробнее? вы же разобрались с принципом работы цифрового восстановления тактовой частоты, в модели петрова изучили как работает целочисленный NCO, осталось сделать один маленький шаг что бы сделать его дробным %) Или я чего-то не понимаю, или поправьте меня) 1. Целочисленная интерполяция - добавляем нулевые отсчеты и подаем на КИХ фильтр 2. Дробная реализуется через схему фэрроу, которая собой представляет тоже КИХ фильтр. Значит нужно Фэрроу поставит вместо фильтра в первом случае, я правильно ответил на свой вопрос???))) Цитата(Fast @ May 10 2011, 13:57)  в разных книгах его встречал, а чтоб именно про лагранжа книга была такого не видел возьмите википедию или здесь, внизу есть ссылки на книги схема Годарда используется для начальной слепой настройки корректора. Наберите в гугле " Godard blind equalization" Спасибо за ссылочки, особенно за Годарада, почитаю)) Лагранж на dsplib все же доступней, попробую просто сделать не 3-го порядка а 6, и посмотреть как себя поведет модель.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|