|
Polyphase-filterbank interpolator |
|
|
|
Dec 6 2014, 11:27
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Добрый день! Проектирую систему связи на QAM. В первом приближении стоит задача сделать работоспособную систему на QAM16, c последующим переходом на QAM64. Разбираюсь с timing_recovery Насколько я понял можно использовать интерполятор с разными схемами контроля, либо polyphase-filterbank interpolator Если использовать polyphase-filterbank interpolator 1. Зачем делать upsample последовательности на входе согласованного фильтра если можно просто поднять частоту дискретизации? 2. Почему нельзя взять несколько блоков с согласованными фильтрами работающими каждый на низкой частоте и смотреть который из них дал наилучший отсчет? Как в таком случае отслеживать ошибку - детектор на каждый канал и смотреть где ошибка меньше? Спасибо!
Сообщение отредактировал Zigor - Dec 6 2014, 11:29
Эскизы прикрепленных изображений
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 28)
|
Dec 8 2014, 11:43
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Цитата(des00 @ Dec 8 2014, 12:36)  присоединюсь к вопросу, либо ТС дал не весь контекст, либо автор книги мягко говоря бредит.
|
|
|
|
|
Dec 8 2014, 14:20
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Цитата(petrov @ Dec 8 2014, 17:03)  Источники хорошие, разжёвано дальше некуда, симулинк в руки и воплощаем написанное. Понятно дело. Не вкурил пока след. вопросы Пусть первоначально 4 отсчета на символ, делаем 4 блока для timing correction - в итоге 16 отсчетов на символ. По логике в каждом блоке должен быть первоначальный согласованный фильтр, в каждом блоке одинаковый. И каждым блок смещаем на отсчет и прореживаем в 4 раза. Соответственно какой из блоков лучше оказался "притерт" к символу - тот и выбираем. 1. Зачем upsampling производить вставкой нулей? Ведь можно просто увеличить частоту дискретизации? "The sequence is upsampled by a factor by inserting zeros between each sample of to produce a new sequence that provides samples/symbol." 2. В источнике речь идет о РАЗНЫХ наборах коэффициентов для каждого блока, почему так? "The direct brute-force implementation of the polyphase filterbank requires the operation of polyphase filters that operate in parallel. In reality, filters are not constructed, but rather a single stage filter with set of weights that are selected from memory by a pointer under control of the phase locked loop." Спасибо!
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 8 2014, 14:34
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Zigor @ Dec 8 2014, 17:20)  1. Зачем upsampling производить вставкой нулей? Ведь можно просто увеличить частоту дискретизации?
"The sequence is upsampled by a factor by inserting zeros between each sample of to produce a new sequence that provides samples/symbol." Просто увеличение это такая же вставка нулей и фильтр скользящего среднего, который не нужен. Цитата(Zigor @ Dec 8 2014, 17:20)  2. В источнике речь идет о РАЗНЫХ наборах коэффициентов для каждого блока, почему так?
"The direct brute-force implementation of the polyphase filterbank requires the operation of polyphase filters that operate in parallel. In reality, filters are not constructed, but rather a single stage filter with set of weights that are selected from memory by a pointer under control of the phase locked loop." На символьном интервале нам нужен один отсчёт с максимальным отношением сигнал/шум, зачем вычислять остальные?
|
|
|
|
|
Dec 8 2014, 14:54
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(des00 @ Dec 8 2014, 15:36)  присоединюсь к вопросу, либо ТС дал не весь контекст, либо автор книги мягко говоря бредит. спасибо за источники, теперь понятен контекст Цитата(Zigor @ Dec 6 2014, 18:27)  1. Зачем делать upsample последовательности на входе согласованного фильтра если можно просто поднять частоту дискретизации? Частота дискретизации определяется используемым АЦП, просто так его частоту не поднять. Ну а в цифре использовать в качестве фильтра для подавления зеркал можно любой фильтр, с подходящей АЧХ, в том числе и согласованный с полосой. Цитата 2. Почему нельзя взять несколько блоков с согласованными фильтрами работающими каждый на низкой частоте и смотреть который из них дал наилучший отсчет? а смысл? вычислений намного больше, а результат тот же. а вообще использование полифазного согласованного фильтра для временной синхронизации ИМХО допустимо при обработке узких полос, на широких полосах проще поднять частоту дискретизации и на классический полиномиальный интерполятор.
--------------------
|
|
|
|
|
Dec 9 2014, 10:34
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Цитата(des00 @ Dec 8 2014, 18:54)  а вообще использование полифазного согласованного фильтра для временной синхронизации ИМХО допустимо при обработке узких полос, на широких полосах проще поднять частоту дискретизации и на классический полиномиальный интерполятор. 1. Поясните пожалуйста почему? 2. Я могу поднять частоту с 4х до 16ти и даже 32х отсчетов на символ. Какую схему управления рекомендуете?
|
|
|
|
|
Dec 9 2014, 11:56
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Zigor @ Dec 9 2014, 18:34)  1. Поясните пожалуйста почему? требуется разная производительность. Если это ДСП то разницы как делать нет, но дсп не может переварить широкую полосу, а если это ПЛИС то фильтр с переменными коэффициентами весит много больше. Цитата 2. Я могу поднять частоту с 4х до 16ти и даже 32х отсчетов на символ. Какую схему управления рекомендуете? хмм, а причем здесь схема управления? ИМХО 8 отчетов на символ вам больше чем достаточно.
--------------------
|
|
|
|
|
Dec 9 2014, 12:42
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Цитата(des00 @ Dec 9 2014, 15:56)  требуется разная производительность. Если это ДСП то разницы как делать нет, но дсп не может переварить широкую полосу, а если это ПЛИС то фильтр с переменными коэффициентами весит много больше. На плис можно оптимизировать фильтр и хранить в коэффициенты в памяти, задействовав один умножитель вместо нескольких параллельных. Не понял про связь DSP и широкой полосы. Цитата(des00 @ Dec 9 2014, 15:56)  хмм, а причем здесь схема управления? ИМХО 8 отчетов на символ вам больше чем достаточно. В моем случае несущая 100кГц - FPGA работает на низкой частоте, может есть смысл оцифровывать на частоте скажем x16, но сэкономить на интерполяторе? Прошу прощения за примитив вопросов! Спасибо!!!
|
|
|
|
|
Dec 9 2014, 14:04
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Zigor @ Dec 9 2014, 20:42)  На плис можно оптимизировать фильтр и хранить в коэффициенты в памяти, задействовав один умножитель вместо нескольких параллельных. Не понял про связь DSP и широкой полосы. Не знаю как у вас, но для меня широкая полоса это полоса от 28МГц до 1000 МГц, согласованные фильтры в среднем 40-80 коэффициентов. А теперь рассмотрите еще раз свои предложения в этом контексте. Цитата В моем случае несущая 100кГц - FPGA работает на низкой частоте, может есть смысл оцифровывать на частоте скажем x16, но сэкономить на интерполяторе? Не знаю как у вас сделана нарезка и какой у вас АЦП, но я бы работал на частоте дискретизации близкой к максимальной, затем спустился бы до 8 отсчетов на символ и на полиномиальный интерполятор 3 го порядка. Ну либо до 32 отсчетов на символ и линейный интерполятор. Но в этом случае требования к фильтрам более жесткие.
--------------------
|
|
|
|
|
Dec 11 2014, 15:06
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Цитата(des00 @ Dec 9 2014, 18:04)  Не знаю как у вас сделана нарезка и какой у вас АЦП, но я бы работал на частоте дискретизации близкой к максимальной, затем спустился бы до 8 отсчетов на символ и на полиномиальный интерполятор 3 го порядка. Ну либо до 32 отсчетов на символ и линейный интерполятор. Но в этом случае требования к фильтрам более жесткие. АЦП - AD9235, по поводу нарезки не уверен что вкурил основную мысль. Прошу уточнить для тех кто в танке))) К примеру: Несущая 100кГц, Частота сэмплирования АЦП == 3,2МГц 1. Отсчеты АЦП умножаю на отсчеты комплексно сопряженной экспоненты несущей (фаза произвольная) - переношу в 0 2. Далее фильтр низкой частоты. 3. Далее согласованный фильтр с понижением до 8ми сэмплов на такт. 4. Интерполятор 5. Корректировка фазы Is't it ?
|
|
|
|
|
Dec 29 2014, 13:55
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(links @ Dec 29 2014, 15:04)  У Вас в источниках первой приведена глава по синхронизации из некоей книги. Не могли бы дать ссылку на книгу целиком? Это лекции по следующей книге: Michael Rice, Digital Communications: A Discrete-Time Approach. Ну или книга на основе лекций В гугле найти можно.
|
|
|
|
|
Dec 30 2014, 06:23
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-06-08
Пользователь №: 38 299

|
Цитата(Самурай @ Dec 29 2014, 16:55)  Это лекции по следующей книге: Michael Rice, Digital Communications: A Discrete-Time Approach. Ну или книга на основе лекций В гугле найти можно. Спасибо, нашел. Хорошая книга, методически правильная!
|
|
|
|
|
Jan 8 2015, 13:31
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Цитата(Hose @ Jan 8 2015, 16:22)  Это курсовой проект?
Если нет, то какие у вас требования на коэффициенты передачи по джиттеру и вандеру? Добрый день! Залил запрашиваемую книгу - юзайте на здоровье! https://www.sendspace.com/file/juseqnПодскажите где почитать по поводу расчетов параметров указанных Вами? Проект НЕ курсовой. Проектирую систему связи для медного кабеля на QAM16 с последующим переходом на QAM64, в системах связи новичок и поэтому заранее прощу прощения за примитив вопросов! Такой вопрос еще возник - если символьная скорость к примеру 100кГц, как осуществить перенос сигнала на несущую не кратную символьной скорости - например 160кГц? Спасибо!
|
|
|
|
|
Jan 9 2015, 09:49
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Спасибо! 1. Получается что частота дискретизации на выходе формирующего фильтра и определяет частоту дискретизации в ЦАП после смешивания с несущей. 2. Разбираюсь с работой PLL и подстройкой частоты. Нашел на форуме модели товарища Petrov для QAM16. Начитался источников (в т.ч Michael Rice) по проектированию PLL, сделал файл для расчета цепи фильтра (файл прилагаю). Несмотря на все расчеты созвездие крутится при частотном сдвиге в канале (хоть ты тресни))) Если для DDS K0 == 2*pi *fsys / 2^PHASE_ACC_WIDTH То для CORDIC или просто матлабовской функции комплексной экспоненты (в случае модели с плавающей точкой) как рассчитывается K0 ?
|
|
|
|
|
Jan 22 2015, 09:38
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 6-07-04
Пользователь №: 276

|
Цитата(Zigor @ Dec 6 2014, 14:27)  Добрый день!
Проектирую систему связи на QAM.
В первом приближении стоит задача сделать работоспособную систему на QAM16, c последующим переходом на QAM64. Разбираюсь с timing_recovery
Насколько я понял можно использовать интерполятор с разными схемами контроля, либо polyphase-filterbank interpolator
Если использовать polyphase-filterbank interpolator
1. Зачем делать upsample последовательности на входе согласованного фильтра если можно просто поднять частоту дискретизации? 2. Почему нельзя взять несколько блоков с согласованными фильтрами работающими каждый на низкой частоте и смотреть который из них дал наилучший отсчет?
Как в таком случае отслеживать ошибку - детектор на каждый канал и смотреть где ошибка меньше?
Спасибо! Вы упустили самый выжный момент этой главы из Рице. Там используются параллельно два полифазных согласованных фильтра - причем второй фильтр дает производную сигнала. Если сигнал и его производную перемножить то отсюда получим ошибку синхронизации - и в отличие от Гарднера этот метод работает отлично для всех - qpsk 8apsk 16... kam. Реализовал в своем проекте для демодулятора dvb-s2 сигнала. Идеи Рице продолжаю использовать и в других блоках демодулятора - мужик практик, у него есть конкретные реализации в Xilinx .
|
|
|
|
|
Jan 31 2015, 12:26
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958

|
Цитата(serggerm @ Jan 22 2015, 13:38)  Вы упустили самый выжный момент этой главы из Рице. Там используются параллельно два полифазных согласованных фильтра - причем второй фильтр дает производную сигнала. Если сигнал и его производную перемножить то отсюда получим ошибку синхронизации - и в отличие от Гарднера этот метод работает отлично для всех - qpsk 8apsk 16... kam. Реализовал в своем проекте для демодулятора dvb-s2 сигнала. Идеи Рице продолжаю использовать и в других блоках демодулятора - мужик практик, у него есть конкретные реализации в Xilinx . 1. Сколько отсчетов на символ Вы используете? 2. Во сколько раз upsamplируете входной сигнал? 3. Как у Вас устроена цепь обратной связи для управления интерполятором? 3. Можно поподробнее про использование идей Рица в других блоках демодулятора? Спасибо!
|
|
|
|
|
Mar 1 2015, 16:35
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 6-07-04
Пользователь №: 276

|
Цитата(Zigor @ Jan 8 2015, 16:31)  Добрый день! Залил запрашиваемую книгу - юзайте на здоровье! https://www.sendspace.com/file/juseqnПодскажите где почитать по поводу расчетов параметров указанных Вами? Проект НЕ курсовой. Проектирую систему связи для медного кабеля на QAM16 с последующим переходом на QAM64, в системах связи новичок и поэтому заранее прощу прощения за примитив вопросов! Такой вопрос еще возник - если символьная скорость к примеру 100кГц, как осуществить перенос сигнала на несущую не кратную символьной скорости - например 160кГц? Спасибо! Вообще-то для медного кабеля традиционно в сигнал замешивали пилот-сигнал , в демодуляторе его извлекали узкополосным фильтром и от него тактировалась вся остальная часть - жить было много проще, V32 modem standart, для спутниковых и релеек нынче пилота нет, усе сложнее с синхронизациями. Так что определяйтесь с пилотом или без а потом реализуйте.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|