Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Формирование сигнала GSM
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Pavel_SSS
Подскажите, в слоте стандарта GSM согласно стандарту содержится 156,25 бит - нецелое число. Я правильно понимаю, что при формировании фрейма GSM необходимо после каждого слота двигать фазу на 3/4 бита и будет скачек огибающей? И если это так, то какие мысли, зачем так сделано?
GetSmart
Моё предположение (я не спец). Фазу-то зачем двигать? Там последний 156-ой бит наверное растягивается по длине на 1/4 бита и всё. А дальше новый 156-битный пакет с обычной GMSK (FSK) модуляцией.
Pavel_SSS
Цитата(GetSmart @ Mar 3 2012, 00:56) *
Моё предположение (я не спец). Фазу-то зачем двигать? Там последний 156-ой бит наверное растягивается по длине на 1/4 бита и всё. А дальше новый 156-битный пакет с обычной GMSK (FSK) модуляцией.

А это и означает сдвиг фазы. Иначе фаза при GMSK будет инвертироваться не в нуле амплитуды со всеми вытекающими последствиями.
GetSmart
Цитата(Pavel_SSS @ Mar 3 2012, 02:02) *
Иначе фаза при GMSK будет инвертироваться не в нуле амплитуды со всеми вытекающими последствиями.

Из чистого любопытства, с камими последствиями?
Сигнал скорее всего комплексный и нуля амплитуды несущей в GMSK не бывает никогда.
Pavel_SSS
Цитата(GetSmart @ Mar 3 2012, 01:17) *
Из чистого любопытства, с камими последствиями?
Сигнал скорее всего комплексный и нуля амплитуды в MSK/GMSK не бывает никогда (имхо).

Нет, как раз при формировании MSK квадратурным модулятором разворот фазы на 180 градусов происходит в момент перехода I или Q через 0. Это, в частности, позволяет усиливать такие сигналы усилителем с малыми требованиями к линейности без потери качества.
GetSmart
Цитата(Pavel_SSS @ Mar 3 2012, 02:20) *
Нет, как раз при формировании MSK квадратурным модулятором разворот фазы на 180 градусов происходит в момент перехода I или Q через 0.

Напоминает PSK модуляцию. Вроде бы в GMSK модулирующий сигнал меняет частоту несущей, не фазу. Зачем там разворот фазы на 180 град?
Pavel_SSS
Цитата(GetSmart @ Mar 3 2012, 01:39) *
Напоминает PSK модуляцию. Вроде бы в GMSK модулирующий сигнал меняет частоту несущей, не фазу. Зачем там разворот фазы на 180 град?

MSK (Minimal shift keying) модуляцию можно представить как передачу частоты Fs/4 когда передается 1 и -Fs/4 когда передается 0, где Fs - символьная скорость,
а можно представить как фазовую манипуляцию, когда при переходе от 0 к 1 и от 1 к 0 меняется фаза той квадратурной компоненты, которая в этот момент переходит через 0, так что вектор меняет направление вращения. Как-то так...
GetSmart
Цитата(Pavel_SSS @ Mar 3 2012, 02:49) *
Как-то так...

А когда одинаковые биты подряд идут. Как фазовой манипуляцией имитировать FSK/GMSK? Там же несущие для 0 и 1 должны быть разными. То есть переходные последовательности 01 и 10 допустим можно сымитировать.
Pavel_SSS
Цитата(GetSmart @ Mar 3 2012, 01:55) *
А когда одинаковые биты подряд идут. Как фазовой манипуляцией имитировать FSK/GMSK? Там же несущие для 0 и 1 должны быть разными. То есть переходные последовательности 01 и 10 допустим можно сымитировать.

Когда идут одинаковые биты, то это можно понимать как наличие на выходе чистой частоты +- Fs/4, соответственно, вектор вращается всегда в одну сторону, не происходит скачков фазы.
GetSmart
Цитата(Pavel_SSS @ Mar 3 2012, 02:59) *
... не происходит скачков фазы.

ИМХО там скачков никогда и не было.

Но вообще, если их делать, то можно длину одного бита поделить на 4 (частоту *4) и в эти моменты производить скачёк на модуляторе. При этом "фаза на 3/4 не будет скакать", как обычно, просто кратно 1/4 длины бита.
Pavel_SSS
Цитата(GetSmart @ Mar 3 2012, 02:04) *
ИМХО там скачков никогда и не было.

Но вообще, если их делать, то можно длину одного бита поделить на 4 (частоту *4) и в эти моменты производить скачёк на модуляторе. При этом "фаза на 3/4 не будет скакать", как обычно, просто кратно 1/4 длины бита.

Так нельзя делать потому что не во все интервалы, кратные 1/4 бита одна из компонент будет проходить через 0, а только каждая четвертая. А если крутить фазу не в точке перехода через 0, у выходного сигнала не будет постоянной амплитуды и потеряется одно из главных преимуществ MSK.
GetSmart
Цитата(Pavel_SSS @ Mar 3 2012, 02:59) *
Когда идут одинаковые биты, то это можно понимать как наличие на выходе чистой частоты +- Fs/4, соответственно, вектор вращается всегда в одну сторону, не происходит скачков фазы.

До сих пор непонятно. Вы хотите "понимать" или модулировать неким алгоритмом, который что-то делает с несущей при переходе её через ноль? Например, есть описание модуляции GMSK, в котором написано, что GMSK похож на MSK, но модулируется совсем по другому алгоритму. Точнее, по методу ЧМ модуляции с предворительно сглаженным потоком входных данных.
http://en.wikipedia.org/wiki/Minimum-shift_keying

Цитата(Pavel_SSS @ Mar 3 2012, 03:13) *
Так нельзя делать потому что не во все интервалы, кратные 1/4 бита одна из компонент будет проходить через 0, а только каждая четвертая. А если крутить фазу не в точке перехода через 0, у выходного сигнала не будет постоянной амплитуды и потеряется одно из главных преимуществ MSK.

Это какой-то известный/описанный метод создания GMSK (не MSK) ? Хотелось бы почитать о нём по-подробнее.
Pavel_SSS
Цитата(GetSmart @ Mar 3 2012, 04:04) *
Это какой-то известный/описанный метод создания GMSK (не MSK) ? Хотелось бы почитать о нём по-подробнее.

Конечно можно. Например, здесь http://www.dsplib.ru/content/msk/msk.html
alex_os
Цитата(Pavel_SSS @ Mar 2 2012, 22:45) *
Подскажите, в слоте стандарта GSM согласно стандарту содержится 156,25 бит - нецелое число. Я правильно понимаю, что при формировании фрейма GSM необходимо после каждого слота двигать фазу на 3/4 бита и будет скачек огибающей? И если это так, то какие мысли, зачем так сделано?

Там не все 156 битов энергия передается последние несколько битов - это guard bits и во время их ничего не изучается. Соотв. тут можно вставить любое дробное число битов .
Pavel_SSS
Цитата(alex_os @ Mar 3 2012, 09:25) *
Там не все 156 битов энергия передается последние несколько битов - это guard bits и во время их ничего не изучается. Соотв. тут можно вставить любое дробное число битов .

Если так, тогда с передатчиком понятнее. Я почему-то думал что во время guard bits излучаются нули. Но если ничего не излучается, то тогда вопрос: как ведет себя когерентный демодулятор - он весь предыдущий слот синхронизировался по частоте и фазе, а потом в начале нового слота фаза сразу повернулась на 1/4 символа? Т.е. демодулятор должен при начале каждого слота накидывать фазу ФАПЧ на 1/4 символа?
alex_os
Цитата(Pavel_SSS @ Mar 3 2012, 08:49) *
Если так, тогда с передатчиком понятнее. Я почему-то думал что во время guard bits излучаются нули. Но если ничего не излучается, то тогда вопрос: как ведет себя когерентный демодулятор - он весь предыдущий слот синхронизировался по частоте и фазе, а потом в начале нового слота фаза сразу повернулась на 1/4 символа? Т.е. демодулятор должен при начале каждого слота накидывать фазу ФАПЧ на 1/4 символа?

А пакеты они в общем случае не когерентны, и вообще в соседних таймслотах могут разные пользователи излучать, этоже TDMA.
Serg76
Цитата(Pavel_SSS @ Mar 3 2012, 08:49) *
Если так, тогда с передатчиком понятнее. Я почему-то думал что во время guard bits излучаются нули. Но если ничего не излучается, то тогда вопрос: как ведет себя когерентный демодулятор - он весь предыдущий слот синхронизировался по частоте и фазе, а потом в начале нового слота фаза сразу повернулась на 1/4 символа? Т.е. демодулятор должен при начале каждого слота накидывать фазу ФАПЧ на 1/4 символа?

Для каждого нового пакета все параметры систем демодулятора будут рассчитываться заново
GetSmart
Цитата(Pavel_SSS @ Mar 3 2012, 10:23) *
Конечно можно. Например, здесь http://www.dsplib.ru/content/msk/msk.html

Я же спросил НЕ MSK, а GMSK.
Ссылка вот http://www.dsplib.ru/content/gmsk/gmsk.html
рисунок 17. Никакими перескоками фазы при переходе через 0 это не сделать.
А у MSK внеполосные излучения намного выше как раз из-за этих скачков.
Pavel_SSS
Цитата(Serg76 @ Mar 3 2012, 10:18) *
Для каждого нового пакета все параметры систем демодулятора будут рассчитываться заново

А на основании чего вычислять новые параметры? Преамбулы то нет!
Serg76
Цитата(Pavel_SSS @ Mar 4 2012, 02:21) *
А на основании чего вычислять новые параметры? Преамбулы то нет!

Как нет? в середине пакета есть 26-ти битная настроечная последовательность.
Pavel_SSS
Цитата(Serg76 @ Mar 4 2012, 11:26) *
Как нет? в середине пакета есть 26-ти битная настроечная последовательность.

Но тогда придется обрабатывать данные всего слота сразу, в принципе так можно сделать, но ведь намного лучше обрабатывать бит за битом.
Serg76
Цитата(Pavel_SSS @ Mar 4 2012, 10:48) *
Но тогда придется обрабатывать данные всего слота сразу, в принципе так можно сделать, но ведь намного лучше обрабатывать бит за битом.

Выделяеете пакет, рассчитываете параметры ФАПЧей, эквалайзера, а затем посимвольно демодулируете.
Pavel_SSS
Цитата(Serg76 @ Mar 4 2012, 11:53) *
Выделяеете пакет, рассчитываете параметры ФАПЧей, эквалайзера, а затем посимвольно демодулируете.

А зачем расчитывать параметры отдельно для каждого слота? Почему не сделать просто узкополосную ФАПЧ и узкополосную петлю символьной синхронизации и эквалайзер сделать адаптивным - слот длинной 577 мкс всего - за это время параметры сигнала существенно не изменятся и подойдут настройки от предыдущего слота. Или я не прав?
Serg76
Цитата(Pavel_SSS @ Mar 4 2012, 12:14) *
А зачем расчитывать параметры отдельно для каждого слота? Почему не сделать просто узкополосную ФАПЧ и узкополосную петлю символьной синхронизации и эквалайзер сделать адаптивным - слот длинной 577 мкс всего - за это время параметры сигнала существенно не изменятся и подойдут настройки от предыдущего слота. Или я не прав?

Ну, во-первых, мы имеем дело с TDMA системой, где каждый временной интервал отводится отдельному абоненту, которые работают в общей полосе, а следовательно, в каждом слоте будут присутствовать свои отстройки по частоте и фазе несущей и тактов и рассчитывать их придется для каждого пакета. на длине самого пакета параметры не должны существенно меняться, так же как и не должны меняться характеристики самого канала и можно считать эти параметры постоянными. Во-вторых, эквалайзер в любом случае должен быть адаптивным (в GSM применяется эквалайзер с алгоритмом Витерби), поскольку замирания в канале никто не отменял.
Pavel_SSS
Цитата(Serg76 @ Mar 4 2012, 12:31) *
Ну, во-первых, мы имеем дело с TDMA системой, где каждый временной интервал отводится отдельному абоненту, которые работают в общей полосе, а следовательно, в каждом слоте будут присутствовать свои отстройки по частоте и фазе несущей и тактов и рассчитывать их придется для каждого пакета. на длине самого пакета параметры не должны существенно меняться, так же как и не должны меняться характеристики самого канала и можно считать эти параметры постоянными. Во-вторых, эквалайзер в любом случае должен быть адаптивным (в GSM применяется эквалайзер с алгоритмом Витерби), поскольку замирания в канале никто не отменял.

Если мы говорим о приеме сигнала, например, базовой станции, то там все сихронизируется от одного стабильного генератора и позиция первого бита нового слота точно известна, следовательно, я могу с помощью "медленной" ФАПЧ держать все параметры. Вопрос в том, почему в стандарте дробное количество битов в слоте. По-моему это добавляет много неудобств и не дает никаких преимуществ.
Serg76
Цитата(Pavel_SSS @ Mar 4 2012, 12:52) *
и позиция первого бита нового слота точно известна

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

Цитата(Pavel_SSS @ Mar 4 2012, 12:52) *
По-моему это добавляет много неудобств и не дает никаких преимуществ.

Да какие же неудобства? Как говорил, alex_os, эта дробная часть приходится на защитный интервал, в течение которого сигнал не излучается, следовательно и обрабатывать там ничего не надо. А для нового пакета все параметры систем все равно придется рассчитывать заново.
Serg76
почитал немного про стандарт. действительно, базовая станция отслеживает изменение расстояния до мобильной станции и постоянно корректирует величину задержки до 1/4 бита sad.gif. также корректируется и частота. таким образом получается, что и отстройки вычислять не надо sad.gif, остается выполнить только расчет параметров эквалайзера для каждого пакета.
Pavel_SSS
Цитата(Serg76 @ Mar 4 2012, 15:36) *
почитал немного про стандарт. действительно, базовая станция отслеживает изменение расстояния до мобильной станции и постоянно корректирует величину задержки до 1/4 бита sad.gif. также корректируется и частота. таким образом получается, что и отстройки вычислять не надо sad.gif, остается выполнить только расчет параметров эквалайзера для каждого пакета.

Вот и я про то же. Но из-за того, что в слоте дробное количество бит, необходимо, например, корректировать значение в интеграторе символьной синхронизации в начале каждого нового слота - это нельзя назвать удобным. кстати, кто-нибудь из знатоков может точно (не догадки) сказать - действительно ли БАЗОВАЯ СТАНЦИЯ при передаче ничего не излучает в период 8.25 бит защитного интервала? Или передает, например, нули? Если можно, со ссылками на документы стандарта. Заранее спасибо.
Serg76
Цитата(Pavel_SSS @ Mar 5 2012, 12:48) *
Вот и я про то же. Но из-за того, что в слоте дробное количество бит, необходимо, например, корректировать значение в интеграторе символьной синхронизации в начале каждого нового слота - это нельзя назвать удобным.

да как бы тоже не вижу здесь проблемы, достаточно задаться значением 4 sps, т.е. 4 отсчета на такт, и двигать эти отсчеты вправо/влево на любое количество.
Pavel_SSS
Интересное кино получается - тут добрался вчера до векторного генератора Agilent E4437B, включил на нем генерацию сигнала GSM, взял с задней панели сигнал с разъема
DATA CLK OUT и подал на осциллограф. Так вот, нет там никаких сдвигов на 1/4 символа между слотами. Как это объяснить?
Pavel_SSS
Цитата(Pavel_SSS @ Mar 8 2012, 15:25) *
Интересное кино получается - тут добрался вчера до векторного генератора Agilent E4437B, включил на нем генерацию сигнала GSM, взял с задней панели сигнал с разъема
DATA CLK OUT и подал на осциллограф. Так вот, нет там никаких сдвигов на 1/4 символа между слотами. Как это объяснить?

Все оказалось очень просто
Цитата
Guard time appears in the visual representation of the timeslot as an 8.25-bit field. In the
actual implementation, the guard time field in timeslots 0 and 4 are 9 bits long and the
remaining timeslots contain 8 bit fields. (This implementation is documented in the GSM
standard “GSM REC. 05.10 Section 5.7” as follows: “Optionally, the BS may use a timeslot
length of 157 bit periods on timeslots with TN=0 and 4, and 156 bit periods on timeslots
with TN=1, 2, 3, 5, 6, 7, rather than 156.25 bit periods on all timeslots.”)

из мануала к опциям генератора.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.