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

Feb 06, 2005 136 Replies

Fri Mar 18 2005 21:50, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

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

Да и в квадрат возводить тоже необязательно.

sqrt(x^2 + y^2) ~ max(|x|,|y|) + 0.25*min(|x|, |y|)

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

Perfect :)

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

Так лучше, но тоже необязательно. Достаточно обычной петли на 0/180.

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

Зависит от входного SNR. Если SNR лучше ~12dB, то почти без разницы. Чем хуже, тем хуже.

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

Ограничение допускается. Главное, чтобы SNR перед ограничителем был хотя бы ~10dB.

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

VLV

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

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

VV>>> Так делать оптимально по SNR. Хотя можно сделать петлю Костаса, VV>>> работающую независимо от символьной синхры. AM>> В этом случае видимо нужно делать модификацию петли, котороя фапчуется с AM>> точностью до 90 гр.?

VV> Так лучше, но тоже необязательно. Достаточно обычной петли на 0/180.

Если я зафапчуюсь, скажем на угол 0,180, после чего в поток введу только 90 и/или 270, то фапч в этом случае перестроится на них. Пытаюсь несколько домыслить: Hачало пакета делать с преамбулой 0/180 между символами, петлевой фильтр фапч настроить на относительно быструю синхронизацию примерно за ~20-30 символов. За время передачи преамбулы демодулятор независимо настраивает фапч на несущую и символьную синхру. Синхрослово делаем состоящим из символов 0 и 180, только не чередующихся на каждом символе. После приема синхрослова петлевой фильтр в фапч на несущую меняем для медленного отслеживаения изменений несущей. Hо все равно есть сомнение, не будет ли в этом случае фапч отслеживать только 0/180, ведь нет гарантии, что в потоке не будет преобладания 90/270 и с времением фапч сделает их как 0 и 180. Другой вариант, который приходит в голову. Делаю преамбулу 0-180-0-180...+ синхрослово в котором изменения фазы также только 0/180. То есть фактически начинаем, как BPSK. Локальную символьную синхру подстраиваем по фазе к фронтам в усредненном Q костаса. Как только преамбула будет опознана, размыкаем в фапч обратную связь и вводим другую ОС компенсации ошибки по фазе принятых символов относительно 0/90/180/270.

wbr, Andy

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

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

VV> A1*(A0 - A2)

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

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

wbr, Andy

Sun Mar 20 2005 07:08, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

VV>>>> Хотя можно сделать петлю Костаса, VV>>>> работающую независимо от символьной синхры. AM>>> В этом случае видимо нужно делать модификацию петли, котороя фапчуется AM>>> с точностью до 90 гр.? VV>> Так лучше, но тоже необязательно. Достаточно обычной петли на 0/180.

AM> Если я зафапчуюсь, скажем на угол 0,180, после чего в поток введу AM> только 90 и/или 270, то фапч в этом случае перестроится на них.

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

AM> Пытаюсь несколько домыслить:

[...] В моей реализации QPSK оказалось вполне достаточно ФАПЧ в момент принятия символа и символьной синхры как в предыдущем письме. Постоянные времени обеих петель не меняются. Время вхождения в синхронизм ~20 символов. QPSK кодирована дифференциально, чтобы не разбираться, на какой из 4-х возможных фаз произощел захват ФАПЧ. Скремблирования нет, т.к. поток данных достаточно случаен по условию задачи.

VLV

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

Sun Mar 20 2005 20:34, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

VV>>> Так лучше, но тоже необязательно. Достаточно обычной петли на 0/180.

AM>> Если я зафапчуюсь, скажем на угол 0,180, после чего в поток введу AM>> только 90 и/или 270, то фапч в этом случае перестроится на них.

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

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

VV> Для этого делают скремблирование данных. Вопрос. Ты говорил, что можно достичь скорости 4800.

4800 - это QPSK для скорости манипуляции 2400 и такой же несущей, либо 16PSK для скорости манипуляции 1200, что само по себе уже значительно хуже по вероятности ошибки при том же SNR. Какую схему модуляции и несущую ты имел ввиду, если ограничиться полосой ТЧ канала?

Какой смысл в смещении на pi/4 угла в qpsk?

wbr, Andy

Sun Mar 20 2005 21:57, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

AM> Вопрос. Ты говорил, что можно достичь скорости 4800. AM> 4800 - это QPSK для скорости манипуляции 2400 и такой же несущей,

4800 это QPSK со скоростью 2400 на несущей 1800.

AM> либо 16PSK для скорости манипуляции 1200,

При трех и более битах на символ PSK становится энергетически невыгодна. Hужно применять QAM.

AM> Какую схему AM> модуляции и AM> несущую ты имел ввиду, если ограничиться полосой ТЧ канала?

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

AM> Какой смысл в смещении на pi/4 угла в qpsk?

??? Hе понял

VLV

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

Hello Vladimir.

AM>> Вопрос. Ты говорил, что можно достичь скорости 4800. AM>> 4800 - это QPSK для скорости манипуляции 2400 и такой же несущей,

VV> 4800 это QPSK со скоростью 2400 на несущей 1800.

А некpатность несyщей и частоты манипyляции не вносит дополнительных пpоблем?

AM>> Какой смысл в смещении на pi/4 угла в qpsk?

VV> ??? VV> Hе понял

В некотоpых книгах и статьях pассматpивается QPSK, как повеpнyная на

45 гpадyсов. То есть с yглами 45/135/225/315 гpадyсов. Какой в этом смысл по сpавнению с 0/90/180/270?

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

icq 44341220

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

Воскресенье Март 20 2005 07:08, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

AM> Если я зафапчуюсь, скажем на угол 0,180, после чего в поток введу AM> только 90 и/или 270, то фапч в этом случае перестроится на них. AM> Пытаюсь несколько домыслить: AM> Hачало пакета делать с преамбулой 0/180 между символами, петлевой AM> фильтр фапч настроить на относительно быструю синхронизацию примерно AM> за ~20-30 символов. За время передачи преамбулы демодулятор независимо AM> настраивает фапч на несущую и символьную синхру. Синхрослово делаем AM> состоящим из символов 0 и 180, только не чередующихся на каждом AM> символе. После приема синхрослова петлевой фильтр в фапч на несущую AM> меняем для медленного отслеживаения изменений несущей. Hо все равно AM> есть сомнение, не будет ли в этом случае фапч отслеживать только AM> 0/180, ведь нет гарантии, что в потоке не будет преобладания 90/270 и AM> с времением фапч сделает их как 0 и 180. AM> Другой вариант, который приходит в голову. AM> Делаю преамбулу 0-180-0-180...+ синхрослово в котором изменения фазы AM> также только 0/180. То есть фактически начинаем, как BPSK. AM> Локальную символьную синхру подстраиваем по фазе к фронтам в AM> усредненном Q костаса. Как только преамбула будет опознана, размыкаем AM> в фапч обратную связь и вводим другую ОС компенсации ошибки по фазе AM> принятых символов относительно 0/90/180/270.

Используй дельта-кодирование. Иформация кодируется _разностью фаз_ между соседними символами. Hачальная ошибка фазы значения не имеет...

Георгий

Mon Mar 21 2005 09:07, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

VV>> 4800 это QPSK со скоростью 2400 на несущей 1800.

AM> А некpатность несyщей и частоты манипyляции не вносит дополнительных AM> пpоблем?

Проблема тут есть такая: после перемножения на sin/cos в приемнике в сигнале I и Q есть составляющая на удвоенной частоте несущей. Если на длине символа укладывается целое число полупериодов несущей, то интегрирование на длине символа полностью подавит эту составляющую.

AM> В некотоpых книгах и статьях pассматpивается QPSK, как повеpнyная на AM> 45 гpадyсов. То есть с yглами 45/135/225/315 гpадyсов. Какой в этом смысл AM> по сpавнению с 0/90/180/270? Они рассматривают QPSK как сумму двух BPSK сигналов с фазами 0/180 и 90/270. Дело вкуса.

VLV

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

Mon Mar 21 2005 17:20, Vladimir Vassilevsky wrote to Andy Mozzhevilov:

VV>>> 4800 это QPSK со скоростью 2400 на несущей 1800.

AM>> А некpатность несyщей и частоты манипyляции не вносит дополнительных AM>> пpоблем?

VV> Проблема тут есть такая: после перемножения на sin/cos в приемнике VV> в сигнале I и Q есть составляющая на удвоенной частоте несущей. VV> Если на длине символа укладывается целое число полупериодов несущей, VV> то интегрирование на длине символа полностью подавит эту составляющую.

Это я понимаю. Hо у тебя ведь 1800/2400 = 0.75, то есть не кратно полупериоду, поэтому и интересно, не ухудшает ли такое соотношение производительность демодулятора?

Еще я спрашивал вчера, но ты не ответил, может не заметил? повторюсь:

VV> A1*(A0 - A2)

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

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

wbr, Andy

Mon Mar 21 2005 18:41, Andy Mozzhevilov wrote to Vladimir Vassilevsky:

AM>>> А некpатность несyщей и частоты манипyляции не вносит дополнительных AM>>> пpоблем? VV>> Если на длине символа укладывается целое число полупериодов несущей, VV>> то интегрирование на длине символа полностью подавит эту составляющую. AM> Это я понимаю. Hо у тебя ведь 1800/2400 = 0.75, то есть не кратно AM> полупериоду, поэтому и интересно, не ухудшает ли AM> такое соотношение производительность демодулятора?

Интегрируешь на периоде от 3600. При этом как бы учитывается то, что полоса канала ограничена, то есть сигнал уже слегка проинтегрирован. VV>> A1*(A0 - A2) AM> Как мне кажется, нужно смотреть не на +-полсимвола, а +-четверть символа,

Пришлось залезть в код. Есть два разных способа:

1) A1*(A0 - A2), со сдвигом на 1/4 символа. 2) I1*(I0 - I2) + Q1*(Q0 - Q2) со сдвигом на 1/2 символа. VLV

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

Mon Mar 21 2005 15:19, George Shepelev wrote to Andy Mozzhevilov:

AM>> Другой вариант, который приходит в голову. AM>> Делаю преамбулу 0-180-0-180...+ синхрослово в котором изменения фазы AM>> также только 0/180. То есть фактически начинаем, как BPSK. AM>> Локальную символьную синхру подстраиваем по фазе к фронтам в AM>> усредненном Q костаса. Как только преамбула будет опознана, размыкаем AM>> в фапч обратную связь и вводим другую ОС компенсации ошибки по фазе AM>> принятых символов относительно 0/90/180/270.

GS> Используй дельта-кодирование. Иформация кодируется _разностью фаз_ между GS> соседними символами. Hачальная ошибка фазы значения не имеет...

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

wbr, Andy

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

Среда Март 23 2005 18:14, Andy Mozzhevilov wrote to George Shepelev:

AM>>> Другой вариант, который приходит в голову. AM>>> Делаю преамбулу 0-180-0-180...+ синхрослово в котором изменения AM>>> фазы также только 0/180. То есть фактически начинаем, как BPSK. AM>>> Локальную символьную синхру подстраиваем по фазе к фронтам в AM>>> усредненном Q костаса. Как только преамбула будет опознана, AM>>> размыкаем в фапч обратную связь и вводим другую ОС компенсации AM>>> ошибки по фазе принятых символов относительно 0/90/180/270. GS>> Используй дельта-кодирование. Иформация кодируется _разностью GS>> фаз_ между соседними символами. Hачальная ошибка фазы значения не GS>> имеет... AM> Ты вопрос то понял хоть в чем заключается?

Да, а ты совет понял?

AM> Вижу, не понял. Так фигли лезть? Только для того, чтобы и в этой ветке

Вижу, ты просто хочешь мужественно преодолевать трудности. Что-ж, дело хозяйское, можешь продолжать в том-же духе...

Георгий

Hello Andy!

21 Mar 05 09:07, you wrote to Vladimir Vassilevsky:

AM> В некотоpых книгах и статьях pассматpивается QPSK, как повеpнyная на AM> 45 гpадyсов. То есть с yглами 45/135/225/315 гpадyсов. Какой в этом AM> смысл по сpавнению с 0/90/180/270?

Элементарно, Ватсон. Каждый бит сопровождается скачком фазы, то есть сигнал всегда содержит компонент, дающий символьную синхронизацию.

Anatoly

Sun Mar 27 2005 13:26, Anatoly Mashanov wrote to Andy Mozzhevilov:

AM>> В некотоpых книгах и статьях pассматpивается QPSK, как повеpнyная на AM>> 45 гpадyсов. То есть с yглами 45/135/225/315 гpадyсов. Какой в этом AM>> смысл по сpавнению с 0/90/180/270?

AM> Элементарно, Ватсон. Каждый бит сопровождается скачком фазы, то есть AM> сигнал всегда содержит компонент, дающий символьную синхронизацию.

Hе понял. В случае применения в QPSK для кодирования символов фаз

45/135/225/315 какая в них содержится дополнительная информация по сравнению со схемой 0/90/180/270?

wbr, Andy

AM> Sun Mar 27 2005 13:26, Anatoly Mashanov wrote to Andy Mozzhevilov: AM> AM> AM>> В некотоpых книгах и статьях pассматpивается QPSK, как повеpнyная на AM> AM>> 45 гpадyсов. То есть с yглами 45/135/225/315 гpадyсов. Какой в этом AM> AM>> смысл по сpавнению с 0/90/180/270?

Посмотри здесь: (spra138.pdf)

formatting link

Hi!

EM> EM> Посмотри здесь: (spra138.pdf) EM> EM>

formatting link
и здесь: (spra341.pdf)

formatting link

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required