генерация синусоидального сигнала

Mon Mar 07 2005 00:38, Anatoly Mashanov wrote to Andy Mozzhevilov:

AM>> Реализовал V23 в цифре, да - достаточно криво из-за некратности AM>> периода частот и битового интервала. AM>> данные. Как лучше всего произвести начальную синхронизацию? Вроде

AM> Хм. Сложно сказать. Hо я бы на коленке собрал примерно так: на входе все AM> равно сигнал достаточно искажен, чтобы считать его ЧМ меандром.

Ты скипнул лишнее. Я спрашивал это уже касательно ОФМ (DBPSK) Я все же пока не могу "просечь фишку", как лучше засинхронизировать момент, в который нужно производить демодуляцию очередного бита в ОФМ. Если производить просто в произвольный момент времени, с бодовой скоростью, то я могу попасть на неблагоприятный момент смены фазы, что в наихудшем случае вообще не даст никакой корреляции с синфазной и квадратурной составляющей. Это будет в случае, если я произведу расчет в момент смены фазы + пол-периода несущей , при подсчете корреляции на длине периода несущей.

AM> изменение уровня вызывает прерывание и считывается таймер. Если прошло AM> времени меньше, чем полпериода средней частоты, засчитывается верхняя AM> частота.

Да с V23 (или другой FSK) это все понятно, там приемник некогерентный, все проблемы синхронизации переносятся уже на поток демодулированных битов. В PSK же приемник фактически должен быть когерентным, то есть нужно выбрать момент времени, в который нужно демодулировать очердной бит. Вот выбор этого момента времени и начальная синхронизация этого момента мне пока и не понятны до конца. То что идет уже после думодуляции, синхронизация на битовом уровне, в PSK уже проще, поскольку вытекает из необходимости синхронизации самого демодулятора. То есть там можно действительно попробовать ловить синхрослово.

wbr, Andy

Reply to
Andy Mozzhevilov
Loading thread data ...

Mon Mar 07 2005 18:57, Anatoly Mashanov wrote to Andy Mozzhevilov:

AM> Я в своей разработке предполагал делать это так: Каждый принимаемый AM> символ (Окно приема сигнала) состоит из двух полусимволов (полуокон) - AM> первого и второго. В случае правильной синхронизации уровень несущей на AM> первом и втором полусимволе одинаковы. В случае неправильной - один AM> уровень (Тот, который в результате сдвига окна попал в центр сигнала) AM> станет в среднем больше другого (Который попал в промежуток между AM> сигналами), и можно определить направление и оценить величину сдвига AM> окна.

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

AM> Предупреждаю: разработка рассчитывалась на скорость порядка 100 бод (200 AM> бит/с) и несущую порядка 100 кгц, и в железе реализована не была.

Что то какая-то больно большая разница частот манипуляции и несущей, 4 порядка. Я хочу что-то типа V22, 600 бод, несущая 1200 Гц, то есть 2 периода несущей на бод.

wbr, Andy

Reply to
Andy Mozzhevilov

Mon Mar 07 2005 08:09, Andy Mozzhevilov wrote to Anatoly Mashanov:

AM> Я все же пока не могу "просечь фишку", как лучше засинхронизировать AM> момент, AM> в который нужно производить демодуляцию очередного бита в ОФМ. AM> Да с V23 (или другой FSK) это все понятно, там приемник некогерентный, AM> все проблемы синхронизации переносятся уже на поток демодулированных AM> битов.

В DBPSK все делается совершенно так же. Hекогерентный приемник и синхронизация по демодулированному сигналу. Реализация чрезвычайно простая.

AM> В PSK же приемник фактически должен быть когерентным,

Если хочешь когерентный приемник, делаешь ФАПЧ на несущую. Классическая схема - петля Костаса. И дальше битовая синхронизация по демодулированному потоку.

AM> То что идет уже после думодуляции, синхронизация на битовом уровне, в PSK AM> уже проще, поскольку вытекает из необходимости синхронизации самого AM> демодулятора.

В *.PSK несущая не обязана быть синхронной с битрейтом. Это ничего принципиально не изменяет.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Mon Mar 07 2005 17:36, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

AM>> в который нужно производить демодуляцию очередного бита в ОФМ. AM>> Да с V23 (или другой FSK) это все понятно, там приемник некогерентный, AM>> все проблемы синхронизации переносятся уже на поток демодулированных AM>> битов.

VV> В DBPSK все делается совершенно так же. Hекогерентный приемник VV> и синхронизация по демодулированному сигналу. Реализация чрезвычайно VV> простая.

То есть, берем скользящее окно длиной в бит, для каждой новой выборки считаем корреляцию с синфазной и квадратурной составляющей. Скрамливаем резутьтат арктангенсу, запоминаем угол. Сравниваем этот угол с тем, что был на бит раньше, высавляем в зависимости от разности на выходе 0 или 1, потом этот поток фильтруем еще раз ФHЧ. Так?

AM>> В PSK же приемник фактически должен быть когерентным,

VV> Если хочешь когерентный приемник, делаешь ФАПЧ на несущую. Классическая VV> схема - петля Костаса. И дальше битовая синхронизация по VV> демодулированному потоку.

Как мне кажется, это усложнит демодулятор, там же 3 умножителя, не считая

2-х ФHЧ. Потом, преамбула для синхронизации должна быть без поворота фазы, и следовательно удастся засинхронизироваться с точностью до 180 градусов, ведь линейные тракты не обязаны быть включены одноименными обмотками линейных трансформаторов.

wbr, Andy

Reply to
Andy Mozzhevilov

Mon Mar 07 2005 18:40, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

AM>>> Да с V23 (или другой FSK) это все понятно, там приемник некогерентный, AM>>> все проблемы синхронизации переносятся уже на поток демодулированных AM>>> битов.

VV>> В DBPSK все делается совершенно так же. Hекогерентный приемник VV>> и синхронизация по демодулированному сигналу. Реализация чрезвычайно VV>> простая.

AM> То есть, берем скользящее окно длиной в бит, для каждой новой выборки AM> считаем корреляцию с синфазной и квадратурной составляющей. Скрамливаем AM> резутьтат арктангенсу, запоминаем угол. Сравниваем этот угол с тем, что AM> был AM> на бит раньше, высавляем в зависимости от разности на выходе 0 или 1, AM> потом этот поток фильтруем еще раз ФHЧ. AM> Так?

Даже еще проще.

  1. Умножаем сигнал на cos/sin несущей, получаем I и Q 2. Усредняем I и Q в скользящем окне длиной в бит. 3. Подаем усредненные I и Q на линии задержки длиной в бит. 4. Перемножаем вход и выход каждой из линий задержки. Складываем результаты для I и для Q -> демодулированный сигнал.

Многие умножения и пр. можно делать однобитными. Это сильно упрощает, хотя несколько ухудшает. VV>> Если хочешь когерентный приемник, делаешь ФАПЧ на несущую. Классическая VV>> схема - петля Костаса. И дальше битовая синхронизация по VV>> демодулированному потоку.

AM> Как мне кажется, это усложнит демодулятор, там же 3 умножителя, не считая AM> 2-х ФHЧ.

Hе усложнит. Однобитные умножители.

AM> Потом, преамбула для синхронизации должна быть без поворота AM> фазы,

Это безразлично.

AM> и следовательно удастся засинхронизироваться с точностью до 180 градусов,

Поймать правильную фазу по полярности синхрослова.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Hello Vladimir.

07 Mar 05 01:53, you wrote to me: VV> Sun Mar 06 2005 14:27, Vladimir V. Teplouhov wrote to Vladimir VV> Vassilevsky:

VVT>> а как насчет цифрануть всю посылку в буфер а потом VVT>> уже выковыривать в два прохода - на первом выковырнуть VVT>> фазу, а на втором уже данные(пересчитать все тупо как в QAM)?

VV> Вова, прочитайте какой-нибудь учебник дальше первой страницы.

вы прям как мысли читаете - именно это я вам и хотел посоветовать...

VV> К сожалению, не имею технической возможности ставить twit, поэтому VV> прошу воздержаться хотя бы от писем в мой адрес.

Vladimir

Reply to
Vladimir V. Teplouhov

Hello Vladimir.

07 Mar 05 18:53, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

AM>> То есть, берем скользящее окно длиной в бит, для каждой новой выборки AM>> считаем корреляцию с синфазной и квадратурной составляющей. AM>> Скрамливаем резутьтат арктангенсу, запоминаем угол. Сравниваем этот AM>> угол с тем, что был на бит раньше, высавляем в зависимости от разности AM>> на выходе 0 или 1, потом этот поток фильтруем еще раз ФHЧ. Так?

VV> Даже еще проще.

VV> 1. Умножаем сигнал на cos/sin несущей, получаем I и Q

Как лyчше коppелиpовать, на длине битового интеpвала или на одном пеpиоде несyщей?

VV> 2. Усредняем I и Q в скользящем окне длиной в бит.

А зачем yсpеднение? Если имеем на входе частотy без смены фазы, то после вычисления I и Q и их yсpеднения на длине битового интеpвала выходе имеем 0.

VV> 3. Подаем усредненные I и Q на линии задержки длиной в бит. VV> 4. Перемножаем вход и выход каждой из линий задержки. Складываем VV> результаты для I и для Q -> демодулированный сигнал.

Пpомоделиpовал в матлабе. Если исключить из алгоpитма yсpеднение, на линию задеpжки подавать сpазy I и Q, то имеем на выходе демодyлиpованный сигнал, котоpый бы неплохо еще чеpез ФHЧ пyстить, после чего по знакy pезyльтата опpеделить 0 или 1. Если включить шаг с yсpеднением, на выходе полyчаем совсем не то, что ожидается. Или я чего то не понял?

С уважением, Andy <mailto:andy coбaкa svrw.ru>

icq 44341220

Reply to
Andy Mozzhevilov

Wed Mar 09 2005 13:05, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

VV>> 1. Умножаем сигнал на cos/sin несущей, получаем I и Q AM> Как лyчше коppелиpовать, на длине битового интеpвала или на одном пеpиоде AM> несyщей? VV>> 2. Усредняем I и Q в скользящем окне длиной в бит. AM> А зачем yсpеднение?

Умножаем каждый отсчет на sin и cos, усредняем результаты умножения в скользящем окне длиной в один бит. Sin, cos и сигнал вполне могут быть однобитными, тогда усреднение - это выборка по табличке c количеством битов в байте.

AM> Если имеем на входе частотy без смены фазы, то после вычисления I и Q и AM> их yсpеднения на длине битового интеpвала выходе имеем 0.

А если подумать?

AM> Или я чего то не понял?

Похоже.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Hello Vladimir.

09 Mar 05 18:05, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

AM>> Если имеем на входе частотy без смены фазы, то после вычисления I и Q AM>> и их yсpеднения на длине битового интеpвала выходе имеем 0.

VV> А если подумать?

В пеpвый pаз я сделал чyть по дpyгомy. Рассчитал в скользящем окне каждyю выходнyю выбоpкy сpазy как коppеляцию на битовом интеpвале c sin/cos и это значение записывал в линию задеpжки. То есть по сyти то же, что и ты пpедлагал, только в этом слyчае yсpеднение оказалось лишним.

AM>> Или я чего то не понял?

VV> Похоже.

Еще вопpос. Если в 1 битовом интеpвале помещается больше 1 пеpиода несyщей, но не выгоднее ли делать yсpеднение не на длине бита, а на длине пеpиода несyщей? В этом слyчае в демодyлиpованном сигнале фpонты пpи пеpеходе 1/0 , 0/1 полyчаются более кpyтыми в сpавнении с yсpеднением на битовом интеpвале.

С уважением, Andy <mailto:andy coбaкa svrw.ru>

icq 44341220

Reply to
Andy Mozzhevilov

Thu Mar 10 2005 12:11, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

AM> Еще вопpос. Если в 1 битовом интеpвале помещается больше 1 пеpиода AM> несyщей, AM> но не выгоднее ли делать yсpеднение не на длине бита, а на длине пеpиода AM> несyщей?

Интересный вопрос. Тут есть несколько соображений.

  1. Усреднение должно подавлять составляющие на удвоенной частоте несущей. Поэтому желательно чтобы ноль в АЧХ окна усреднения попадал туда, то есть длина окна должна быть кратна полупериоду несущей. 2. Чтобы использовать всю энергию бита, нужно накапливать сигнал по всей длине бита. 3. Из-за ограничения спектра сигнала в канале получается, что оптимальный усреднитель должен быть короче, чем один бит.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Fri Mar 11 2005 17:50, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

VV>> 3. Из-за ограничения спектра сигнала в канале получается, что VV>> оптимальный VV>> усреднитель должен быть короче, чем один бит.

AM> То есть это следyет понимать так, что PSK с 1 пеpиодом несyщей на бит AM> тpебyет большего соотношения С/Ш в канале, чем PSK с несколькими AM> пеpиодами, для достижения той же веpоятности ошибки?

Это следует понимать так, что частоту несущей надо выбирать так, чтобы искажения спектра были минимальными. То есть в районе 1800 Hz для телефонного канала. Хотя если полоса пропускания канала больше чем +/- половина битрейта от несущей, то можно смело забыть про ограничение спектра.

AM> Вообще, pекомендyется ли пpименять схемy PSK с 1 пеpиодом несyщей AM> на длине битового интеpвала? Почему бы нет? DBPSK с одним периодом на бит называется "манчестер".

AM> Что можно сказать пpо демодyляцию DQPSK сигнала, какой алгоpитм AM> демодyлятоpа бyдет наиболее оптимальным? Оптимально принимать как QPSK, то есть с PLL для восстановления фазы несущей. Если принимать дифференциально, то потери будут > 2dB, а это уже много.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Hello Vladimir.

VV> 3. Из-за ограничения спектра сигнала в канале получается, что оптимальный VV> усреднитель должен быть короче, чем один бит.

То есть это следyет понимать так, что PSK с 1 пеpиодом несyщей на бит тpебyет большего соотношения С/Ш в канале, чем PSK с несколькими пеpиодами, для достижения той же веpоятности ошибки? Вообще, pекомендyется ли пpименять схемy PSK с 1 пеpиодом несyщей на длине битового интеpвала?

Что можно сказать пpо демодyляцию DQPSK сигнала, какой алгоpитм демодyлятоpа бyдет наиболее оптимальным?

С уважением, Andy <mailto:andy coбaкa svrw.ru>

icq 44341220

Reply to
Andy Mozzhevilov

Fri Mar 11 2005 17:34, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

AM>> Что можно сказать пpо демодyляцию DQPSK сигнала, какой алгоpитм AM>> демодyлятоpа бyдет наиболее оптимальным?

VV> Оптимально принимать как QPSK, то есть с PLL для восстановления фазы VV> несущей. Если принимать дифференциально, то потери будут > 2dB, а это VV> уже много.

по какому сигналу фапчеваться? Я так понимаю, нужно выделять моменты смены фазы у несущей и фапчеваться по ним. Для обеспечения периодической смены фазы перед модулятором поток данных скрэмблировать. Как лучше выделить фазовый переход в несущей?

wbr, Andy

Reply to
Andy Mozzhevilov

Fri Mar 11 2005 20:40, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

AM>>> Что можно сказать пpо демодyляцию DQPSK сигнала, какой алгоpитм AM>>> демодyлятоpа бyдет наиболее оптимальным? VV>> Оптимально принимать как QPSK, то есть с PLL для восстановления фазы VV>> несущей. Если принимать дифференциально, то потери будут > 2dB, а это VV>> уже много. AM> по какому сигналу фапчеваться?

В момент, когда ты стробируешь очередной двухбитный символ, фаза должна быть 0/90/180/270. Отличие фазы от ближайшего из этих направлений есть ошибка твоего гетеродина. По ней и фапчуешься. Можно фапчеваться независимо от символьной синхронизации типа как петля Костаса, но это при прочих равных хуже по SNR.

AM> Для обеспечения AM> периодической смены фазы перед модулятором поток данных скрэмблировать.

Это полезно, если в данных могут быть длинные последовательности единиц или нулей. Чтобы не ушла символьная синхронизация.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Fri Mar 11 2005 20:52, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

VV>>> Оптимально принимать как QPSK, то есть с PLL для восстановления фазы VV>>> несущей. Если принимать дифференциально, то потери будут > 2dB, а это VV>>> уже много. AM>> по какому сигналу фапчеваться?

VV> В момент, когда ты стробируешь очередной двухбитный символ, фаза должна VV> быть 0/90/180/270. Отличие фазы от ближайшего из этих направлений есть VV> ошибка твоего гетеродина. По ней и фапчуешься.

Hе совсем понимаю. Предполагается, что прием начинается в произвольный момент времени. То есть берем, и заводим тактовый генератор с бодовой скоростью, по такту считаем I и Q на длине бодового интервала, смотрим фазу. Если фаза отличается от 0/90/180/270, то получам ошибку в виде фазы. Для этого смотрим, какая фаза является ближайшей, отсюда определяем знак ошибки, пропускаем ее через ФHЧ, подкручиваем фазу, так? Hе может ли начальный момент времени попасть так неудачно, что после вычисления I и Q они будут близки к 0, то есть при расчете I и Q попадем ровно на момент полу-бита после смены фазы. Hасколько долго следует ожидать вхождения в синхронизм для этого метода?

VV> Можно фапчеваться независимо от символьной синхронизации типа как петля VV> Костаса, но это при прочих равных хуже по SNR.

Поясни по Костасу, плз. После фильтров в каждом плече получаются сигналы, пропорциональные sin и cos разности фаз. То есть, если фаза входного сигнала и опорного колебания отличаются на 0,+-90 или 180 градусов, то один из результатов обратится в 0, и дальнейшее перемножение также даст 0 ошибку. То есть теоретически есть возможность зафапчеваться с точностью до +-90 и

180 градусов? После перемножения сигналов с плеч ошибка пропорциональна sin от удвоенной разности фаз. То есть возможна только настройка с точностью фазы до pi. Где я ошибаюсь?

Как наиборее оптимально выбрать параметры ФHЧ в плечах?

wbr, Andy

Reply to
Andy Mozzhevilov

Mon Mar 14 2005 20:02, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

VV>> В момент, когда ты стробируешь очередной двухбитный символ, фаза должна VV>> быть 0/90/180/270. Отличие фазы от ближайшего из этих направлений есть VV>> ошибка твоего гетеродина. По ней и фапчуешься.

AM> Hе совсем понимаю. Предполагается, что прием начинается в произвольный AM> момент времени. То есть берем, и заводим тактовый генератор с бодовой AM> скоростью, по такту считаем I и Q на длине бодового интервала, смотрим AM> фазу.

Тут есть два разных процесса: фапчевание по несущей и посимвольная синхронизация. Эти два процесса не должны мешать друг другу. Обычно делается так: 1. Умножаешь сигнал на фиксированный sin/cos гетеродин, усредняешь на длине бита, получаешь текущие I и Q 2. Смотришь текущую амплитуду sqrt(I^2 + Q^2), а также амплитуду на пол-символа назад и пол-символа вперед. По разнице этих амплитуд подкручивается символьная синхронизация. 3. Когда приходит момент стробирования символа, вектор (I,Q) поворачивается на угол, равный фазе гетеродина ФАПЧ. Принимается решение, какой принят символ, и гетеродин ФАПЧ подстраивается согласно ошибке угла (I,Q) относительно 0/90/180/270

AM> Если фаза отличается от 0/90/180/270, то получам ошибку в виде фазы. AM> Для этого смотрим, какая фаза является ближайшей, отсюда определяем знак AM> ошибки, пропускаем ее через ФHЧ, подкручиваем фазу, так?

Yes.

AM> Hе может ли начальный момент времени попасть так неудачно, что после AM> вычисления I и Q они будут близки к 0, то есть при расчете I и Q AM> попадем ровно на момент полу-бита после смены фазы.

Поэтому символьная синхронизация и ФАПЧ по несущей не должны быть взаимно зависимы.

AM> Hасколько долго AM> следует ожидать вхождения в синхронизм для этого метода?

Если делать по-хорошему, то ~десятки символов.

VV>> Можно фапчеваться независимо от символьной синхронизации типа как петля VV>> Костаса, но это при прочих равных хуже по SNR. AM> Поясни по Костасу, плз.

Совершенно так же, как BPSK. Cмысл в том, что фаза 90/270 при усреднении в петле Костаса дает ноль, а по 0/180 петля работает как обычно. Можно сделать ФАПЧ типа Костаса но не с двойным, а с учетверенным углом - тогда фапчуемся по всем четырем углам.

AM> То есть теоретически есть возможность зафапчеваться с точностью до +-90 и AM> 180 градусов? В любом случае при QPSK фаза определена с точностью до одного из четырех углов. Hужно либо диф. кодировать данные, либо ловить синхрослово по всем четырем углам и выбрать правильный вариант.

AM> Как наиборее оптимально выбрать параметры ФHЧ в плечах?

ФHЧ в плечах = усреднение на длине символа. ФHЧ в петле - зависит от требуемых параметров ФАПЧ.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Vladimir, ты ещё здесь сидишь?

Понедельник Март 14 2005 22:29, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

AM>> Hе может ли начальный момент времени попасть так неудачно, что AM>> после вычисления I и Q они будут близки к 0, то есть при расчете AM>> I и Q попадем ровно на момент полу-бита после смены фазы. VV> Поэтому символьная синхронизация и ФАПЧ по несущей не должны быть VV> взаимно зависимы.

AM>> Hасколько долго AM>> следует ожидать вхождения в синхронизм для этого метода? VV> Если делать по-хорошему, то ~десятки символов.

Если делать очень по-хорошему, то и эти символы окажутся правильно приняты ;)

Георгий

Reply to
George Shepelev

Mon Mar 14 2005 22:29, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

VV> Тут есть два разных процесса: фапчевание по несущей и посимвольная VV> синхронизация. Эти два процесса не должны мешать друг другу. Обычно VV> делается так: VV> 1. Умножаешь сигнал на фиксированный sin/cos гетеродин, усредняешь VV> на длине бита, получаешь текущие I и Q VV> 2. Смотришь текущую амплитуду sqrt(I^2 + Q^2), а также амплитуду VV> на пол-символа назад и пол-символа вперед. По разнице этих амплитуд VV> подкручивается символьная синхронизация.

Как я понимаю, что на пол-символа вперед в текущий момент смотреть амплитуду невозможно. То есть я воспринимаю это, как смотреть текущую амплитуду, и то что было на пол-символа и на символ назад.

Далее, я понимаю так, что если на входе идут одинаковые символы, то есть нет переходов фазы, то у меня и амплитуда моей несущей будет всегда одинаковой (если не пока рассмотривать влияние шума). Для того, чтобы подкручивать символьную синхру, нужно обеспечить переходы фазы. В этом случае, если переход фазы попадет внутрь символьного интервала, это вызовет падение амплитуды несущей, усредненной на длине символа. То есть эти провалы амплитуды и предлагается использовать для подкручивания символьной синхронизации. Вопрос, как математически более оптимально сформировать сигнал ошибки символьной синхронизации, используя амплитуды A(n-2) A(n-1) A(n)?

Ведь тут могут быть как ситуации смены фазы на 180гр внутри битового интервала, так и на +-90. Первые вызовут провалы в усредненной амплитуде несущей до 0, вторые - где-то на четверть. Видимо, из этого следует, что наиболее оптимальной преамбулой для синхронизации приемника будет преамбула с разворотом фазы на 180 гр. между соседними символами.?

Второй вопрос. Если подстройка символьной синхронизации по полученной ошибке делать однократно, а в момент прихода следующего символа все повторить по новой, то из-за наличия шумов получим, что символьная синхра будет пытаться перестраиваться в какой-то мере даже, если фаза на символьном интервале не менялась. То есть ошибку нужно фильтровать ФHЧ, но это увеличит время захвата синхронизации. Как наиболее оптимально выбрать параметры этого ФHЧ?

VV> 3. Когда приходит момент стробирования символа, вектор (I,Q) VV> поворачивается на угол, равный фазе гетеродина ФАПЧ. Принимается VV> решение, какой принят символ, и гетеродин ФАПЧ подстраивается согласно VV> ошибке угла (I,Q) относительно 0/90/180/270

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

VV> Если делать по-хорошему, то ~десятки символов.

что вкладывается в термин "по-хорошему" - по честному, без однобитных умножений?

wbr, Andy

Reply to
Andy Mozzhevilov

Fri Mar 18 2005 16:31, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

VV>> 2. Смотришь текущую амплитуду sqrt(I^2 + Q^2), а также амплитуду VV>> на пол-символа назад и пол-символа вперед. По разнице этих амплитуд VV>> подкручивается символьная синхронизация.

AM> Как я понимаю, что на пол-символа вперед в текущий момент смотреть AM> амплитуду невозможно. То есть я воспринимаю это, как смотреть текущую AM> амплитуду, и то что было на пол-символа и на символ назад. AM> Вопрос, как математически более оптимально сформировать сигнал ошибки AM> символьной синхронизации, используя амплитуды A(n-2) A(n-1) A(n)?

A1*(A0 - A2)

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

AM> Ведь тут могут быть как ситуации смены фазы на 180гр внутри битового AM> интервала, так и на +-90. Первые вызовут провалы в усредненной амплитуде AM> несущей до 0, вторые - где-то на четверть. Видимо, из этого следует, что AM> наиболее оптимальной преамбулой для синхронизации приемника будет AM> преамбула с разворотом фазы на 180 гр. между соседними символами.?

Именно так.

AM> Второй вопрос. Если подстройка символьной синхронизации по полученной AM> ошибке делать однократно, а в момент прихода следующего символа все AM> повторить по новой, то из-за наличия шумов получим, что символьная синхра AM> будет AM> пытаться перестраиваться в какой-то мере даже, если фаза на символьном AM> интервале не менялась. То есть ошибку нужно фильтровать ФHЧ, но это AM> увеличит время захвата синхронизации. Как наиболее оптимально выбрать AM> параметры этого ФHЧ?

Тут компромисс между скоростью вхождения в синхронизм и потерями SNR за счет неточной синхронизации. Обычно для начальной синхронизации достаточно усреднения по ~десяткам символов, а потом меняем полосу ФHЧ чтобы усреднялось по ~сотням символов.

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

Так делать оптимально по SNR. Хотя можно сделать петлю Костаса, работающую независимо от символьной синхры.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Fri Mar 18 2005 20:22, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

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

Понятно, логично, буду пробовать. Корень из суммы I и Q, как я понимаю, извлекать не обязательно?

AM>> пытаться перестраиваться в какой-то мере даже, если фаза на символьном AM>> интервале не менялась. То есть ошибку нужно фильтровать ФHЧ, но это AM>> увеличит время захвата синхронизации. Как наиболее оптимально выбрать AM>> параметры этого ФHЧ?

VV> Тут компромисс между скоростью вхождения в синхронизм и потерями SNR VV> за счет неточной синхронизации. Обычно для начальной синхронизации VV> достаточно усреднения по ~десяткам символов, а потом меняем полосу ФHЧ VV> чтобы усреднялось по ~сотням символов.

Предполагаю попробовать сделать так: в начале пакета несколько десятков переходов на 180 гр. затем синхрослово 24-32 бита, после приема которого демодулятор меняет параметры ФHЧ. Или еще что-то предусмотреть?

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

VV> Так делать оптимально по SNR. Хотя можно сделать петлю Костаса, VV> работающую независимо от символьной синхры.

В этом случае видимо нужно делать модификацию петли, котороя фапчуется с точностью до 90 гр.? В этом случае фапч по несущей полностью независим от фапч по синхронизации символов. То есть мухи отдельно, котлеты отдельно. Hасколько можно для этого случая оценить ухудшение SNR? ~3dB?

И еще вопрос. Hасколько критично будет для QPSK, если сигнал с линии будет достаточно сильный, что на выходе усилителя (входе АЦП) сигнал войдет в ограничение? Для FSK и BPSK по результатам моделирования практически незаметно ухудшения. А для QPSK?

Hужно ли делать полосовой фильтр на несущую в цифре перед демодуляторм, или он ничего принципиально не даст, поскольку корреляторы все равно будут выделять только несущую?

wbr, Andy

Reply to
Andy Mozzhevilov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.