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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
Quasar
сообщение Nov 28 2014, 15:19
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Цитата(petrov @ Nov 28 2014, 17:57) *
Вот как это понимать? В приёмнике у вас изначально не было, исправлено было уже после моего поста. Зачем приподнятый косинус приёмнике?


Цитата
Виноватsm.gif Даже не обратил на это внимание, прошу прощения. Конечно же, не за чем!


Я его в своем приемнике использовал как интерполирующий, в приемнике его быть не должно по идее.

По фильтрам тогда я не понимаю, почему фильтр в приемнике обзывают Integrate and Dump, хотя по сути получается это обычный Moving Average? Или он должен быть засинхронизирован с символами и сбрасывать свое состояние после того, как все отсчеты принадлежащие текущему символу закончились?

http://www.mathworks.com/help/comm/ref/integrateanddump.html
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 28 2014, 15:35
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Quasar @ Nov 28 2014, 18:19) *
Я его в своем приемнике использовал как интерполирующий, в приемнике его быть не должно по идее.

По фильтрам тогда я не понимаю, почему фильтр в приемнике обзывают Integrate and Dump, хотя по сути получается это обычный Moving Average? Или он должен быть засинхронизирован с символами и сбрасывать свое состояние после того, как все отсчеты принадлежащие текущему символу закончились?

http://www.mathworks.com/help/comm/ref/integrateanddump.html


Да. Стоит ли слепо всё это повторять? Может лучше подобрать ФНЧ по минимуму межсимвольной интерференции и максимуму сигнал/шум.
Go to the top of the page
 
+Quote Post
Quasar
сообщение Jul 27 2015, 15:03
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Цитата(petrov @ Nov 28 2014, 18:35) *
Да. Стоит ли слепо всё это повторять? Может лучше подобрать ФНЧ по минимуму межсимвольной интерференции и максимуму сигнал/шум.


В общем, алгоритм который я задумал, с поиском максимальной корреляции данных в FIFO с синхро-последовательностью, при поступлении каждого нового семпла, у меня так и не заработал как надо. Не понимаю в чем проблема. При потоковой передаче псевдослучайной-последовательности с целью замера BER, все получается, вплоть до уровня -115 ...-116 дБ (в качестве приемника/передатчика использую обычный аналоговый репитер). Но при реальной работе в эфире иногда (1 из 50 пакетов) проскакивают ошибки даже в ближней зоне.

Решил пока забить на этот алгоритм и начал изучать демодулятор из GNU Radio, с целью понять причину периодических ошибок во время его работы:

https://github.com/luizrenault/op25/blob/ma...emod_ff_impl.cc

В нем, для получения отсчетов во время каждого символа используют MMSE интерполяцию, но мне не ясно, как построили таблицу taps'ов для интерполяции и почему время подстраивают вот таким образов?

Код
// symbol clock tracking loop gain
      const double K_SYMBOL_TIMING = 0.025;
      if(interp_p1 < interp) {
         d_symbol_clock += symbol_error * K_SYMBOL_TIMING;  
      } else {
         d_symbol_clock -= symbol_error * K_SYMBOL_TIMING;
      }


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

Код
// our output symbol will be interpolated value corrected for symbol_spread and frequency offset
      interp -= fine_frequency_correction;
      interp_p1 -= fine_frequency_correction;
...
// coarse tracking loop: for eventually frequency shift request generation
      static const double K_COARSE_FREQUENCY = 0.00125;    // time constant for coarse tracking loop
      coarse_frequency_correction += ((fine_frequency_correction - coarse_frequency_correction) * K_COARSE_FREQUENCY);

      // fine loop
      static const double K_FINE_FREQUENCY = 0.125;        // internal fast loop (must be this high to acquire symbol sync)
      fine_frequency_correction += (symbol_error * K_FINE_FREQUENCY);


То есть, высчитывают постоянную составляющую исходя из текущей ошибки в отсчете символа.
Почему бы просто не пропустить через фильтр ВЧ с частотой среза 1-2 Гц?

Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 27 2015, 18:23
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Quasar @ Jul 27 2015, 18:03) *
Почему бы просто не пропустить через фильтр ВЧ с частотой среза 1-2 Гц?


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

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

 


RSS Текстовая версия Сейчас: 6th July 2025 - 17:32
Рейтинг@Mail.ru


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