реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Дробная интерполяция
x67
сообщение May 5 2011, 20:09
Сообщение #1





Группа: Новичок
Сообщений: 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 символ.

Я либо все сильно усложняю, либо чего-то не понимаю, но не пойму что именно.
Помогите разобраться!
Go to the top of the page
 
+Quote Post
des00
сообщение May 6 2011, 03:44
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



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


--------------------
Go to the top of the page
 
+Quote Post
Fast
сообщение May 6 2011, 12:10
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



в схеме выше ерунда получается или в программной реализации ?
Go to the top of the page
 
+Quote Post
x67
сообщение May 6 2011, 18:09
Сообщение #4





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



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

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

Цитата(Fast @ May 6 2011, 15:10) *
в схеме выше ерунда получается или в программной реализации ?


Трудно сказать, схема под MatLab работает, но она также работает если выход Гарднера заменить на const 1...
Если вы знаете, то подскажите какой блок нужно поставить в MatLab, чтобы он вносил дополнительно ошибку по времени(тогда проверю работоспособность схемы MatLab)
В любом случае моя реализация работает на сигналах, где нет нужды в дробной интерполяции, значит ошибка должна быть там.

Мне кажется что в место, где нужно провести децимацию в 1,02997 раза, должно быть сделано по другому, но я не знаю как!
И гугл ничего не подсказывает.
Go to the top of the page
 
+Quote Post
Fast
сообщение May 6 2011, 20:15
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 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

и честно говоря, судя по тому, как описана проблема, даже не понимаю, где может быть косяк в вашей схеме
Go to the top of the page
 
+Quote Post
x67
сообщение May 9 2011, 15:36
Сообщение #6





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



Цитата(Fast @ May 6 2011, 23:15) *
использую классический Лагранж 6-8 порядка, и 4 отсчета на посылку.

А не подскажите книгу хорошую где про них можно почитать? Если с ссылкой так и вовсе сказка)
А для чего нужна схема Годарда? Так и не нашел нигде вразумительного источника...
Go to the top of the page
 
+Quote Post
Student21
сообщение May 9 2011, 16:35
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 11-12-10
Пользователь №: 61 546



Вообще сказака вот dsplib.ru
там найдёте фильтры Фарроу.
Go to the top of the page
 
+Quote Post
des00
сообщение May 9 2011, 18:38
Сообщение #8


Вечный ламер
******

Группа: Модераторы
Сообщений: 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. В софтовой реализации это не принципиально, а вот в хардварной...


--------------------
Go to the top of the page
 
+Quote Post
x67
сообщение May 9 2011, 19:38
Сообщение #9





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



Цитата(des00 @ May 9 2011, 21:38) *
взять дробный NCO и все.

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


Go to the top of the page
 
+Quote Post
des00
сообщение May 10 2011, 01:40
Сообщение #10


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(x67 @ May 9 2011, 14:38) *
А можно поподробней?

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


--------------------
Go to the top of the page
 
+Quote Post
Fast
сообщение May 10 2011, 10:57
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 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. -----------------------
да, у меня еще такой вопрос, отчего на Электрониксе все так любит схему Гарднера для тактовой синхронизации, очень часто встречаю, что ее используют в своих моделях ?
В свое время мне пришлось от нее отказаться из-за нестабильного поведения на плохих каналах: с большим МСИ, неравномерностью/завалом АЧХ. Очень высокий шум (джиттер) по выходу получался, может чего не доработал... На хороших каналах, естественно, все гуд.
Go to the top of the page
 
+Quote Post
des00
сообщение May 10 2011, 11:39
Сообщение #12


Вечный ламер
******

Группа: Модераторы
Сообщений: 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спс.

или я не правильно понял вашу фразу laughing.gif
Цитата
Но децимацию провожу ДО схемы восстановления тактовой синхронизации


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

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

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

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


--------------------
Go to the top of the page
 
+Quote Post
Fast
сообщение May 10 2011, 13:31
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 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 ти можно забыть про нелинейности wink.gif
зависит от сигнала и характера искажений/ошибок в канале. С небольшой крутизной огибающей спектра и хорошим SNR можно работать и 2 отсчета на посылку для 3-фарроу, лишь бы выполнялось условие Найквиста для полосы обрабатываемого сигнала и АЧХ фарроу не искажала АЧХ сигнала.

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

Цитата(des00 @ May 10 2011, 15:39) *
схема очень простая вот и все %) а на какую схему вы перешли ?
я кстати проверял гарднера + Tanlock на QPSK нормально работает при отношении сигнал шум 6-8дБ и канале с бегающим спектральным нулем в -20дБ (при работающем эквалайзере)
сигнал реальный или модель ?
я работал с позиционностями КАМ в нескольких сотен, там очень чувствуются МСИ и нестабильность опорного гетеродина (смесителя). На предельных SNR пришлось накручивать "кустарные" схемы выделения модуляционной частоты из спектра огибающей (+ PLL к ней для петли ОС) в сочетании со слежением точного пика корректора. И корректор, и петля ФАПЧ работали от общей схемы по решению. Недостаток - узкая полоса захвата, поэтому схема использовалась для установившегося режима без переходных процессов.
Go to the top of the page
 
+Quote Post
des00
сообщение May 10 2011, 15:19
Сообщение #14


Вечный ламер
******

Группа: Модераторы
Сообщений: 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 в радиоканал rolleyes.gif по остальному понятно


--------------------
Go to the top of the page
 
+Quote Post
x67
сообщение May 10 2011, 16:37
Сообщение #15





Группа: Новичок
Сообщений: 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, и посмотреть как себя поведет модель.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 11:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016