Jump to content

    

MKS

Свой
  • Content Count

    459
  • Joined

  • Last visited

Everything posted by MKS


  1. Добрый день. Занимаюсь реализацией некоторых алгоритмов из рекомендации p.526-13 . Непонятно что такое self-consistent units. Вот кусочек документа, стр. 8: Есть 2 мысли: Всё величины сведены к одной единице измерения, в данном случае к длинне (частота заменена на длинну волны) Одинаковые величины в уравнении приведены к одной единице измерения. Длинна в м, частота в Гц и т.д. Может этот термин имеет какое-то общеизвесное значение на русском?
  2. Для des00 1. Посмотрел почту, там только интерполирующий NCO, либо может это было очень давно :) . Собственно simulink модель которую я прикрепил к сообщению работает, или в ней что то не так ? 2. То что в коде всё разезжается, я тоже заметил. Но вот понять почему так происходит и исправить ситуацию моего мозга уже не хватает Не могу понять как вообще подходить к проектированию подобной системы. Я в начале нарисовал на бумаге дискретные отсчёты с АЦП, посчитал точки в которых надо интерполировать последовательность, попытался интуитивно соорудить такой генератор-интерполятор, но ничего рабочего пока не получилось. Может есть какие то методики по которым можно синтезировать подобную схему?
  3. Добрый день. Для QPSK демодулятора пытаюсь сделать систему символьной синхронизации на основе полиномиального интерполтора и NCO. Трудность в том что сигнал оцифровывается с частотой 6 отсчётов на символ, а практически вся схема должна работать на 4-х, 2-х и 1-м отсчёте на символ. Соорудил модель в simulink в которой с помощю NCO и интерполятора получаю деление на 6/4. Вроде всё работает нормально. Но при реализации её на Verilog получаю неправильную работу - созвездие при скачках сигнала delta (смотри модель) разваливается. Корень проблемы, как мне видится, во времянке которую выдаёт verilog версия NCO. Собственно у меня просьба, кто разбирается в данном вопросе не могли бы взглянуть на модель и на код NCO и подсказать что не так, и как делать правильно. Заранее спасибо. symbol_nco_otr_frac.zip timing_recovery_6_4sps_tmp_matlab2006b.zip
  4. У вас там где то не согласованы сигналы, из за этого ошибка. На сколько я понимаю нельзя перемножать блочные и неблочные сигналы.
  5. На вашей картинке написано что блок производной на входе ожидает не фрейм, а вы подаёте фрейм. И даже предлагает вариант решения в виде втавки блока unbuffer.
  6. Мне он тоже приглянулся, потихонечку на него переползаю. Огорчяет отсутствие полной документации. Внешние интсрументы к нему прикручиваются просто. В целом положительное впечатление.
  7. Вот вам в догонку ещё пара ссылок: IT++ GSL - оригинал, и win32 вариант
  8. Спасибо за статьи. Пока беру перерыв на размышления.
  9. Спасибо за ответ, видимо так и буду делать
  10. День добрый. В разных источниках читал что OFDM сигналы более чувствительны к фазовым шумам чем одноканальные, но нигде не видел хотя бы прикидочной методики расчёта, может ли кто то подсказать в каком направлении искать ответ на этот вопрос ? :05: Например если я задамся полосой частот количеством поднесущих и BER на выходе демодулятора можно как то прикинуть во что это выльется по фазовым шумам ?
  11. Можно от угла перейти к декартовым координатам (x,y) и усреднять их а потом обратно к углу вернуться (это реализуемо в целочисленой арифметике). Или детектировать скачок фазы при разрыве и компенсировать его.
  12. Насчёт последней не знаю, но я работал с одним репозиторием на протяжении 4-х последних лет с помощю разных версий svn (до 1.6.15 включительно), проблем не было. Можно.
  13. попробуйте положить ваш код в embedded matlab function.
  14. Внутри каждого блока вероятно должно быть как минимум по одной задержке на такт
  15. Смешивайте ваш сигнал с комплексной частотой 5-10 Гц и не будет никаких наложений.
  16. Когда то давно для себя написал такой скрипт в matlab, возможно вам он пригодится.
  17. Возможно при большем количестве отсчётов (16) вы просто не видите разницу между взятием отсчёта в оптимальный момент времени или с небольшой ошибкой (когда сигнал не проходит через интерполятор). В моделях Петрова насколько помню коэффициент скругления близок к 1, что ещё больше нивелирует разницу. Попробуйте поставить roll-off = 0.2 или 0.15 к примеру, если я прав, то скорее всего вы увидите разницу. Теоретически если у вас NCO без интерполятора то двигать фазу вы можете не точнее чем 1/4, 1/8 или 1/16 от символа (если NCO работает соответственно на 4, 8 или 16 отсчётах на символ). Наличие интерполятора позволяет двигать фазу между отсчётами. Да и ещё по модели, возможно там нет отстройки по тактовой частоте, а разность фаз кратна количеству отсчётов на символ поэтому разницы и не видно.
  18. Насколько я помню в более поздних версиях Matlab этот продукт стал называтся EDA Simulator Link, или как то так.
  19. В общем нет, каналов будет столько сколько гетеродинов в вашем DDS модуляторе. Но можно на DDS модулятор подать многоканальный сигнал из ПЛИС. Делал таким образом 2-х канальный модулятор на ad9857.
  20. Там есть блок Frequency shift, находится если правильно помню в разделе communication toolbox.
  21. Я просто свой опыт описал, до ковыряния с Qt и wxWidgets был немного знаком с winapi. Система событий в wxwidgets мне была понятнее чем метаобъектная система Qt. Но разобравшись с ней многое становится проще. Огромным плюсом по сравнению со всеми остальными библиотеками считаю Qt-ую документацию. Ссылку привёл просто для сравнения, что есть ещё и такая библиотека. Моё мнение такое что лучше день потерять (на изучение Qt) потом за 5 минут долететь. Опять таки судя по форумам Qt самая распространённая кроссплатформеная библиотека. То что она значительно помощнее особенно в плане программирования графики полоностью согласен, ничего похожего на каркас графического представления в других библиотеках не нашёл.
  22. Есть ещё библиотека wxWidgets (немного с ней поигрался). Как по мне то она проще для понимания но сложнее для применения . Под win есть пакет wxDev-c++ интсалятор содержит IDE саму библиотеку, дизайнер форм и множество примеров использования, как на посмотреть возможности самое то, но для работы я бы не стал использовать эту IDE. Второй вариант - поставить codeblocks и вручную установить библиотеку wxwidgets. Я когда то в инете нашёл видеоролик как прикрутить к CB библиотеку wxwidgets по нему без проблем всё запустилось, если надо будет то потом его выложу, сейчас не смог его найти.
  23. Если нужно что то быстро написать для отладки то обычно использую Python+PyQt, но такая программа работает относительно медленно. Если нужно быстродействие то C++ и Qt. Как уже сказали выше это достаточно мощная библиотека. Порог вхождения для Qt как мне кажется выше чем для C builder (C Builder-м пользовался совсем немного) но при его прохождении окупается простотой применения. Библиотека спроектирована так что код визуального интерфейса очень просто создаётся в тексте проограммы и не требует мощных графических редакторов.
  24. Сам с MSK не работал, но вот в этой книге кое что есть про MSK и про детектор Гарднера.