Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: модель 8PSK модема
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Страницы: 1, 2, 3, 4
Alex65111
На входе программных демодуляторов часто рисуют что-то типа согласованного фильтра (СФ) как правило что то из корней приподнятых косинусов. СФ имеет импульсную характеристику согласованную с сигналом. Но если еще не выполнена тактовая синхронизация,т.е. не только фаза такта не подстроена (это вроде бы и не страшно для СФ), а самое главное точно не выравнены частоты символов передатчика и оцифровки приемника, то насколько корректно применять СФ?, он же на самом деле не будет согласован (их-за разных временных шкал).
MKS
В идеале в этом случае действительно появляется рассогласование, но при малом расхождении частот этим эффектом можно пренебречь. Может быть и так что в демодуляторе есть эквалайзер и он эту дополнительную интерференцию исправит.
petrov
Цитата(Alex65111 @ Mar 1 2011, 11:04) *
На входе программных демодуляторов часто рисуют что-то типа согласованного фильтра (СФ) как правило что то из корней приподнятых косинусов. СФ имеет импульсную характеристику согласованную с сигналом. Но если еще не выполнена тактовая синхронизация,т.е. не только фаза такта не подстроена (это вроде бы и не страшно для СФ), а самое главное точно не выравнены частоты символов передатчика и оцифровки приемника, то насколько корректно применять СФ?, он же на самом деле не будет согласован (их-за разных временных шкал).


Как правило этим можно пренебречь поскольку разность частот тактовых генераторов много много меньше полосы сигнала.
petrov
complex graphic equlizer spectrum analyzer 16 band linear phase non-critically sampled filter bank near perfect reconstruction pseudo alias free



simulink matlab R2010a


Нажмите для просмотра прикрепленного файла
petrov
Milewski sequence channel impulse response estimation

simulink matlab R2010a

Нажмите для просмотра прикрепленного файла
MWS
2 petrov
У Вас изумительные модели. Спасибо, что сочли возможным их выложить. Это действительно отличные модели с комплексным подходом. Кроме того, Ваша манера их рисовать, не используя стандартные блоки готовых алгоритмов, очень сильно помогает при разборе и реализации.

Благодарю!
ccuser
Привет. Те Simulink модели timing recovery, которые я видел, используют 4 отсчёта на символ. Как их модифицировать,
чтобы они заработали с двумя отсчётами на символ? В лоб не получается, делаешь 2 отсчёта на символ, линейный интерполятор,
система не работает. Модификация loop filter не помагает, не совсем понятно, как он строится. Спасибо.
des00
Цитата(ccuser @ Sep 16 2015, 11:46) *
Привет. Те Simulink модели timing recovery, которые я видел, используют 4 отсчёта на символ. Как их модифицировать,
чтобы они заработали с двумя отсчётами на символ? В лоб не получается, делаешь 2 отсчёта на символ, линейный интерполятор,
система не работает. Модификация loop filter не помагает, не совсем понятно, как он строится. Спасибо.

как минимум NCO поменять wink.gif а вот замена интерполятора зря
ccuser
Цитата(des00 @ Sep 16 2015, 08:56) *
как минимум NCO поменять wink.gif а вот замена интерполятора зря


NCO забыл упомянуть, это естественно, но тут вроде всё просто. Но вот управляющий nco сигнал, от него зависит сигнал на выходе income, и сигнал должен получиться таким же, как был, но прореженный, по идее. Вот этого не получается. Как параметры loop фильтра рассчитать кто-нибудь подскажет?
petrov
Цитата(ccuser @ Sep 16 2015, 07:46) *
Привет. Те Simulink модели timing recovery, которые я видел, используют 4 отсчёта на символ. Как их модифицировать,
чтобы они заработали с двумя отсчётами на символ? В лоб не получается, делаешь 2 отсчёта на символ, линейный интерполятор,
система не работает. Модификация loop filter не помагает, не совсем понятно, как он строится. Спасибо.


В лоб не получится во времени разместить два отсчёта на символ на частоте передатчика, т. к. символьноя частота передачика может быть больше, остаётся размещать в ширину, то есть параллельно.

pi/4 qpsk 2 samples per symbol timing recovery, quintic Farrow structure

matlab simulink R2014a

Нажмите для просмотра прикрепленного файла
ccuser
Цитата(petrov @ Sep 19 2015, 21:37) *
В лоб не получится во времени разместить два отсчёта на символ на частоте передатчика, т. к. символьноя частота передачика может быть больше, остаётся размещать в ширину, то есть параллельно.

pi/4 qpsk 2 samples per symbol timing recovery, quintic Farrow structure

matlab simulink R2014a

Нажмите для просмотра прикрепленного файла


Спасибо за ответ!
ccuser
Добрый день. У меня следующий вопрос. Важной частью timing recovery является loop filter. В симулинке есть инструмент для автоматического подбора параметров этого блока, PID. Но в примерах его использования PID обычно входит в состав системы с некоторым явно заданным фильтром. Кто-нибудь пробовал использовать PID tuning для системы timing recovery, как это сделать в симулинке?
petrov
Цитата(ccuser @ Oct 5 2015, 10:28) *
Добрый день. У меня следующий вопрос. Важной частью timing recovery является loop filter. В симулинке есть инструмент для автоматического подбора параметров этого блока, PID. Но в примерах его использования PID обычно входит в состав системы с некоторым явно заданным фильтром. Кто-нибудь пробовал использовать PID tuning для системы timing recovery, как это сделать в симулинке?


Не такой уж и важной. PID, а нужны ли I и D? Если речь о скрости настройки, то даже самая оптимальная ФАПЧ это всё равно очень медленно, есть быстрые методы синхронизации без обратных связей. Промоделируйте максимальный частотный сдвиг вследствие нестабильности реальных кварцевых генераторов с одним лишь пропорциональным звеном, возможно полученной фазовой ошибкой можно будет пренебречь. Не забывайте, что коэффициент передачи фазового детектора зависит от наличия символьных переходов. По сути важно лишь обеспечить в наихудшем случае негативный вклад от остаточного фазового дрожания много меньше чем от шума. Это всё на глаз по медели подобрать можно, никакого смысла в супер оптимальности коэффициентов нет, на FPGA беру степень двойки, чтобы не тратить логику на умножение.
petrov
real tone frequency estimation, Eric Jacobsen and Peter Kootsookos trick
matlab simulink R2014a
Нажмите для просмотра прикрепленного файла
ElectroKarp
Здравствуйте! Пытаюсь разобрабраться с этой моделью.
Цитата(petrov @ Aug 25 2008, 16:51) *

Вопрос такой каков смысл блоков NCO в верхнем уровне и в two_sps_clock_domain. может есть литература с описанием. Остальное вроде ясно
petrov
Цитата(ElectroKarp @ Dec 7 2015, 15:43) *
Здравствуйте! Пытаюсь разобрабраться с этой моделью.

Вопрос такой каков смысл блоков NCO в верхнем уровне и в two_sps_clock_domain. может есть литература с описанием. Остальное вроде ясно


Просто частота enable импульсов пополам делится, соответственно вычисления в one_sps_clock_domain один раз на символьном интервале запускаются, читать ничего не надо, можно любым удобным способом сделать, посмотрите другие модели, в некоторых чуть иначе сделано.
ElectroKarp
Цитата(petrov @ Dec 8 2015, 01:18) *
Просто частота enable импульсов пополам делится, соответственно вычисления в one_sps_clock_domain один раз на символьном интервале запускаются, читать ничего не надо, можно любым удобным способом сделать, посмотрите другие модели, в некоторых чуть иначе сделано.

Спасибо за оперативный ответ!
ElectroKarp
Реализовал эту схему в FPGA http://electronix.ru/forum/index.php?act=a...st&id=24165 Петля символьной синхронизации захватывает в 50% случаев при отношении с/ш более 60 дБл (пока тестирую на столе). причем в случаи незахвата timing error detector ошибку видит, mu меняется но захвата не происходит. Пытался разобраться по статьям Гарднера Interpolation in digital modems части 1 и 2. Итак вопросы:
1. Почему mu в модели менятеся от -1 до 0 в статье пункт 3.B утверждает что от 0 до 1? Могу предположить что fractional interval берется из предыдущего периода.
2. Не совсем понятен механизм извлечения mu из NCO. (в первой части пункт 4.А и рисунок 6)
Ссылки на статьи
часть 1 https://www.google.by/url?sa=t&rct=j&am...OuA&cad=rjt
часть 2 https://www.google.by/url?sa=t&rct=j&am...RQR1cZ8xoMK_8-g
des00
Цитата(ElectroKarp @ Jan 26 2016, 13:39) *
Петля символьной синхронизации захватывает в 50% случаев при отношении с/ш более 60 дБл (пока тестирую на столе). причем в случаи незахвата timing error detector ошибку видит, mu меняется но захвата не происходит.

99% что аккумулятор петлевого фильтра уходит в сторону и вы вываливаетесь из полосы захвата

Цитата
1. Почему mu в модели менятеся от -1 до 0 в статье пункт 3.B утверждает что от 0 до 1? Могу предположить что fractional interval берется из предыдущего периода.

разные реализации интерполяторов
Цитата
2. Не совсем понятен механизм извлечения mu из NCO. (в первой части пункт 4.А и рисунок 6)

остаток от деления символьного интервала?

petrov
Цитата(ElectroKarp @ Jan 26 2016, 09:39) *
1. Почему mu в модели менятеся от -1 до 0 в статье пункт 3.B утверждает что от 0 до 1? Могу предположить что fractional interval берется из предыдущего периода.


Оптимальный диапазон фарроу 0..1, смотрите более свежие модели.



Цитата(ElectroKarp @ Jan 26 2016, 09:39) *
2. Не совсем понятен механизм извлечения mu из NCO. (в первой части пункт 4.А и рисунок 6)


NCO - дискретный накапливающий сумматор(синус вычислять как в DDS смысла нет), считающий по модулю 2^разрядность(0..2^N -> 0..2*pi), например переполнение указывает на пересечение синусом нуля, по значению на выходе сумматора в этот момент можно установить точную точку пересечения, отсюда mu и извлекается.

Проработка моделей конечно же недостаточная для реализации, надо сильнее детализировать и моделировать все нюансы, чтобы с точностью до последнего бита не было никакой разницы, по сравнению с тем, что в железе крутится, иначе потом не понять, почему не работает.
AlexeyD
Добрый вечер, немного не по теме, но все же: имеется вот такая схемка(example- упрощенная для понимания материала и laboratoryWork-сама работа(лабораторная) ну и метода) это кодовое разделение канала, по средствам генератора кодов Уолша. В example есть источник, формирователь и обработчик, если с источником и формирователем я разобрался худо бедно, то с обработчиком- совсем беда. Не получается выделить обратно каждый сигнал в свой канал.

P.S. сильно тапками не кидайте, написал после того как пошерстил интернет и разную литературу. Если кто настроит example, буду примного благодарен.

Нажмите для просмотра прикрепленного файла

метода(2 лаб.работа) http://libeldoc.bsuir.by/bitstream/1234567...D1%83%D0%BC.pdf
Retter
Спасибо большое уважаемому Petrov за замечательные модели. У меня есть пару вопросов новичка по поводу модели субоптимального приемника GMSK. Не могли бы Вы ткнуть пальцем новичку на принцип расчета первого фильтра приемника и указать где почитать про символьную синхронизацию примененную в этом случае.
petrov
Цитата(Retter @ Apr 4 2017, 10:32) *
принцип расчета первого фильтра приемника


Эвристический, согласованного фильтра не существует, ищется компромисс между схлопавынием глазки из-за шума и из-за МСИ вносимой фильтром.


Цитата(Retter @ Apr 4 2017, 10:32) *
где почитать про символьную синхронизацию примененную в этом случае.


https://www.mathworks.com/help/comm/ref/msk...ngrecovery.html
altral
Цитата(petrov @ Jun 18 2007, 18:20) *
Модель QAM16 модема feed-back gardner symbol sync farrow interpolator decision feed-back phase sync gain control для simulink из matlab 7.0.

Возникло несколько вопросов.
  1. По какому принципу подбираются значения параметров (1/2^16 и 1/2^8) в петле "timing_error_loop_filter"?
  2. Можно ли по сигналу "timing_error" на выходе синхронизатора восстановить значение целочисленного тактового сдвига ("integer_symbol_clock_phase_offset"), вносимого после модуляции?
  3. Можно ли побороть зашумление в оценке фазового и тактовых сдвигов, если допустить, что сами сдвиги постоянны?
petrov
Цитата(altral @ Jun 7 2018, 11:10) *
По какому принципу подбираются значения параметров (1/2^16 и 1/2^8) в петле "timing_error_loop_filter"?


По устойчивости, длительности переходного процесса, остаточному шуму.

Цитата(altral @ Jun 7 2018, 11:10) *
Можно ли по сигналу "timing_error" на выходе синхронизатора восстановить значение целочисленного тактового сдвига ("integer_symbol_clock_phase_offset"), вносимого после модуляции?


NCO в символьной петле ФАПЧ подстраивается, чтобы разность фаз с принимаемым сигналом к нулю свести. Можно только разность фаз восстановить между NCO из петли и таким же местным неуправляемым NCO.

Цитата(altral @ Jun 7 2018, 11:10) *
Можно ли побороть зашумление в оценке фазового и тактовых сдвигов, если допустить, что сами сдвиги постоянны?


Уже полосу ФАПЧ сделать.
altral
Цитата(petrov @ Jun 7 2018, 11:15) *
По устойчивости, длительности переходного процесса, остаточному шуму.

Существуют ли формулы или описание, связывающие коэффициенты в совместной схеме с символьной скоростью, величиной рассинхронизации по фазе и такту и уровнем шума?

Цитата(petrov @ Jun 7 2018, 11:15) *
NCO в символьной петле ФАПЧ подстраивается, чтобы разность фаз с принимаемым сигналом к нулю свести. Можно только разность фаз восстановить между NCO из петли и таким же местным неуправляемым NCO.

То есть из схемы нельзя извлечь величину, аналогичную "mu" для фильтра Фарроу, на которую делается "поправка" для того, чтобы попадать на начало символа? И относится ли это к схеме Гарднера или любой схеме?
Попробовал к сигналу "timing_error" добавить интегрирующий фильтр (по аналогии с фазовой синхронизацией) - при длительности символа в 4 такта на выходе получилась сумма целого и дробного сдвигов (без учета шума). При более высокой длительности уже не так.
petrov
Цитата(altral @ Jun 8 2018, 10:39) *
Существуют ли формулы или описание, связывающие коэффициенты в совместной схеме с символьной скоростью, величиной рассинхронизации по фазе и такту и уровнем шума?


Не встречал.

Цитата(altral @ Jun 8 2018, 10:39) *
То есть из схемы нельзя извлечь величину, аналогичную "mu" для фильтра Фарроу, на которую делается "поправка" для того, чтобы попадать на начало символа? И относится ли это к схеме Гарднера или любой схеме?
Попробовал к сигналу "timing_error" добавить интегрирующий фильтр (по аналогии с фазовой синхронизацией) - при длительности символа в 4 такта на выходе получилась сумма целого и дробного сдвигов (без учета шума). При более высокой длительности уже не так.


Лучше скажите что хотите сделать. Там и так всё "попадает"(хотя помнится в той модели были какие-то ошибки не очевидные, да и вообще недостатки всякие).
altral
Цитата(petrov @ Jun 8 2018, 10:08) *
Лучше скажите что хотите сделать. Там и так всё "попадает"(хотя помнится в той модели были какие-то ошибки не очевидные, да и вообще недостатки всякие).

Я не сомневаюсь в том, что "попадает". Но допустим, меня интересует значение тактового сдвига, вносимого в канале, ведь находясь на приемной стороне, мы не можем его знать заранее. Дробную задержку мы можем оценить, вычтя из единицы сигнал mu на выходе NCO. А есть еще целочисленное смещение, принимающее значения от 0 до N-1, где N - число тактов в символе. Можно ли оценить его значение?
petrov
Генераторы в передатчике и приёмнике независимо в неизвестные произвольные моменты времени запускаются.
Вот 2 ситуации:
1. Задержка в канале 0, генераторы запустились с разностью фаз N/2;
2. Задержка в канале N/2, генераторы запустились с разностью фаз 0.
Сигнал на приёме один и тот же. Как отделить 1 от 2?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.