Автор |
Сообщение |
|
Дата: 24 Дек 2006 14:43:35 · Поправил: SergUA6 (22 Авг 2007 21:56:10)
#
Попробуем приоткрыть завесу таинственности над аббревиатурой OFDM(Orthogonal Frequency Division Multiplexing), по русски это звучит примерно как, модуляция со многими ортогональными несущими. Постараемся понять как сигнал создается, заодно узнаем как формируются многополосные сигналы в принципе. Зная и понимая как сигналы образуются, можно значительно более продуктивно подходить к вопросам демодуляции и опознования. Суть OFDM довольно проста, канал передачи разбивается на множество(на сотни и тысячи) подканалов, что позволяет считать каждый такой подканал, идеальным каналом, при надлежащем выборе сетки подканалов и скорости манипуляции в них, удается использовать максимально полно весь частотный спектр основного канала, кроме того поражение части спектра основного канала помехой не приводит к фатальным последствиям. Моделью OFDM может служить набор генераторов с равномерным шагом частот. Определим понятие ортогональности к этим генераторам. Оно простое, если для времени T, интеграл колебаний любого генератора равен нулю, частоты генераторов являются ортогональными. Понятное дело таких частот бесконечное множество, например частоты f, 2*f, 3*f, 4*f и т.д. являются ортогональными, но это не очень интересно, интересным является набор ортогональных частот с минимально возможным шагом, для конкретной скорости манипуляции генераторов, и такой набор есть и легко вычисляется, частоты взятые с шагом равным скорости манипуляции являются ортогональными, что это дает? Во первых, максимально плотно используется спектр основного канала, плотнее частоты не расположить не нарушив условие ортогональности, во вторых, в силу нулевой интегральной суммы за один такт манипуляции, отсутствует взаимное влияние частот друг на друга, хотя их спектры и перекрываются, что позволяет надежно принимать передаваемые символы на каждом из подканалов. То есть разнос между частотами каналов равен скорости манипуляции. Есть смысл на этом остановится подробнее. Что такого удивительного, что скорость разноса равна скорости манипуляции, ведь хорошо известно, что существуют виды модуляций(gmsk к примеру) дающие такой же разнос? И что нам мешает использовать 10 gmsk модуляторов и получить такой же плотный спектр. Верно ни чего не мешает, но... сотни и тысячи gmsk модуляторов это не реально, ведь спектр каждого такого подканала формируется отдельно, по этому, уяснив основные принципы OFDM, посмотрим как все это реализуется практически. Тут на помощь приходит БПФ, которое позволяет, что называется, не прилагая усилий получить, сколь угодно широкую(ну уж значительно более широкую, чем если ее реализовывать на отдельных генераторах) линейку подканалов с автоматически гарантированной ортогональностью и максимальной скоростью манипуляции. Преобразование Фурье является очень мощным инструментом, позволящим легко переходить из временнОй области представления сигналов в частотную и обратно, что как нельзя лучше подходит для задач модуляции демодуляции в принципе, и OFDM в частности, да и любых многоканальных систем так же. Нет ничего сложного в использовании ПФ для OFDM. Во многих описаниях принципа OFDM есть одни и те же рисунки, примерно вот такие:
из которых следует, что сформировав комплексный сигнал в частотной области, путем обратного БПФ из него получают фрагмент сигнала во временнОй, из нашего рисунка получается, что создав частотные компоненты X0,X1...Xn-1 и подсунув их ОБПФ получаем фрагмент сигнала x0,x1...xN-1, который после переноса на рабочую частоту излучается в эфир(к примеру). Такая схема автоматически обеспечивает соблюдение необходимых условий для корректного формирования OFDM. Однако, если попробовать честно делать как нарисовано, то имеются две проблемы, первая, после ОБПФ получается комплексная последовательность, а вообще то нужна вещественная размером 2*N, и вторая, как известно прямое ПФ разлагает сигнал на постоянную составляющую и набор частотных компонент, у постоянной составляющей нет смысла в реальной и мнимой частях комплексного числа, а это значит, что обратное преобразование трактует одну из частот набора X0,X1...Xn-1 как постоянную компоненту сигнала, что автоматически вычеркивает ее из используемых. По схеме это X0, таким образом получается, что на N временнЫх отсчетов укладывается фактически N-1 рабочих, в смысле их управления, частот. Насколько это плохо и чем грозит? Да ни чем это ни грозит и ни чего плохого в этом нет, бывшая компонента X0 принимается всегда равной нулю, для восстановления статус-кво, добавляем еще одну частоту при формировании сигнала и используем как ни в чем не бывало. Ни каких основополагающих принципов не нарушено, наоборот все стало более правильным и понятным, при демодуляции, точно так же, компонента соответствующая постоянной составляющей просто игнорируется. С одной проблемой разобрались, вторая имеет два способа решения, один стандартный, путем пермножения мнимой и вещественной частей с синусом и косинусом частоты переноса, сложением и последущей фильтрацией, и второй путь, непосредственное получение вещественной последовательности размером 2*N, для чего используют некоторые предварительные манипуляции с компонентами X0,X1...XN-1, и дальнейший перенос на рабочую частоту. Оба абсолютно одинаковы в смысле конечного результата. Таким образом, говоря, о допустим 13 частотах OFDM, необходимо понимать, что реально речь идет о 14, просто всегда делаем "минус один в уме", на постоянную составляющую, и говорим об оставшихся 13. На самом деле все еще значительно проще и веселее, если можно выкинуть любую частоту из использования, то что мешает взять выборку для ОБПФ стандартного размера 2^n, допустим 16 и использовать к примеру пять частот? Ничего не мешает.
Более того такой подход позволяет легко добавлять и убирать частоты по ходу сеанса связи используя один и тот же алгоритм, ни что не мешает использовать частоты через одну, через две и т.д. Правда нужно понимать, что если используются частоты не с максимально плотной сеткой, то это уже не совсем OFDM, так как плотность использования спектра ниже максимальной, и хотя частоты несущих ортогональны, их спектры уже не перекрываются и получается классический вариант многоканальной модуляции с неперекрывающимся спектрами каналов и условие ортогональности частот не является обязательным, хотя и соблюдается. Именно так и делают практически все многоканальные системы передач встречающиеся на КВ, включая и OFDM.
Несколько иллюстраций ко всему сказанному.
Может показаться, что наличие характерных выбросов это один из признаков OFDM, к сожалению это не так, подобные выбросы исключительно на совести разработчиков, они легко убираются на этапе формирования сигнала, просто с этим похоже не заморачиваются, оставляя как есть. Хотя в большинстве сигналов они и присутствуют, ориентироватся на них нельзя, их может и не быть, но когда они есть это 99.99% OFDM, причем для формирования использовалось ОБПФ с большим количеством точек чем требуется по "науке", а период этих выбросов это тактовая частота манипуляции.
Как раз пример отсутствия явных выбросов, при желании можно и их следы убрать так же. Помним "минус один в уме", реально сигнал сформирован с ОБПФ на 8-мь точек. Нет проблем использовать ОБПФ на любое число, на сегодня есть быстрые алгоритмы, и реально у меня как раз один из них и работает, просто совпадение в данном случае, что получилось 2^3.
Использование принципов формирования OFDM, не для OFDM сигналов.
Наглядная демонстрация наличия нулевых точек взаимовлияния ортогональных несущих.
p.s.
Надеюсь это поможет кому то разобраться с OFDM в частности, и с использованием FFT для модуляции демодуляции в принципе.
p.p.s.
Вот еще дополнение, с позиций пройденного времени, на самом деле минус один в уме это крайний случай, реально сплошь и рядом используют блоки длинной превышающее нужное количество частот не менне чем в два раза, например для двенадцати частот используют блок FFT длинной 32 отсчета, для допустим 200 частот блок на 512 и т.д. просто явно об этом не пишут в общей литературе, а сразу и не догадаешься. |
|
Дата: 04 Янв 2007 18:24:07
#
Как бы уяснить ещё одну вещь, стало много понятнее с нулевой частотой, я с дуру ещё и самую последнюю выкидывал. С пилот тонами? Не выходит у меня вставка пилот тонов, если не делать циклический префикс, кажется так он называется, то пилот тоны чистые и красивые, а если делать, то от них ничего приятного не остаётся, как решают эту проблему? Я вот смотрю на DRM сигнал и там три чистых пилот тона и циклик префикс используют, у меня такого не выходит, где я туплю?
|
Реклама Google
|
|
|
Дата: 22 Авг 2007 20:41:17
#
А кто-нибудь пробовал реализовать демодулятор ОФДМ на MatLab'e?
|
|
Дата: 22 Авг 2007 23:28:54
#
Попробуйте поковырять http://drm.sourceforge.net/. Это программа DReaM --- софтовый приёмник (и модулятор) стандарта Digital Radio Mondiale. Там давно сделаны модулятор и демодулятор OFDM. Язык --- С/С++. На форуме у них пробегала ссылка на MatCad-овскую реализацию модулятора. |
|
Дата: 23 Авг 2007 16:14:33
#
zhaba
Спасибо посмотрю! :) Мне вообще на MatLab'e надо.
|
|
Дата: 23 Авг 2007 17:32:18
#
А мне, пожалуйста на ЛабВью.. :)
dub01 на Матлабе в Симулинке или в самом Матлабе чисто математически?
|
|
Дата: 23 Авг 2007 20:41:17
#
|
|
Дата: 25 Авг 2007 23:42:17
#
Diorama - DRM Radio for Matlab
Скачал версию 1.1.1 - вообще не работает. А 1.0.0 частично. Ругается что сигнал не 48kHz. :(
|
|
Дата: 26 Авг 2007 01:31:12
#
Какой у Вас Matlab?
|
|
Дата: 26 Авг 2007 14:22:53
#
Какой у Вас Matlab?
Matlab 7.0.1
|
|
Дата: 26 Авг 2007 14:32:46
#
dub01 Гы, а для кого написано что нужен версии 10 или выше? Так вы никогда не реализуете демодулятор ОФДМ на MatLab'e.
|
|
Дата: 26 Авг 2007 16:39:18
#
Mesh
Мне кажется на сайте они имеют в виду не версию а релис #10.
dub01
У меня стоит R2007a (7.4.0.287). Вы установили как описано в FAQ Visual C++, .NET SDK, Platform SDK, DirectX SDK и скомпилировали утилс-ы и модули I/O с помощью setup.m?
|
|
Дата: 29 Авг 2007 14:11:39
#
horizon
Нет. Этого я не делал...:( Сейчас попробую
|
|
Дата: 29 Окт 2007 19:12:45
#
Гм. Тут после прочтения http://www.radioscanner.ru/info/article192/ снова на меня нашёл приступ OFDMизации, есть вопросы ответа на которые я получить не могу. ;( Из написанного следует, что цикличиский префикс раздвигает частоты и их видно, из экспериментов с прогой так и получается, но их не видно чётко! А как тогда делаются эти сигналы. Взято с образцов сигналов на сайте mt-63 и q15*25 у них частоты разделяются чётко, но скорсть не в два раза меньше разноса. То есть по логике юзают циклический префикс, но получить такой сигнал не получается, не то что такой а даже и близко, где косяк? Как они делают такие сигналы?
![](http://signals.radioscanner.ru/files/signal124/picture_picblock_a_1.gif) |
|
Дата: 08 Ноя 2007 21:20:17
#
Спецам, касательно ОФДМ:
1)На счёт циклического префикса. Интересует следующее. Как правильно задать размер? На что именно он повлияет. + и - больших и малых GT.
2)Касательно ТИПА префикса. SergUA6 в своей статье - http://www.radioscanner.ru/info/article192/ писал про:
GuardAsZero - какой вид циклического префикса использовать, или стандартный, когда часть отсчетов из начала добавляется в конец(флажок не установлен), или другой, когда в конец просто дописываются нули(флажок установлен). И тот и другой вид префикса используется в настоящий момент в эфире, на реальных сигналах, каждый имеет как положительные так и отрицательные стороны.
Так вот какой тип лучше/хуже и почему? И какая именно часть отсчётов добавляется в конец? сколько 0?
3)Ещё вопрос касательно рациональности выбора числа поднесущих. Каков подход, опять же +/-
4)Читал что частотный разнос каналов = скорости манипуляции. Так ли это на самом деле? И как задаётся эта скорость? На что влияет?
Mesh
Не знаю, у меня у самого не получается за счёт увеличения циклического префикса раздвинуть частоты. В моём случае частотный раздвиг увеличился когда я задал некий параметр, CarrSpacing - т.е. интервал между несущими. К примеру 1 - использование каждого FFT бина, 2 - через один... и так далее. - только тогда получил нечто похожее на приведённые иллюстрации. |
|
Дата: 09 Ноя 2007 13:58:21
#
dub01 А можете выложить несколько сигналов с извесными параметрами? Посмотреть и сравнить хотелось бы.
|
|
Дата: 09 Ноя 2007 20:46:03
#
|
|
Дата: 09 Ноя 2007 21:15:56
#
dub01 Чтото не так как надо, а вот где и почему тяму у меня не хватает, ну очень сильно отличаются ваши сигналы от сгенерированых OCG, терь не понятно где ж правильно то?
|
|
Дата: 09 Ноя 2007 21:25:22
#
2dub01
Не знаю насколько правильно, но есть следующие мысли:
1. Prevent inter-symbol interference in a FIR channel if the length of
the CP is larger than the delay spread of channel.
2. Makes linear convolution "appear" as circular convolution over the
duration of the useful period in the OFDM symbol, thereby simplifying
equalization at receiver.
3. My own advantage: Timing offset correction is simplified since any
timing offset results in a progressive phase rotation, with
sub-carriers closer to DC having much smaller phase rotation compared
to sub-carriers closer to the nyquist frequency.
|
|
Дата: 09 Ноя 2007 21:44:45
#
Likx
Где-то уже видел такое! Но всё равно спасибо. Интересуют обоснованные ответы, можно с примерами и т.д.
|
|
Дата: 09 Ноя 2007 21:46:21
#
Посматривая разные материалы по офдм обратил внимание, что очень часто говорят пр фреймы. Фреймы что являются неотемлемой частью офдм?, без них никак?
|
|
Дата: 10 Ноя 2007 11:59:18
#
Likx
Посматривая разные материалы по офдм обратил внимание, что очень часто говорят пр фреймы. Фреймы что являются неотемлемой частью офдм?, без них никак?
Фрейм, как я понимаю это кадр. Во фрейме собирается определённое число символов. В моих примерах(2 ссылки сверху) как раз наблюдаются эти фреймы. В данном примере по 30 символов на фрейм. - т.е. пакетная передача ОФДМ получается.
Mesh
dub01 Чтото не так как надо, а вот где и почему тяму у меня не хватает, ну очень сильно отличаются ваши сигналы от сгенерированых OCG, терь не понятно где ж правильно то?
Я бы не сказал что отличия существенные, но я не знаю как в OCG генерируются эти самые сигналы(надо просить автора - SergUA6 пояснить), поэтому трудно сказать что не так.
|
|
Дата: 11 Ноя 2007 17:19:25
#
|
|
Дата: 02 Дек 2007 16:21:07 · Поправил: dub01 (02 Дек 2007 16:21:59)
#
SergUA6 - отдельное СПАСИБО за очередную статью!
1 - Защитный интервал в виде дополнения 0 в начало получающегося фрагмента вещественного сигнала после IFFT в начало.
+ возможность чётко выделять такты
+ во время молчания можно оценить шум общего канала
- тяжелые условия работы передатчика(имп. режим)
2 - Защитный интервал, где вместо 0 просто копируется часть отсчётов из конца сформированного вещественного сигнала после IFFT в начало.
+ можно выделить тактовую частоту, за счёт корреляции префикса с частью символа
+ снимается проблема работы передатчика в имп. реж.
Вопрос: Что именно нам даёт использование 2-го способа? Какие технологические преимущества мы получаем, почему с нулями хуже? Чем будет отличаться обработка сигналов с 1 и со 2 видами защитного интервала?
|
|
Дата: 02 Дек 2007 20:26:48
#
dub01
Использование второго способа дает отсутствие явных минусов, и как результат лучшую/полную электромагнитную совместимость с другим оборудованием. Обработка конечно будет отличаться, в первом случае достаточно выделения огибающей, во втором все несколько сложнее, в детали не вдавался, но ясно, что потребуется больше усилий для выделения тактовой синхронизации. Думаю, что внеполосный уровень излучений от работы высоколинейного передатчика в импульсном режиме, заставил разработчиков искать альтернативные решения, которое и было найдено как второй способ, несмотря на явное усложнение схемы выделения тактовой синхронизации. Вообще обработка OFDM модуляции несомненно представляет интерес, но не могу пока сказать, что владею этим вопросом достаточно хорошо.
|
|
Дата: 29 Апр 2008 22:11:00
#
Так, снова поднимаем тему. Сейчас есть вопрос касательно СИНХРОНИЗАЦИИ.
Собственно проблема в том, как нам правильно продемодулировать сигнал? Т.е. есть к примеру запись с частотой дискретизации fs=8000 Гц. Нам для приёма сигнала необходимо правильно выставить размер блока FFT на входе, т.е. правильно выбрать N точек Фурье. (чтобы отсчёты брались именно на поднесущих, а не где попало) Так вот собственно каков алгоритм выбора числа точек FFT для заданной частоты дискретизации?. Ведь мы можем продискретизировать сигнал и тем самым подвести его под нужный размер N ФФТ. Причём необходимо чтоб это укладывалось в пределах ОФДМ символа.
|
|
Дата: 30 Апр 2008 20:00:39
#
|
|
Дата: 04 Май 2008 20:50:47
#
Согласно данной статьи http://www.radioscanner.ru/info/article220/ глубокоуважаемого SergUA6 для оценки частоты дискретизации fs и блока FFT необходимо знать скорость манипуляции и разнос частот. Ранее писалось что разнос частот = скорости модуляции для OFDM, но если так, то весь расчёт приведёддый в статье ни к чему не приведёт, т.к. коэффициент отношения длинны циклического префикса к блоку IFFT - т.е. некий коэффициент k = (df-br)/br, где
df - delta freq - разнос сетки частот
br - baud rate - скорость манипуляции
будет равен 0.
Тогда возникает вопрос, какова же на самом деле скорость манипуляции br? Каким образом её расчитывать? Если можно то давайте конкретно для сигнала M39. (df=56,25Гц, 39несущих, ts=22,5ms) |
|
Дата: 04 Май 2008 21:08:34
#
dub01 Если я правильно выкурил статьи про ofdm, то случай br=df это как раз отсутствие циклик префикса, типа чистый ofdm и скорость манипуляции равно разносу сетки, ничего вычислять нет нужды. Присутствие циклик префикса приводит к нарушению условия br=df, криминала нет.
|
|
Дата: 04 Май 2008 21:14:16
#
Присутствие циклик префикса приводит к нарушению условия br=df, криминала нет.
Скорее соглашусь, но как тогда прикидывать реальную скорость манипуляции в многотональном сигнале с защитным интервалом(в частности - циклическим повторением некоторой части конца символа), чтобы можно было производить такие же математические операции как SergUA6.
|
Реклама Google |
|