|
Demodulat0r O F D M, Demodulat0r O F D M |
|
|
|
Aug 22 2007, 17:14
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 22-08-07
Пользователь №: 29 989

|
Нашёл в сети исходник на MatLab'e по генерации, передачи и получению OFDM сигнала, но у меня задача другая. Имеется сигнал OFDM, записанный с эфира. Надо его прослушать, т.е. демодулировать. Коверкался с исходником, так ничего и не получилось. Уважаемые эксперты! Помогите, может у кого завалялся демодулятор OFDM сигналов!? Заранее большое спасибо.
|
|
|
|
|
 |
Ответов
|
Dec 10 2008, 18:12
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 22-08-07
Пользователь №: 29 989

|
Цитата(petrov @ Dec 8 2008, 16:35)  Вот вам пример симулинк модель подобной синхронизации: http://electronix.ru/forum/index.php?s=&am...st&p=513268Там правда не OFDM а FMT, но в данном случае не имеет значения, в FMT поднесущие не перекрываются, нету ICI, нет нужды в защитном интервале. Спасибо за отличную модельку! Я посмотрел её, но честно сказать она у Вас построена не потому алгоритму, про который указывалось в статье... Например того же возведения в 4 степень у Вас я нигде не нашёл. Я не специалист в simulink'е, поэтому если мои вопросы покажутся смешными, прошу извинить: 1)Во-первых, поясните пожалуйста почему и для чего Вы чуть ли не в каждом блоке ставите цифровой синтезатор частоты (NCO)? Он присутствует в блоке fmt_modulator, на главной схеме, далее внутри блока two_sps_clock_domain2, в polyphase_FIR_filter, а также в two_sps_clock_domain. Скажите как они связаны между собой и на каких частотах функционируют? Я выполнил цветовую маркировку блоков (Format-Port/Signal Displays -> Sample Time Colors) и у меня вся схема была одного цвета( Это нормально? У Вас ведь столько стробирующих синтезаторов! 2)Во-вторых, поясните как Вы реализовали полифазный фильтр. Пользуюсь описанием http://www.tsi.lv/RSR/vol03/RSR1999v03-10.pdf я с трудом смог сопоставить с Вашей реализацией. На входе как я понял [576x1] блок данных, далее этот блок преобразуется в 2х мерную матрицу [36x16], затем транспонирование в [16x36] параллельно заводится похожая линия ИХ канала. Всё это перемножается и получается некий новый блок данных [16x36]. А вот далее у Вас идёт блок Select Columns (Выбор столбцов). Объясните по какому критерию идёт отбор? ({1:4, 5:32, 33:36} - почему именно так?) В результате получаем кстате уже [16x32] блок данных, т.е. 4 строчки отсеяли... Там ещё у Вас усилитель с коэф. усиления = 1 - какой смысл этого элемента? 3)Как я понял, Ваша моделька - эмуляция 12 канальной системы. Синхронизация осуществляется по схеме Гарднера. Поэкспериментировав с параметрами phase offset & frequency offset пришёл к выводу что схема довольно точно подстраивается по частоте, но при значении 1/2^3 Гц она очень долго отрабатывала. Есть ли какие-нибудь предложения по модификации или доработки текущей модели с целью увеличения производительности и запаса по задержкам (phase offset & frequency offset)? Цитата(DMax @ Dec 8 2008, 12:35)  Автокорреляция в OFDM во временной области не эффективна - очень широкий и не выраженный пик. Лучше детектить преамбулу путем автокорреляции в частотной области - точнее автокоррелировать амплитуды поднесущих с амлитудой пилотов в преамбуле. Это позволить задетектировать преамбулу в плюс-минус guard-интервале. Дальнейшее надо предоставить эквалайзеру. Я как раз реализовал синхронизацию во временной области, по средствам автокорреляции циклического префикса. Действительно пики достаточно широкие, но по ним можно с погрешностью +-3 отсчёта засинхронизироваться. Ну а для совсем точной синхронизации можно рассмотреть модельку господина petrov'a, с которой я потихоньку стараюсь разобраться. Что касается Вашего предложения синхронизоваться по преамбуле, то тут нужно сказать что не во всех сигналах она присутствует, точно также как и пилот-тон , а циклический префикс используется почти всегда (кстате он специально предназначался не только для борьбы с замираниями в каналах и с МСИ, но и для частотной и временной синхронизации). Хотя не буду спорить, возможно если есть преамбула или пилот, то по ним проще и лучше синхронизироваться. У Вас есть какие-нибудь результаты?
|
|
|
|
|
Dec 11 2008, 14:00
|
Частый гость
 
Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234

|
Цитата(Dub01 @ Dec 10 2008, 21:12)  Я как раз реализовал синхронизацию во временной области, по средствам автокорреляции циклического префикса. Действительно пики достаточно широкие, но по ним можно с погрешностью +-3 отсчёта засинхронизироваться. Ну а для совсем точной синхронизации можно рассмотреть модельку господина petrov'a, с которой я потихоньку стараюсь разобраться. Все дело в том, что схема описаная в статье применима только в том случае, когда ты точно знаешь, что в этом месте есть нужные тебе сигнал. Она будет давать мягко говоря странные результаты, если её применить к шуму. А вот чтобы просто обнаружить OFDM нужно использовать другие методы. Это можно делать разными методами, но корреляция в частотной области мне кажестя наиболее эффективной. Цитата(Dub01 @ Dec 10 2008, 21:12)  Что касается Вашего предложения синхронизоваться по преамбуле, то тут нужно сказать что не во всех сигналах она присутствует, точно также как и пилот-тон , а циклический префикс используется почти всегда (кстате он специально предназначался не только для борьбы с замираниями в каналах и с МСИ, но и для частотной и временной синхронизации). Хотя не буду спорить, возможно если есть преамбула или пилот, то по ним проще и лучше синхронизироваться. У Вас есть какие-нибудь результаты? В реализациях OFDM я ещё не встречал сигналов без преамбулы. Все дело в том, что вы не можете засинхронизироваться точнее чем в отсчет. А промах на t, где 0 <= t < 1/Fs, то есть меньше отсчета, приводит к тому, что фаза n-ой поднесущей убегает относительно фазы 1-ой поднесущей на n*delta_w*t , где delta_w - разнос между двумя соседними поднесущими. То есть фаза у самой высокочастотной поднесущей убежит на довольно большую величину вплоть до Pi. А ваше сигнальное созведие превратится в нечто, что я называю "веером". Такие вещи может и должен исправлять эквалайзер, который строится по заранее известному сигналу, т.е. преамбуле. Что касается статьи - авторы предлагают использовать QPSK манипуляцию для фаз поднесущих. Этот же метод будет работать для BPSK и других фазовых манипуляциях. Однако, например, манипулированный 64-QAM сигнал очень сложно подстраивать, используя такой метод и отказавшись от пилотов. Поэтому и в WiFi и в WiMax они (пилоты) есть. А в IEEE рабоают не дураки (хотя иной раз начинаешь в этом сомниваться). Результат у меня есть в виде работающего кода приема 802.11g. Коллега делал для меня модель в матлабе, но скажем так, в ней будет трудно разобраться непосвещенному
|
|
|
|
|
Dec 11 2008, 20:47
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(DMax @ Dec 11 2008, 17:00)  В реализациях OFDM я ещё не встречал сигналов без преамбулы. Все дело в том, что вы не можете засинхронизироваться точнее чем в отсчет. А промах на t, где 0 <= t < 1/Fs, то есть меньше отсчета, приводит к тому, что фаза n-ой поднесущей убегает относительно фазы 1-ой поднесущей на n*delta_w*t , где delta_w - разнос между двумя соседними поднесущими. То есть фаза у самой высокочастотной поднесущей убежит на довольно большую величину вплоть до Pi. А ваше сигнальное созведие превратится в нечто, что я называю "веером". Такие вещи может и должен исправлять эквалайзер, который строится по заранее известному сигналу, т.е. преамбуле. Вы конечно правы на 100%, но кажется Dub01 делает 39 tones parallel modem (mil-std-188-110b), а там дифференциальная модуляция, так что на прецизионную синхронизацию с точностью до фазы несущей можно забить и использовать простейший дифференциальный демодулятор (который тупо вычисляет разность фазы между последовательными символами) в каждом подканале, естественно будет некоторая потеря помехоустойчивости.
--------------------
ну не художники мы...
|
|
|
|
Сообщений в этой теме
Dub01 Demodulat0r O F D M Aug 22 2007, 17:14 WEST128 Насколько мне известно, ортогональное частотное му... Aug 25 2007, 11:17 Dub01 Цитата(WEST128 @ Aug 25 2007, 15:17) Наск... Aug 25 2007, 19:45 WEST128 А что известно про источник сигнала ? Aug 26 2007, 13:49 AVR Извините за оффтоп, тоже вопросик есть...
Есть зап... Aug 28 2007, 20:28  alex_os Цитата(AVR @ Aug 29 2007, 00:28) В каждом... Aug 30 2007, 05:10   AVR Цитата(alex_os @ Aug 30 2007, 09:10) Не п... Aug 30 2007, 19:40    alex_os Цитата(AVR @ Aug 30 2007, 23:40) Запись с... Aug 31 2007, 05:42 Dub01 Спецам, касательно ОФДМ:
1)На счёт циклического ... Nov 11 2007, 09:46 zhorro Цитата(Dub01 @ Nov 11 2007, 13:46) 1)На с... Nov 16 2007, 15:09 Alex65111 ЦитатаДобавление нулей имеет положительный момент,... Nov 16 2007, 18:08 zhorro Цитата(Alex65111 @ Nov 16 2007, 21:08) - ... Nov 19 2007, 05:38  Dub01 Цитата(zhorro @ Nov 19 2007, 09:38) Добав... Dec 5 2007, 20:22   zhorro Цитата(Dub01 @ Dec 5 2007, 23:22) А что н... Dec 7 2007, 05:27    Dub01 Цитата(zhorro @ Dec 7 2007, 09:27) Циклич... Apr 30 2008, 14:51     alex_os Цитата(Dub01 @ Apr 30 2008, 17:51) Так, с... May 3 2008, 15:15 Dub01 zhorro
Спасибо за помощь.
Цитатачастотный разнос к... Nov 18 2007, 12:57 Dub01 При Fs=7200кГц и Fft=128 точек получим частотный р... May 4 2008, 17:25 DMax Цитата(Dub01 @ May 4 2008, 20:25) При Fs=... Dec 8 2008, 09:35 Dub01 Итак, после длительного отсутствия, появились неко... Jul 9 2008, 17:30 AVR Цитата(Dub01 @ Jul 9 2008, 21:30) ВОПРОС:... Jul 22 2008, 13:17 Alex65111 Пока OFDMом сильно не занимаюсь, но все равно инте... Jul 22 2008, 17:24 AVR Цитата(Alex65111 @ Jul 22 2008, 21:24) 1.... Jul 22 2008, 21:51 Alex65111 1. Цитатато хитрыми методами корреляции - это хитр... Jul 23 2008, 06:45 AVR Цитата(Alex65111 @ Jul 23 2008, 10:45) 1.... Jul 23 2008, 06:56 Alex65111 ЦитатаИтак, после длительного отсутствия, появилис... Jul 23 2008, 07:04 AVR Цитата(Alex65111 @ Jul 23 2008, 11:04) - ... Jul 23 2008, 07:28 Alex65111 Стр.62 стандарта
MIL-STD-188-110B
APPENDIX B... Jul 23 2008, 07:38 Dub01 Кто-нибудь может объяснить принцип работы данных с... Nov 4 2008, 19:48 Dub01 К вопросу о синхронизации, наткнулся на статью A r... Dec 7 2008, 11:23 petrov Цитата(Dub01 @ Dec 7 2008, 14:23) К вопро... Dec 8 2008, 13:35 petrov Цитата(Dub01 @ Dec 10 2008, 21:12) Спасиб... Dec 11 2008, 10:48 Leshii ЦитатаNCO просто базовый элемент в алгоритмах синх... Dec 11 2008, 11:41 petrov Цитата(Leshii @ Dec 11 2008, 14:41) Если ... Dec 11 2008, 11:50 Leshii Не могли бы Вы все таки немного подробнее разъясни... Dec 11 2008, 13:06 petrov Цитата(Leshii @ Dec 11 2008, 16:06) Не мо... Dec 11 2008, 15:11 Alex65111 ЦитатаВсе дело в том, что схема описаная в статье ... Dec 11 2008, 14:44 Leshii petrov
Предположим имеются биты b1,b2…b16. Необх... Dec 12 2008, 09:12 petrov Цитата(Leshii @ Dec 12 2008, 12:12) ...
... Dec 12 2008, 12:58 petrov КодПусть w=e^(j*2*pi/N)
Например возьмём ... Dec 16 2008, 14:23
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|