Страница 4 из 6

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вс июн 14, 2015 12:57:25
Morroc
Да вы жжете :)) Можно, конечно, и готовое юзать, но было бы все так просто - не существовало бы этой темы.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вс июн 14, 2015 13:08:29
bad2cat
Да неее - я не жгу.
Вот я выучился, сейчас чуть кандидатскую не защитил. Имею в разработках военную технику, стоящую на вооружении в ВВС.
И мнения я того же - ту заумь, которую преподают в наших радиотехнических ВУЗах, да направить бы на изучение и создание новых программных библиотек и ОС. Только наших.
Проблема всех студентов и потом разработчиков - скудоумие.
Отсутствие кругозора и желание получать их.
Отсюда проблемы в разработках.
У нас в России нет своей массовой ОС, своих процов, своих стандартов.
Их практически нет. Они приходят с Запада, потому что тамошние инженеры имеют мышление архитектурное, а не ремесленническое, поделошное. Из-за этого их разработки завоёвывают мир.
А наши могут только грызься между собой. Потому что уровень разработки одинаково низкий. :))
И тут интегралы не помогут.
Я помню в школе задал вопрос учителю физики - "а что значит буква С в интеграле уровнений Максвелла?". На что наша учительница, мудрая еврейка, царствие ей небесное, Майя Хаевская, сказала : "Женя? если ты решишь эту задачу, то тебя будут знать в любой точке Земли, как Теслу, или Эйнштейна."
Помню до сих пор. А сейчас в школе, по моему, их даже не упоминают, чтобы не забивать детишкам голову чепухой.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вс июн 14, 2015 13:59:05
Morroc
Сомневаюсь, что можно создать эффективные библиотеки ЦОС без знания всей той математики, да и не так уж она сложна в статьях, ссылки на которые проскакивали в этой теме. Или в предыдущем посте постебались ? Шо то я запутался :))

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вс июн 14, 2015 14:13:02
bad2cat
Morroc писал(а):Сомневаюсь, что можно создать эффективные библиотеки ЦОС без знания всей той математики, да и не так уж она сложна в статьях, ссылки на которые проскакивали в этой теме. Или в предыдущем посте постебались ? Шо то я запутался :))
Знаете, у нас препод ЦОС на уроке давал материал именно заумно, когда же к нему подходили объяснить непонятные места, то он очень понятно всё объяснял - "на пальцах" и причём очень быстро.
Ну например какой-нить фильтр, вместо мороки с интегралами, просто и за 5 минут. Он не забывал про интегралы упомянуть, нет. Но объяснял по-человечески. Мы его спрашивали, а чего же он такую муть гонит на паре?
А требование деканата и программы министерства - "гнать муть" (т.е. с использованием псевдо-научности).
В результате потеря 90% времени на обучение. Вместо объяснения по простому и продвижения вперёд по материалу обучения - голимая псевдо-наука, запутывающая студентов. И так по многим предметам.

Человеку надо давать в руки ИНСТРУМЕНТЫ (чтобы он придумывал новое), а не заставлять его каждый раз изобретать эти инструменты заново, как это делают у нас.
Нахера мне знать как изобрели ножницы? Я просто хочу ими резать.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вс июн 14, 2015 14:20:28
Morroc
Чтобы изобрести ножницы лучше, по металлу, для космоса, режущие волнистой линией и т.п. :)) А чтобы просто резать образования не нужно вовсе.
Про псевдонаучность не понял, может у вас было что то псевдо, но в самих манипуляциях теми комплексными числами все вроде научно и без "псевдо".

Инструменты то по теме есть. Есть и бесплатные и платные и в 20 строк кода укладывающиеся, но какое то минимальное усилие надо же приложить чтобы ими воспользоваться. Я вообще не вижу проблемы в переформулированной на DTMF/CTCSS задаче :dont_know: С первоначальной еще как то где то повозиться надо в виду несостоятельности простой авр'ки в качестве DSP.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вс июн 21, 2015 05:41:45
kalobyte
Morroc писал(а): Я вообще не вижу проблемы в переформулированной на DTMF/CTCSS задаче
надо сначала разобраться, как простая синусоида выглядит с точки зрения кода
а для этого надо ее сначала создать, что я и нашел
помню еще давно эту статью и решил откопать http://habrahabr.ru/post/126835/
bad2cat писал(а):А требование деканата и программы министерства - "гнать муть" (т.е. с использованием псевдо-научности).
так всю программу от школы до быдловузов создает ран, а не министерство образования
один препод из мирэа говорил, что есть программа обучения и он должен ее придерживаться, хотя там 95% фуфло
ну он и решил на лабах практически показывать, что это фуфло
так его декан уволил, но дед хитрожопый был и выиграл суд
bad2cat писал(а):Вот я выучился, сейчас чуть кандидатскую не защитил. Имею в разработках военную технику, стоящую на вооружении в ВВС.
ну вот, хоть кто-то с быдловузной коркой, а то ведь я птушник и как бы не авторитет раз не осилил быдловуз

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

кстати дтмф оказалась плохим вариантом
я на декодер дтмф натравил музыку и пошли ложные срабатывания
защититься можно только если отлавливать последовательность конкретную

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вс июн 21, 2015 07:44:41
oleg110592
может пригодится, имхо близко к теме:
студент диплом пишет, видео работы:
https://www.youtube.com/watch?feature=p ... lwPMvvgeN8
код в этой теме:
http://forum.easyelectronics.ru/viewtop ... 35&t=14741
библиотека бесплатная

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вс июн 21, 2015 07:51:04
КРАМ
kalobyte писал(а): кстати дтмф оказалась плохим вариантом
:))) :))) :)))
А ты как хотел?
"Я тебе умную вещь скажу, только ты не обижайся..."(с)
Квадратурный сигнал создать - два пальца обоссать.
Всего то требуется, чтобы частота семплирования АЦП была ровно в 4 раза выше частоты несущей у сигнала.
Вообще то АВР тут не прокатит.
Если конечно не искать какой нибудь доморощенный быдлоалгоритм для частного случая, который и приведет в ОБЩЕМ СЛУЧАЕ к быдлоработе...
ЧМ демодулируется ЭЛЕМЕНТАРНО. Для этого необходимо:
1. Семплировать с учетверенной частотой несущей.
2. Перемножить массив преобразования на ДВА гетеродина (0 и 90) с частотой несущей. Гетеродин может быть и меандром, то есть 0 градусов будет повторяющаяся комбинация 1,0,-1,0,1,0,-1,0... А 90 градусов: 0,1,0,-1,0,1,0,-1...
То есть как ты заметил, разница только в ФАЗЕ...
3. Фильтруем оба квадратурных массива одним и тем же ФНЧ (КИХ или БИХ - на вкус и по обстоятельствам разрядности - объема ОЗУ).
4. По стандартной формуле: корень квадратный из суммы квадратов квадратурных сигналов получаем ИСКОМЫЙ ВЫХОДНОЙ СИГНАЛ.
Можно найти ФАЗУ, что будет еще лучше. Для этого нужно найти арктангенс отношения квадратур.
ЗЫ. Забыл напомнить.
По входу АЦП нужен антиалиасинговый ФНЧ со срезом на верхней рабочей частоте и с подавлением на учетверенной частоте несущей соответствующим разрядности АЦП (для 10 разрядов - 60 дБ).

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 02:28:38
kalobyte
КРАМ писал(а):Квадратурный сигнал создать - два пальца обоссать.
подожди, я не настолько крут в квадратурных сигналах
для меня оно больше понятно при наличии 2х физических выходов, а откуда я их возьму в звуковой карте, если сигнал идет как бы 1
пусть и стерео
КРАМ писал(а):Вообще то АВР тут не прокатит.
авр уже не нужен
приходит поток в формате мр3 из студии и в него можно подмешивать некий сигнал на студии и декодировать в техническом помещении обычным приложением под виндовс

пока я выбрал 2х частотное кодирование афск1200 и некую строку для маркеров начала и другую для конца режима

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 04:13:09
КРАМ
MP3 нужно преобразовать в обычный WAV, чтобы получить поток обычных выборок с частотой дискретизации 44 кГц.
Перемножить этот сигнал на ДВЕ синусоиды с частотой несущей и частотой дискретизации этого WAV, сдвинутые на 90 градусов (то есть на СИНУС и КОСИНУС с нулевой начальной фазой).
От перемножения на косинус получится Re компонента, а на синус - Im компонента квадратурного сигнала.
КАЖДЫЙ из ДВУХ этих сигналов (компонент) фильтруется либо КИХ, либо БИХ ФНЧ.
Одноименные (с одинаковыми индексами) выборки каждого массива образуют КВАДРАТУРНЫЕ ПАРЫ.
Отношение этих пар - это ТАНГЕНС ФАЗЫ несущей.
То есть АРКТАНГЕНС этого отношения - это сама фаза.
Изменение фазы во времени и есть модулирующий сигнал 123 Гц.
ЗЫ. Нужно сделать полосовой КИХ или БИХ по ВХОДНОМУ сигналу (2350 Гц) ровно на полосу девиации. И тоже самое по ВЫХОДНОМУ (123 Гц) с полосой равной обратной величине ВРЕМЕНИ ПЕРЕДАЧИ этого сигнала.
Изображение

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 09:38:23
anatol378
КРАМ - выеживаешься? :))) Разве молодых так учат - мордой об стол. Подсказал бы заодно во что выльется (по применяемому процессору) чисто программная реализация. Может лучше ПЛМ-ку применить? :)))

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 09:42:25
КРАМ
Тут нет ничего сложного.
И ПЛМ тут не нужна.
СТМ32 с ДМА или дсПИК33 С БОЛЬШИМ ЗАПАСОМ справятся с этой задачей.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 10:17:07
Morroc
Да что то задача как то расплылась уже, надо бы условия обновить, а то была рация с ЧМ на 2350 +авр, а теперь уже и не ЧМ и не рация и не авр - нифигаж себе :)) Можно попробовать прикрутить к этому какой нибудь SDR софт или на радиосканере поискать "iq забава". Вот еще оттуда же преобразователь обычного сигнала в IQ (если пролистать вниз) http://www.radioscanner.ru/forum/topic44541-30.html, насколько корректно работает и что в точности теряет я хз, если частота дискретизации с запасом - пойдет наверное.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 16:06:46
B@R5uk
anatol378 писал(а):Разве молодых так учат - мордой об стол. Подсказал бы заодно во что выльется (по применяемому процессору) чисто программная реализация.
Делал БИХ 4-го порядка на ARM с частотой 16 МГц. Три канала с частотой дискретизации 6 кГц тянуло. Четыре уже нет. Правда я писал на си без оптимизации (но с целочисленной арифметикой) и без всяких DMA (читал АЦП в прерывании).

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 16:17:12
Morroc
kalobyte писал(а): кстати дтмф оказалась плохим вариантом
я на декодер дтмф натравил музыку и пошли ложные срабатывания
защититься можно только если отлавливать последовательность конкретную
Угу, оно немного не для того. А вот CTCSS (НЧ субтон) как раз для определения наличия в канале "своего" абонента, эти частоты обычно отфильтровывают при приеме/передаче и если специально не пытаться обмануть декодер (т.е. использовать штатный передатчик с микрофоном) - работает довольно надежно. В общем то это близко к первоначальной идее, только там оно передавалось, видимо, отдельным сигналом перед голосовой передачей, а тон CTCSS передается всегда. Для надежности можно вкорячить 2 тона сразу, но, возможно, придется какие то фильтры добавить чтобы на выходе их не было слышно.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 16:53:31
КРАМ
B@R5uk писал(а):Три канала с частотой дискретизации 6 кГц тянуло. Четыре уже нет.
Очень сильно зависит от порядка фильтра с БИХ. Для высоких порядков нужна высокая разрядность вычислений, либо переход на флоат. И то и другое резко уменьшают производительность при превышении штатной разрядности контроллера.
Поэтому есть смысл делать КИХ. Он жрет ОЗУ, но не слишком жрет производительность, особенно при наличии И ИСПОЛЬЗОВАНИИ MAC-операций контроллера с DSP-ядром. Традиционно компиляторы игнорируют DSP ядро и их следует "совать носом" в MAC-команды.
Использование АРМов с ФПУ избыточно для подобных задач. Они откровенно дороги.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 17:43:09
kalobyte
Morroc писал(а):Да что то задача как то расплылась уже, надо бы условия обновить, а то была рация с ЧМ на 2350 +авр, а теперь уже и не ЧМ и не рация и не авр - нифигаж себе
была вещательная укв станция, там в звуковом канале передается сигнал похожий на ментовский свисток
сигнал для водителей на слух заметен и он же включает режим передачи обстановки на дорогах в стереокодере

детектирует его старая аналоговая железка, которую уже никто не производит
сначала я хотел на авр делать, думал будет просто, но потом заказчик сказал, что лучше сделать софтом и исключить физические части
поэтому решил делать под виндовс, т.к. там все равно стоит виндовс и принимает мр3 поток
КРАМ писал(а):Изменение фазы во времени и есть модулирующий сигнал 123 Гц.
осталось это переварить и написать :shock:

Re: частотный демодулятор - частота 2350 герц

Добавлено: Пн июн 22, 2015 20:17:36
B@R5uk
КРАМ писал(а):1) Очень сильно зависит от порядка фильтра с БИХ...

2) Для высоких порядков нужна высокая разрядность вычислений....

3) Поэтому есть смысл делать КИХ...
1) Я же написал, что фильтр 4-го порядка. Это 8 операций произведения 32 на 32 с 32-битным результатом.

2) Я в 32 бита уложился. Он даже усекался в после подсчёта суммы до меньшего числа разрядов. Про каскадные и параллельные схемы даже упоминать не буду — сами встретитесь, если займётесь. :beer:

3) Нет смысла. Кроме случаев, когда нужна линейная ФЧХ, БИХ-фильтр категорически выгоднее и по производительности, и по расходу ОЗУ. Во всяком случае для АРМов это особенно актуально, так как у них произведение 32х32->32 выполняется за 1 такт.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вт июн 23, 2015 04:01:54
КРАМ
B@R5uk писал(а):для АРМов это особенно актуально, так как у них произведение 32х32->32 выполняется за 1 такт.
Когда знаковые 16*16+40->40 с предвыборками выполняются за один такт и к тому же имеют два независимых аккумулятора (очень удобно для оконной функции в скользящем массиве), в сочетании с командой цикла дает такую упаковку КИХ, что сопоставимый по порядку БИХ выполняется так же или медленней, а расход памяти порой не так уж важен. Все зависит от ее наличия в конкретном МК.
Структура БИХ помимо умножений имеет еще суммы и кучу пересылок, что делает число умножений не вполне показательным для оценки производительности.
Хотя я вполне допускаю, что мои опыты в этой области убоги и доморощены... :)
ОФФ.
Как то потребовался БИХ ФНЧ со срезом в 3 Гц и нормированным (-60 дБ) подавлением 50 и 100 Гц при частоте дискретизации 300 Гц. Коэффициенты потребовали флоатов или 64 разрядного целочисленного представления... Более чем возможно, что я чего то делал не так.... :(
PS Спасибо за напоминание. Входной фильтр ТСу нужно делать КИХ, поскольку входной сигнал - ЧМ.

Re: частотный демодулятор - частота 2350 герц

Добавлено: Вт июн 23, 2015 08:10:51
B@R5uk
КРАМ писал(а):Когда знаковые 16*16+40->40 с предвыборками выполняются за один такт и к тому же имеют два независимых аккумулятора... в сочетании с командой цикла дает такую упаковку КИХ, что сопоставимый по порядку БИХ выполняется так же или медленней
Ассемблерный код в студию!
КРАМ писал(а):Как то потребовался БИХ ФНЧ со срезом в 3 Гц и нормированным (-60 дБ) подавлением 50 и 100 Гц при частоте дискретизации 300 Гц. Коэффициенты потребовали флоатов или 64 разрядного целочисленного представления...
Можно было нули фильтра поместить как раз на эти 50 и 100 Гц (будет -∞ дБ подавление), а ещё один или два нуля и все полюса разместить так, чтобы в полосе 3 Гц была максимально линейная АЧХ. Естественно, надо подбирать коэффициенты стразу с учётом округления. Хотя синтез БИХ-фильра — то ещё творческое занятие. Думаю, соотношение 3 Гц / 150 Гц = 0,02 не слишком мало, чтобы использовать 64 бита целочисленной арифметики. У меня было 240/12000 = 0,02, то есть так же, и всё влезло.