реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Demodulat0r O F D M, Demodulat0r O F D M
Dub01
сообщение Apr 30 2008, 14:51
Сообщение #16


Участник
*

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



Цитата(zhorro @ Dec 7 2007, 09:27) *
Циклическая свёртка даёт возможность считать, что принятый символ циклически свернут с каналом, а в этом случае можно считать, что принятый символ после БПФ будет представлять собой передаваемое распределение по созвездиям умноженное на комплексный коэффициент передачи канала.
Если свёртка будет не циклической необходимы укорачивающие фильтры, которые приведут длину сквозной ИХ канала к длине ЦП.

Так, снова поднимаем тему. Сейчас есть вопрос касательно СИНХРОНИЗАЦИИ.

Собственно проблема в том, как нам правильно продемодулировать сигнал? Т.е. есть к примеру запись с частотой дискретизации fs=8000 Гц. Нам для приёма сигнала необходимо правильно выставить размер блока FFT на входе, т.е. правильно выбрать N точек Фурье. (чтобы отсчёты брались именно на поднесущих, а не где попало) Так вот собственно каков алгоритм выбора числа точек FFT для заданной частоты дискретизации?. Ведь мы можем продискретизировать сигнал и тем самым подвести его под нужный размер N ФФТ. Причём необходимо чтоб это укладывалось в пределах ОФДМ символа.
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 3 2008, 15:15
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(Dub01 @ Apr 30 2008, 17:51) *
Так, снова поднимаем тему. Сейчас есть вопрос касательно СИНХРОНИЗАЦИИ.

Собственно проблема в том, как нам правильно продемодулировать сигнал? Т.е. есть к примеру запись с частотой дискретизации fs=8000 Гц. Нам для приёма сигнала необходимо правильно выставить размер блока FFT на входе, т.е. правильно выбрать N точек Фурье. (чтобы отсчёты брались именно на поднесущих, а не где попало) Так вот собственно каков алгоритм выбора числа точек FFT для заданной частоты дискретизации?. Ведь мы можем продискретизировать сигнал и тем самым подвести его под нужный размер N ФФТ. Причём необходимо чтоб это укладывалось в пределах ОФДМ символа.

Да вроде тут Вам написали smile.gif http://www.telesys.ru/wwwboards/dsp/299/me...es/107400.shtml


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Dub01
сообщение May 4 2008, 17:25
Сообщение #18


Участник
*

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



При Fs=7200кГц и Fft=128 точек получим частотный разнос 56.25Гц(это хорошо), а вот по длительности всего 17.8мс (t=Fft/Fs), а по стандарту M39 должно быть 22.5мс. (Хотя уже подсказали что 17.8 это без учёта защитного интервала, но я честно не нашёл про него в стандарте, вот про преамбулу чётко написано 517мс - т.е. у меня тут вопрос откуда 4.7мс и удовлетворяет ли это стандарту).

И ещё вопрос. Если бы частот было не 39, а больше или меньше, каков был бы алгоритм прикидывания Fs и Fft для неё с учётом длительности символа(окна)?
Go to the top of the page
 
+Quote Post
Dub01
сообщение Jul 9 2008, 17:30
Сообщение #19


Участник
*

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



Итак, после длительного отсутствия, появились некоторые важные вопросы касательно того же MIL-STD-188-110B - 39ка. Как уже писал, имеется некоторый записанный с эфира сигнал данного стандарта, необходимо его обработать, т.е. правильно демодулировать, осуществить синхронизацию, выделить начальную точку нарезки с которой начинается полезный информационный поток... Сигнал записан с частотой дискретизации fs=8000Гц. На первом этапе обработки происходит передискретизация на частоту fs=7200Гц методом интерполяции. В итоге получили новый вектор отчётов, но уже с частотой дискретизации 7200Гц. При 7200 выполняется условие, при котором отсчёты берутся именно на поднесущих частотах а не где-то рядом, т.е. бины лежат на несущих. 7200/128 = 56.25Гц - как раз разнос между поднесущими по стандарту. На втором этапе нелбходимо найти точку(отсчёт) с которого необходимо нарезать символы как таковые, т.е. найти точку где заканчивается синхра (4 немодулированных тона и за ними ещё 3 модулированные несущие частоты). У меня этот процесс реализован следующим образом. Задаётся некоторое окно отсчётов, для примера k=500. Этим окном скользим(смещаем) по нашему вектору отсчётов(кот. уже с fs=7200) и строим спектр. По стандарту 4 тона имеют следующие частоты: 787.5, 1462.5, 2137.5 и 2812.5 Гц соответственно, а на нашем спектре получается что частоты гуляют около этих значений +-пару Гц. При этом разнос между тонами на спектре, естественно, сохраняется и равен 675Гц.
ВОПРОС: как и что необходимо сделать для правильной частотной синхронизации?

Далее как планируется, чтобы найти точку нарезки(конца синхры и начала полезного информационного сигнала) необходимо настроить фильтры на эти самые несущие(4 тона). И на выходе фильтров усреднить огибающие, по уровню 0.707 замерить длительность, и тем самым найти эту точку(отсчёт). Фильтры по идеи надо реализовывать на основе Фурье. Вот только не ясно, ведь сама процедура усреднения - уже с погрешностью, т.е. и по времени не будет точной синхронизации.
ВОПРОС: насколько правильный данный алгоритм? И как правильно реализуется временная синхронизация? Ведь очень важно правильно определить точку нарезки.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 22 2008, 13:17
Сообщение #20


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Dub01 @ Jul 9 2008, 21:30) *
ВОПРОС: как и что необходимо сделать для правильной частотной синхронизации?
Для этого необходимо... читать литературу smile.gif Чтобы определить частотный сдвиг, надо сравнить и усреднить по нескольким отсчетам например разность фаз между циклическим префиксом и исходной копией - там 100% будет прямолинейная закономерность, зависящая от частотной ошибки. Если в стандарте есть преамбула из повторяющихся во времени сигналов - тут так вообще ещё ярче это всё проявится.
Цитата(Dub01 @ Jul 9 2008, 21:30) *
ВОПРОС: насколько правильный данный алгоритм? И как правильно реализуется временная синхронизация? Ведь очень важно правильно определить точку нарезки.
Подсказка: автокорреляция сигнала (до FFT) - если префикс большой - то замечательно, если маленький - вся надежда на преамбулу если есть или на другие свойства символа в конкретном стандарте wink.gif


--------------------
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Jul 22 2008, 17:24
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Пока OFDMом сильно не занимаюсь, но все равно интересно.
Цитата
Чтобы определить частотный сдвиг, надо сравнить и усреднить по нескольким отсчетам например разность фаз между циклическим префиксом и исходной копией
. - Вроде как и логично, но...
1. Чтоб применять такой подход требуется предварительная жесткая временная синхронизация, так?
2. А для чего тогда судя по сообщению DUB01 в OFDM в MIL в начале передачи существуют 3 потом 4 голые несухи, разве не для частотной синхронизации?
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 22 2008, 21:51
Сообщение #22


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Alex65111 @ Jul 22 2008, 21:24) *
1. Чтоб применять такой подход требуется предварительная жесткая временная синхронизация, так?
Моя практика показывает что надо знать лишь приблизительное положение во времени этого участка, например если в сигнале есть преамбула, то хитрыми методами корреляции можно найти положение +/- 2 отсчета, а потом и частотную ошибку можно измерить wink.gif
Суть в том, что из-за частотной ошибки за время передачи символа от префикса до начала копии набегает соответствующая фазовая ошибка, а уж по ней можно достаточно точно измерить частотную ошибку smile.gif


--------------------
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Jul 23 2008, 06:45
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



1.
Цитата
то хитрыми методами корреляции
- это хитрая корреляция или хитрый метод вычисления корреляции?

2.
Цитата
Суть в том, что из-за частотной ошибки за время передачи символа от префикса до начала копии набегает соответствующая фазовая ошибка
- это то как раз я и понял. Вопрос то был, а зачем в МИЛ на входе используются последовательно голые 3-4 несухи. Разве не для частотной синхронизации?, если да, то как на их основе синхронизироваться? Ваш подход я думаю будет замечательным для соправождения.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 23 2008, 06:56
Сообщение #24


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Alex65111 @ Jul 23 2008, 10:45) *
1. - это хитрая корреляция или хитрый метод вычисления корреляции?
Я использую "скользящую корреляцию", т.е. есть буфер, где хранятся значения корреляции, и есть просто суммарное значение корреляции и каждый такт добавляю к нему текущее значение, и вычитаю самое старое значение - метод супер быстрый и эффективный...
Цитата
2. - это то как раз я и понял. Вопрос то был, а зачем в МИЛ на входе используются последовательно голые 3-4 несухи. Разве не для частотной синхронизации?, если да, то как на их основе синхронизироваться? Ваш подход я думаю будет замечательным для соправождения.
Сори, а что за МИЛ? Я так и не понял о каком стандарте/методе идет речь? Где можно почитать про это? Интересно...


--------------------
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Jul 23 2008, 07:04
Сообщение #25


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Цитата
Итак, после длительного отсутствия, появились некоторые важные вопросы касательно того же MIL-STD-188-110B
- от себя добавлю, это коротковолновый стандарт, в нем есть приложение B, который описывает передачу на 39 поднесущих где в начале передается 4 голых несухи, потом 3, потом уже инфа на 39. Более глубоко пока сам не копал.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 23 2008, 07:28
Сообщение #26


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Alex65111 @ Jul 23 2008, 11:04) *
- от себя добавлю, это коротковолновый стандарт, в нем есть приложение B, который описывает передачу на 39 поднесущих где в начале передается 4 голых несухи, потом 3, потом уже инфа на 39. Более глубоко пока сам не копал.
Нашел типа спецификацию всего этого безобразия... Я думал IEEE делает самую худшую документацию, оказывается есть ещё более "умелые" товарищи... Так и не понял где там OFDM? Где хоть один рисунок, показывающий какие несущие какую роль играют и т.д. ?..


--------------------
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Jul 23 2008, 07:38
Сообщение #27


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Стр.62 стандарта

MIL-STD-188-110B
APPENDIX B

39-TONE PARALLEL MODE
Go to the top of the page
 
+Quote Post
Dub01
сообщение Nov 4 2008, 19:48
Сообщение #28


Участник
*

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



Кто-нибудь может объяснить принцип работы данных схем? help.gif (статья Wireless OFDM Systems: How to Make Them Work? )
Временная синхронизация с пом. циклического префикса:

Частотная синхронизация с пом. циклического префикса:
Go to the top of the page
 
+Quote Post
Dub01
сообщение Dec 7 2008, 11:23
Сообщение #29


Участник
*

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



К вопросу о синхронизации, наткнулся на статью A robust timing and frequency offset estimation OFDM. Там описан процесс синхронизации, без использования pilot тонов, а точнее процесс оценки ошибки временного ухода (timing offset) и частотного (frequency offset), что в принципе и необходимо для схемы синхронизации. Сама статейка очень маленькая, из того что там видно, они симулируют запаздывание, например на 1 отсчёт и строят сигнальные созвездия до запаздывания и после(возводят сигнал в 4 степень). В итоге получают сигнальное созвездие (4th poweк constellation) с одной точкой. И по нему оценивают ошибку.

Попытался смоделировать это в Matlab'e но ничего подобного получить не смог. Вот например 1 рисунок Figure 3 - Transmit tone phase vs. tone number - который отображает сигнал без задержки и с задержкой в 1 отсчёт (картинка получается с явным наклоном, т.е. как бы поворачивается) - у меня такого не наблюдалось! Возможно я что-то не понял, поэтому прошу помощи, если кто-то знает подобный алгоритм или у кого есть более подробный документ, где можно почитать про данный алгоритм оценки, буду очень признателен за помощь!

Сообщение отредактировал Dub01 - Dec 7 2008, 11:24
Go to the top of the page
 
+Quote Post
DMax
сообщение Dec 8 2008, 09:35
Сообщение #30


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234



Цитата(Dub01 @ May 4 2008, 20:25) *
При Fs=7200кГц и Fft=128 точек получим частотный разнос 56.25Гц(это хорошо), а вот по длительности всего 17.8мс (t=Fft/Fs), а по стандарту M39 должно быть 22.5мс. (Хотя уже подсказали что 17.8 это без учёта защитного интервала, но я честно не нашёл про него в стандарте, вот про преамбулу чётко написано 517мс - т.е. у меня тут вопрос откуда 4.7мс и удовлетворяет ли это стандарту).


22.5 - 17.8 = 4.7 = 17.8 / 4
То есть защитный интервал равен одной четверти OFDM-символа - довольно часто встречающаяся в OFDM практика, хотя бывает и короче. Защитный интервал представляет собой копию последней четверти OFDM-символа, но передается перед самим символом.


Цитата(AVR @ Jul 22 2008, 16:17) *
Подсказка: автокорреляция сигнала (до FFT) - если префикс большой - то замечательно, если маленький - вся надежда на преамбулу если есть или на другие свойства символа в конкретном стандарте wink.gif


Автокорреляция в OFDM во временной области не эффективна - очень широкий и не выраженный пик. Лучше детектить преамбулу путем автокорреляции в частотной области - точнее автокоррелировать амплитуды поднесущих с амлитудой пилотов в преамбуле. Это позволить задетектировать преамбулу в плюс-минус guard-интервале. Дальнейшее надо предоставить эквалайзеру.

Цитата(AVR @ Aug 28 2007, 23:28) *
Извините за оффтоп, тоже вопросик есть...
Есть запись сигнала, параметры которого полностью известны, но вот демодулировать его у меня не получается... В каждом символе есть небольшая копия конца символа (guard интервал) и сам символ. При движении "окна" DFT по всему этому символу амплитуды ессно остаются почти одинаковыми, но вот фазы крутятся...
Если удачно подогнать смещение от начала, то этот поворот будет таким что его можно скорректировать по pilot-поднесущим (фаза откладывается по вертикали от -180 до + 180):
[attachment=13283:attachment]
А если не повезет, то так:
[attachment=13284:attachment]
Во втором случае, наверное, ничто не поможет...
Подскажите, пожалуйста, что может быть не так, как быть...
Может частота дискретизации немного не верно выбрана что приводит к такому поведению фаз?..


Нет, ты промахнулся окном мимо начала символа. Читай теорему о сдвиге ДПФ. Вот используя наклон линии фазы можно с точностью до десятой части (точность зависит от SNR) сэмла прикинуть на сколько ты промахнулся. Это можно использовать для синхронизации.

Более того, прямую линию фазы ты не получишь никогда. И причиной тому служат несколько вещей:
1) Не синхронизированны генераторы приемника и передатчика
2) Частотный сдвиг

Первый пункт можно исправить построив по преамбуле эквалайзер, который ты будешь применять ко всем последующим OFDM-символам. Он будет докручивать твои поднесущие так, чтобы линия фазы была прямой.
Частотный сдвиг нужно компенсировать путем детектирования и последующего вычета частоты расхождения из сигнала.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 15:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016