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

Реализовали подобную задачу на FX604. Дальность при прямой видимости - до 10 км.

Но основные проблемы использования - лицензирование частоты.

Дальность вообще-то должна зависеть от радиостанции, её вых. мощности и антенн.

 

На асме будет тяжко, но тоже не откажусь.

Начнём с корня квадратного. TMS320VC5502, CCS3.3:

sqrtTable     .macro x
             .loop  x
             .word  $cvi($round(1 / $sqrt(1 << x) * 32768))
             .eval  x - 1, x
             .endloop
             .endm
             sqrtTable 31   ;1/sqrt(2^31)...1/sqrt(2^1)
const7FFFh:
sqrtT         .word  7FFFh   ;1/sqrt(2^0)

         .arms_off
sqrt:     MOV       #4, BRC1
         MOV       #sqrtT, AR3
         MOV       dbl(*AR0+), AC2
       ||RPTBLOCAL sqrt_2
         MANT      AC2, AC0
       ::NEXP      AC2, T0
       ||MOV       dbl(*AR0+), AC2
         MOV       #5E00h << #16, AC1
       ||RPTBLOCAL sqrt_1
         SQS       AC1, AC1
sqrt_1:   ADD       AC0 << #-1, AC1
         XCC       AC0 != #0
       ||MPYM      *AR3(T0), AC1, AC0
sqrt_2:   MOV       rnd(hi(AC0 << #1)), *AR2+
         RET

Спасибо.

пожалуйста :rolleyes:

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


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

Дальность вообще-то должна зависеть от радиостанции, её вых. мощности и антенн.

 

Да, и от выходной мощности радиостанции зависит лицензия на вещание.

Деталей я не знаю, но это основная проблема у пользователя.

 

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


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

Если четырехбитные слова, тем более имеет смысл обойтись DTMF. Синтезировать программно, принимать аппаратным декодером. Дешево, надежно практично.

 

Я делал подобное, односторонняя передача, 7 слов за 280ms(один пакет данных). Преамбула - решетка, фиксированная длина данных, КС из двух слов. 20мс передача, 20мс пауза.

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


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

Вот на счет "надежно" - плавали, знаем (применительно к DTMF). В реальном эфире - паршиво. Да, с аппаратным декодером (8870, 8880). А все равно паршиво. А вот модем SmarTrunk-2 (топикстартеру я его в качестве примера приводил) - как часы. Через аудиоконтакт, в шумах - а все равно работает. Но, конечно, на бейсике это не написать... Ресурсы - хватало PIC16x84 @ 4 MHz.

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


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

Вот на счет "надежно" - плавали, знаем (применительно к DTMF). В реальном эфире - паршиво. Да, с аппаратным декодером (8870, 8880). А все равно паршиво. А вот модем SmarTrunk-2 (топикстартеру я его в качестве примера приводил) - как часы. Через аудиоконтакт, в шумах - а все равно работает. Но, конечно, на бейсике это не написать... Ресурсы - хватало PIC16x84 @ 4 MHz.

 

Что есть куча решений, лучше чем DTMF, никто не сомневается. Но тогда надо плотно лезть в цос и связь, иметь инструменты для верификации решений. А это немалое время и немалые деньги. Тут уже Тсу решать.

 

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


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

Я не понимаю этого снобизма. Не о чём говорить - не говорите. Бейсик автору не подходит? Укажите почему и посоветуйте альтернативу.
Предлагаю С/С++ ибо в эмбэддэд мире все примеры/библиотеки и даже люди, у которых можно спросить совет, живут на С/С++. Также лично я не верю, что какой-то там бейсик компилятор будет обеспечивать сравнимую с современными С компиляторами оптимизацию.

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

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


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

Все же ассемблер я не потяну... Подскажите, пожалуйста, ссылочки по БПФ на си. Более разумно получится.

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


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

это общая библиотека так сказать полнофункциональная и на Си

http://sourceforge.net/projects/kissfft

 

Вот на авр дэмка(с другой библиотекой, более подходящей для авр)

https://sourceforge.net/projects/avrfftlcd/

 

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


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

Вставлю свои 5 копеек. Конечно ЦОС на DSP это всё здОрово, но для FSK/MSK вполне можно обойтись из без этого. Взять хотя бы тот же CMX469 который выделяет MSK сигнал на фоне шумов без сложных алгоритмов, просто по переходам через ноль, и надо сказать выделяет очень неплохо.

А когдато давно были еще АОНы

где весь алгоритм обрабатывался на процессоре типа Z80, правда там битовая (или символьная) скорость очень низкая -несколько символов в секунду, но и AVR куда мощнее процессоров 30летней давности.

 

Основа CMX469 и аналогичных, как я понимаю, это цифровой генератор с ФАПЧ, который во время преамбулы настраивается на среднюю частоту между нулем и единицей и далее по сигналу с ФАПЧа (в режиме частотного дискриминатора) определяет что передается - ноль или единица. Если 1 символ кодировать несколькими периодами сигнала (СМХ работает по одному или половинке периода), то выделение будет еще надежнее ИМХО.

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


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

Вставлю свои 5 копеек. Конечно ЦОС на DSP это всё здОрово, но для FSK/MSK вполне можно обойтись из без этого. Взять хотя бы тот же CMX469 который выделяет MSK сигнал на фоне шумов без сложных алгоритмов, просто по переходам через ноль, и надо сказать выделяет очень неплохо.

"Просто по переходам через 0" - это на фоне даже сравнительно небольших шумов работать не будет.

Хотя всё конечно зависит от....

При отсутствии какого-то намёка на ТЗ или хотя бы требований, гадать невозможно.

Какая требуется символьная скорость? При каком минимальном SNR требуется устойчивый приём? Какова полоса частот в которой нужно работать?

Какова АЧХ тракта передачи (ЦАП/АЦП+цепь_согласования+р/ст) в этой полосе (её линейность)? Какова требуемая скорость работы алгоритма? И т.п.

Без этого всё это - гадание на кофейной гуще.

Может и AVR справится. Всё зависит от требований.

Может есть куча памяти, в которую можно принять поток сэмплов, и куча времени чтобы этот поток потом неспешно декодировать даже самыми сложными алгоритмами хоть на бейсике.

Да и ТС никакую теорию изучать не хочет, хочет чужой говнокод прикостылить.... А значит - ничего путнего сделать не сможет.

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


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

"Просто по переходам через 0" - это на фоне даже сравнительно небольших шумов работать не будет.

С/Ш=12 дБ и ниже до 8дБ -работает нормально.

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


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

Прямых аналогов нет (или я их не встречал), есть как более навороченные, так и узкозаточенные под конкретное применение, с пакетной обработкой и с конкретными протоколами. Например CMX969 с форматами RD-LAP и MDC, CMX909 с mobitex-ом (модуляции FSK и GMSK). Есть CMX7164/7143 -у этих возможностей еще больше, но они и сложнее в использовании.

Модемы

Мой коллега делал функциональный аналог 469го на транзисторах -в симулякре, в духе импортозамещения, вытягивал сигнал из шумов даже когда сигнал визуально не было видно, были варианты для детектирования не только MSK сигнала по типу CMX469, но и MSK-3 и даже манчестерского кода. Основная проблема сколько помню была не столько выделить полезные биты информации, сколько необходимость осуществлять непрерывную битовую синхронизацию. К сожалению дальше симуляции дело не пошло :laughing:

 

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


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

Основная проблема сколько помню была не столько выделить полезные биты информации, сколько необходимость осуществлять непрерывную битовую синхронизацию. К сожалению дальше симуляции дело не пошло :laughing:

Тот модем на DSP, что ссылку я приводил выше - тоже нормально принимал данные даже когда сигнал на глаз был не различим на фоне шумов. Проблема с битовой синхронизацией была там решена (непрерывная и не нужна - нужно в начале кадра засинхронизироваться, а в пределах кадра точка синхронизации не успеет выйти за пределы бита).

И он уже больше 10 лет производится и продаётся.

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


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

Тот модем на DSP, что ссылку я приводил выше - тоже нормально принимал данные даже когда сигнал на глаз был не различим на фоне шумов

...уже больше 10 лет производится и продаётся.

Очень хорошо, тогда почему нет этих данных на страничке с тех.характеристиками? Есть только расплывчатые параметры диапазонов скоростей и чувствительность входа интерфейса радиостанции. Но нет самого главного - отношения C/Ш при конкретной битовой ошибке. Может я чего не понимаю, но если я хочу включить сей девайс между приемопередатчиком и системой которая собирается обмениваться по RS232, то чтобы просчитать параметры системы мне нужно знать хотя бы минимальный С/Ш при котором Ваш модем обеспечивает конкретную битовую ошибку (например 10Е-3) при конкретной скорости обмена (например 4800), требуемая ширина полосы канала приемопередачи и её допустимая неравномерность (это если я хочу использовать не какуюто стандартную радиостанцию, а свой собственный приемопередатчик). Вы можете привести такие данные?

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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