Страница 3 из 6
Re: частотный демодулятор - частота 2350 герц
Добавлено: Пт июн 05, 2015 19:41:51
kalobyte
c iq я знаком, это не из этой оперы
внезапно оказывается можно выкинуть частотную модуляцию и запилить любое гавно типа ctcss, что в рациях шумодав открывает
правда я опять нихера не нашел готовых библиотек или кода
есть у меня софт на сях, который кодирует текст и шлет в динамик или вейв файл
но нет декодера, зато есть декодер для авр, но я без понятия, как это декодировать из аудиопотока
есть мануал, как все закодировано
может кто подскажет готовый код или библиотеку fsk демодулятора для звуковой карты
Re: частотный демодулятор - частота 2350 герц
Добавлено: Сб июн 06, 2015 11:17:51
kalobyte
и еще
я нашел алгоритм герцеля, только я нихера не понял в его параметрах
что подается на вход и что получается на выходе и как это использовать?
http://khason.net/blog/sound-tone-and-d ... mentation/
например вот тут
1200 – -272.273842954695
2400 – -198.538262992751
3600 – -214.476846236253
4800 – -224.242925995697
6000 – 87.1653837206957 <- here result
7200 – -225.52220053475
8400 – -222.836254116698
9600 – -230.526410368965
10800 – -220.587695185849
что это такое и что за цифры?
---
public double CalculateGoertzel(byte[] sample, double frequency, int samplerate)
чот за параметры передаются?
откуда их брать?
Re: частотный демодулятор - частота 2350 герц
Добавлено: Сб июн 06, 2015 15:14:11
uk8amk
Там же написано
Частота-Оценка
87 = положительный результат
-200 или около того = неправильный результат.
В реальном сигнале где туева хуча всяких частот их гармоник пороговое значение надо подобрать экспериментально.
----
буфер записи с микрофона, исследуемая частота, дискретизация
Re: частотный демодулятор - частота 2350 герц
Добавлено: Сб июн 06, 2015 16:06:30
kalobyte
т.е. если число отрицательное, то это не верный результат?
а если будет 2 положительных?
где задается количество этих результатов и на что оно влияет?
размер буфера в чем измеряется?
что значит исследуемая частота? там же 2 частоты в дтмф или фск
Re: частотный демодулятор - частота 2350 герц
Добавлено: Сб июн 06, 2015 16:30:31
uk8amk
Очевидно, что 87 >> -200
Оценка также может быть невысокая если сигнал искажен.
Буфер меряется байтами, словами, выборками. Как условитесь. Зависит от потребностей и исходного материала. Тот программер насколько я понял сам алгоритмически синтезировал сигнал.
Герцель меряет 1 частоту. Сразу много частот меряют другие алгоритмы.
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вс июн 07, 2015 17:51:39
kalobyte
uk8amk писал(а):Герцель меряет 1 частоту. Сразу много частот меряют другие алгоритмы.
тогда я не понял, как в дтмф различают 2 частоты?
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вс июн 07, 2015 18:18:48
Albert_V
Попробую объяснить "на двух пальцах" без формул и "заумных терминов".
Даже если вы "прогоните" DTMF через компаратор, основные частоты останутся в спектре сигнала на выходе компаратора. Просто, к ним будут добавлены нечётные гармоники.
Представьте, что у вас есть два синхронизированных генератора, которые формируют некую частоту. Второй работает со сдвигом 90º.
Почему нужны генераторы со сдвигом 90º: невозможно предсказать фазу сигнала на входе.
Выходы этих генераторов микшируете со входным сигналом в два "выходных".
Так вот, как только во входном сигнале появится частота, которая совпадает с частотой генераторов, уровень сигнала (усреднённый) после микширования резко изменится в "+" или "-" (в зависимости от фазы входного сигнала).
Теперь представьте, что у вас не одна пара генераторов, а столько, сколько частот вы ожидаете "увидеть"......
Теперь ближе к программе.
Генераторы заменяете "прогоном" таблиц. Тупо их смешиваете со входным сигналом (арифметически "+") и делаете усреднения по каждой частоте (sin и cos).
В прикреплённом файле - программа АОН-а на ASM (Z80). В своё время, когда я делал свою программу (под PIC16), изучал тему именно по этому исходнику.
Спойлер
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вс июн 07, 2015 20:50:50
uk8amk
kalobyte писал(а):uk8amk писал(а):Герцель меряет 1 частоту. Сразу много частот меряют другие алгоритмы.
тогда я не понял, как в дтмф различают 2 частоты?
Никто же не запрещает вызвать подпрограмму несколько раз и посмотреть интересующие частоты.
Однако если частот слишком много или надо увидеть весь спектр, то БПФ окажется эффективней.
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вс июн 07, 2015 22:09:43
kalobyte
все равно нихера не понял
ацп не знает ничего о частотах
откуда они берутся? я так представляю, что за основу берется частота семплирования ацп
ну допустим она 11кгц
тогда по теореме котельникова можно будет получить 5.5кгц, а у нас типа частоты лежат в пределах 4кгц
как пример
сколько времени работает ацп и что он за это время делает? в частности если используется звуковая карта
что с точки зрения кода я получу на выходе?
массив? сколько элементов там должно быть? это связано с частотой семплирования?
в них хранится код амплитуды
нулевой элемент содержит частоту 0гц, так?
дальше что?
Albert_V писал(а):Попробую объяснить "на двух пальцах" без формул и "заумных терминов".
это как раз не на двух пальцах, это абстгактно и нихера не понятно
чтобы было понятно - все должно быть приближено к реальности
реальный код, в нем каждая переменная расписана
откуда она взялась, зачем нужна и все такое
нужна диаграмма работы алгоритма герцеля и бпф
ничего такого я не нашел, везде одна вода, заумные формулы или куски кода
Albert_V писал(а):Представьте, что у вас есть два синхронизированных генератора
у меня есть один провод, по которому идет звуковой поток всякого гавна и это гавно не должно вызвать ложных срабатываний
в тишине я передают 2 частоты как на спектруме 1200 и 2200
как мне получить 1 и 0 из них
типа
lognull = get1200();
logone = get2200();
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вс июн 07, 2015 23:38:01
Albert_V
kalobyte писал(а):...это как раз не на двух пальцах, это абстгактно и нихера не понятно
чтобы было понятно - все должно быть приближено к реальности
реальный код, в нем каждая переменная расписана
откуда она взялась, зачем нужна и все такое
нужна диаграмма работы алгоритма герцеля и бпф
Похоже, Вы ошиблись темой.
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вс июн 07, 2015 23:41:45
kalobyte
в чем же ошибка?
для понимания таких материй нужно все конкретно расписывать, кучи картинок, схем и все такое
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вс июн 07, 2015 23:58:33
Albert_V
kalobyte писал(а):в чем же ошибка?...
За Вас вряд ли кто то будет "строчить" программу с комментариями.
Есть два варианта: пользоваться чужими бибилиотеками As Is не понимая как они работают (но что-то делают) или создать свою программу.
Теперь ближе к теме.
Если речь идёт о "расшифровки" того, что вы выложили в
этом посте - там в каждый момент времени присутствует
только одна частота.
БПФ там на фиг не нужен, поскольку каждая частота передаётся в течении, приблизительно, 0,02 секунды.
Намного проще, в этом случае, написать программу "измерителя частоты/периода".
Если нужно сделать то, о чём вы говорили в первом посте - поставьте полосовой фильтр на ОУ с детектором по выходу. Это быстрее и проще.
----
P.S.
Если говорить о "спектруме" - копайте библиотеки FSK.
Re: частотный демодулятор - частота 2350 герц
Добавлено: Пн июн 08, 2015 12:59:31
kalobyte
Albert_V писал(а):За Вас вряд ли кто то будет "строчить" программу с комментариями.
как раз таки не надо такой вариант
мне же потом дальше писать чего придется и я хочу понять эту тему и я думал может кто даст чего годное посмотреть
годный видос по цос - это как найти алмаз в куче гавна
а быдлокниги я уже не разсматриваю как источник обучения
я уже давно не видел годных книг русскоязычных авторов, если что встречается - так это перевод американских
так что задорнов тут отдыхает
а библиотека годная 300 баксов стоит
ябыкупил, но если бы был большой заказ, а тут 300 за всю работу получу с туманными перспективами дальнейших продаж
поставлю сейчас на новый компутер 2013 студию и начну потихоньку ковырять
для начала разобраться бы с работой звуковой карты в шарпе и звуки сгенерировать
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вт июн 09, 2015 12:56:07
anatol378
kalobyte, для решения подобных задач необходимо учиться, закончить какой нибудь быдлоинститут, а затем еще и самообучение в определенной области Или сотрудничество с знающими людьми в области цифровой обработки сигналов. Твоя задача, как два пальца об асфальт, решается на простой цифровой логике. Любую логику можно привести к логическому уравнению. Любое логическое уравнение переводится в программное решение. Но иногда скорости или разрядности процессоров недостаточно, тогда опять логика в виде плисины.
Но для быдлофорумчанина это не понять.
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вт июн 09, 2015 16:35:11
kalobyte
заканчивать за 5лет быдловуз, чтобы решать такие задачи?
я боюсь представить, сколько лет будут учиться будущие поколения, чтобы клепать новые быдлодевайсы
чтобы осилить цос - не надо изучать все эти логарифмы с интегралами
в реальном коде нет никакого интеграла и функции такой тоже нет
я сегодня нашел полезную инфу и причем случайно
я нашел, что такое дельта т, которая там во всяких формулах была
https://ru.wikipedia.org/wiki/%D0%94%D0 ... 0%B8%D1%8F
для нее есть формула тоже
сейчас я ковыряю rtty в быдлодуине и никак не могу на компутере раскодировать в готовом софте
#define BAUD_RATE 20150 // 10000 = 100 BAUD 20150
вот есть такая функция
Код: Выделить всё
void RTTY5::rtty_txbit (int bit)
{
if (bit)
{
// high
tone(pa,2295,BAUD_RATE*1000);
}
else
{
// low
tone(pa,2125,BAUD_RATE*1000);
}
delay(20);
noTone(pa);
}
pa это вывод, который может быть 1 или 0
функция tone генерирует частоту 2125 или 2295 и длительностью BAUD_RATE*1000
что-то я не совсем понимаю
посмотрел в исходниках эту функцию
// frequency (in hertz) and duration (in milliseconds).
void tone(uint8_t _pin, unsigned int frequency, unsigned long duration)
20150 * 1000 = 20150000, что как-то много
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вт июн 09, 2015 16:47:06
Albert_V
kalobyte писал(а):...я сегодня нашел полезную инфу и причем случайно...
Озвучьте свой уровень знаний. Так проще будет вести разговор.
Просто, если вы на 3-ей быдлостранице быдлообсужения впервые узнали про быдлотермин "Дискретизация" - я уже не понимаю на каком языке с вами говорить и какие слова для вас будут понятны.
Re: частотный демодулятор - частота 2350 герц
Добавлено: Вт июн 09, 2015 17:17:08
Morroc
kalobyte писал(а):
public double CalculateGoertzel(byte[] sample, double frequency, int samplerate)
чот за параметры передаются?
откуда их брать?
Надо определиться со способом получения выборок и их частотой - это будет samplerate, то что ищем - frequency, сами выборки в массиве sample.
kalobyte писал(а):
сейчас я ковыряю rtty в быдлодуине и никак не могу на компутере раскодировать в готовом софте
#define BAUD_RATE 20150 // 10000 = 100 BAUD 20150
Я бы лучше герцеля доковырял, вам больше и не нужно.
Re: частотный демодулятор - частота 2350 герц
Добавлено: Ср июн 10, 2015 07:35:14
anatol378
Albert_V , нет у него никаких знаний. Новый Ломоносов - стишки сочинять... Проще - местный балабол, научился складывать пазлы из кусков программного кода и в случае отсуствия какого нибудь кусочка - тупик.
Re: частотный демодулятор - частота 2350 герц
Добавлено: Ср июн 10, 2015 17:37:18
kalobyte
написал много букв, потом ковырял софт и браузер упал
видать столько букв не нужно писать
Re: частотный демодулятор - частота 2350 герц
Добавлено: Сб июн 13, 2015 18:43:44
bad2cat
kalobyte писал(а):чтобы осилить цос - не надо изучать все эти логарифмы с интегралами в реальном коде нет никакого интеграла и функции такой тоже нет
Это, кстати, правда, для этого не надо
kalobyte писал(а):заканчивать за 5лет быдловуз
У меня всегда таже проблема - только начинаешь что-то читать про обработку, как лезут эти вшивые математики с интегралами ни разу не писавшие программы, но сующие везде свои интегралы. Проблема всегда - как от этих интегралов перейти к ассемблеру.
Вместо объяснения, эти, богом обиженные люди (математики, например Гриша Перельман), пытаются выпендриваться и самоутверждаться.
Ну ладно, мы посмотрим на вас, поплюёмся, а потом всё-таки сделаем свою задачу. Но вы, математики, так и останетесь "с кривыми ногами".
