Перейти к содержанию
    

Поиск импульсов синхронизации

Вот и настал для меня этот момент. У меня система генерирует OFDM-сигналы, но приемник просто обрабатывает все, что идет по каналу связи. Мне теперь надо так: я в передатчике сделал генерацию синхро-сигнала, который распологается на 1 из 10 OFDM-символов, и длится столько же, сколько и обычный OFDM-символ. Теперь надо Засинхронизировать приемную и передающую части.

 

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

 

И тут я понял, что ничего не понимаю в синхронизации, потому что какой всплеск, как тут что происходит?!!! Помогите разобраться, пожалуйста, в математическом представлении того, что происходит. У меня уже сгенерирован сигнал: СИНХРО+ОФДМ+ОДФМ+ОДФМ+...+ОФДМ+СИНХРО+ОФДМ.

 

Что теперь нужно сделать в приемнике? Я так понимаю, что прием не начнется вообще, пока не будет найдет максимум АКФ. Как найти этот максимум конкретно?

 

Вопрос: что вообще нужно контролировать и синхронизировать с помощью синхронизирующего сигнала?

 

Как часто нужно искать синхро-сигнал? Смотрите, Я один раз засинхронизировался. Принимаю...принимаю. Может и рассинхронизировался. Но что теперь делать-то? Просто через 10 посылок снова в приемнике заставлять программу читать синхросигнал?

 

Или синхронизация и прием должны происходить одновременно?

Изменено пользователем lennen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И тут я понял, что ничего не понимаю в синхронизации, потому что какой всплеск, как тут что происходит?!!! Помогите разобраться

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть много разных синхронизаций.

1. Синхронизация положения символа. Чтобы считать точное Фурье один раз. Обычно делается пилотами.

2. Синхронизация начала посылки. Тут вариантов много. От арифметического до кореляционного.

3. Синхронизация начальной фазы. Так как Вы не знаете начальную фазу передатчика, то ее надо восстановить в приемнике. Вариантов тоже вагон. От синхропосылок до относительной КАМ/ФМ в каждое несущей. В особо сложных случаях такая синхронизация формируется периодически или даже непрерывно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Боюсь, все не совсем так.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

А если я поставлю множество корреляторов с разной задержкой опорного сигнала, то это плохой путь? Как лучше?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А дайте что-нибудь почитать? Мне нужно просто практически пока любую синхронизацию в систему добавить. Допустим, я получил моменты начал всех символов OFDM. Зачем? Что это дает? Многолучевость, вроде, преодолевается защитным интервалом. Или как? Как часто надо делать синхронизацию?

 

Вот частотная мне понятна - надо принять данные на конкретных поднесущих, а не между ними. А что с временной?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А дайте что-нибудь почитать?

Вам же уже дали! Вопрос только в том, удалось ли вам "что-нибудь" взять! :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где дали? Можно что-нибудь из основ синхронизации дать в OFDM-системах. Я пока понял только то, что временная синхронизация нужна только для того, чтобы точно понять, что такая-то выборка сигнала - первый отсчет OFDM-символа.

приняв которое не когерентно, можно будет определить начальную фазу передатчика в точке приема
Или еще зачем-то?

 

приемник войдет в когерентный режим

Можно подробнее насчет когерентного режима?

Изменено пользователем lennen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где дали?

"Чукча - писатель?" :biggrin:

Я вам очень рекомендую осилить какую-то тематическую литературу: Скляр, Прокис, Незами, ...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как бы вы решили следующий вопрос. Допустим, у Вас сейчас передатчик генерирует за каждый цикл работы программы 30 OFDM-символов, среди которых один - синхросигнал.

Эти данные должны по ТЗ передаваться на приемник (например, по каналу связи через звуковую карту), но вы в настоящее время сохраняете массив из 30 OFDM-символов в файл, а программа-приемник читает сразу весь массив из файла.

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

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я просто заработался, скажите мне, пожалуйста, на свежую голову, как бы вы поступили, если бы вас мучил такой вопрос?

Логика здравого смысла :

положим что вы яблоконенависник, очень любящий апельсины. Попали в страну где большой ленточный конвейер по которому идут апельсины, но злобные буратины иногда подкидывают яблоки. Положим что они хотят у вас вызвать анафилактический шок. И вот вы голодный стоите у конечной точки конвейера и едите апельсины. Да, да, прямо с конвейера, голод не тетка. Как сделать так что бы вы не умерли? -> Производить анализ и сравнение фрукта на конвейере с образами яблок и апельсинов у вас в решающем устройстве (том самом куда боксеры едят). Т.е. говоря еще более простым языком : взяли фрукт - сравнили с тем что в мозгах - идентифицировали - либо поели либо отбросили.

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ок, чтобы было понятнее, прикладываю скрин генератора. У меня сейчас не просто каждый 12 из 13, который надо найти... Я плаваю именно в том моменте, что у меня каждый первый из 33 - синхро, и его положение точно задано, а как бы мне теперь доработать модель поближе к реальности так, чтобы действительно имел смысл поиск синхро? Сейчас-то что его искать?

post-88647-1449736960_thumb.png

Я ориентируюсь просто на то, что это априори понятно, что сигнал, генерируемый передатчиком, в конце концов планируется вывести на звуковую карту, а с микрофона звуковой карты принять приемной частью, которая изображена на втором приложенном скрине. Но сейчас я отлаживаю эту программу, не все же сразу, и уровень у меня такой, какой видите на скринах. Промежуточный пункт - текстовый файл. Посмотрите на скрин генератора - у нас есть один странный ненулевой слабоколеблющийся символ:D Это синхроимпульс, пока я специально не заморачивался по поводу его структуры, хотя это будет такой же OFDM-символ с известными случайными фазами поднесущих частот. Так вот, в приемнике вы этого синхроимпульса не видите, я его просто обрезаю. Эти скрины показывают те массивы, которые обрабатываются в программе за раз. Вот теперь понятнее?

ЗЫ к надписям рисунков присматривайтесь, но им не доверяйте, я делал все под 4 символа, а потом доработал и еще не исправил названия.

post-88647-1449737300_thumb.png

Изменено пользователем lennen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

post-88647-1450081828_thumb.png

 

На приеме успешно сделал его корреляционный прием:

post-88647-1450081938_thumb.png

 

Теперь посмотрите, корреляционный пик-то у меня всегда в конце синхроимпульса, который всегда в самом начале 32-х генерируемых за цикл программы OFDM-символов. Я теперь просто не сильно понимаю, как проще сделать в моей системе так, чтобы синхроимпульс действительно мог быть принят в приемнике в случайный момент времени (в зависимости от времени включения передатчика относительно приемника). У меня пока просто массив генерируется - массив принимается. а надо: массив генерируется, массив отсылается с частотой 1 выборка каждые 1/fд секунды, выборка копится в приемнике, выборки обрабатываются... Как мне проще добиться этого? И при этом не впадать в симуляции, а сделать наиболее близкой к реальной системе связи модель?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...