На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 52,
участников - 6 [ nn3ar, R1AIT, Vangog, WolAN, Барабашка_Азимут_, DangerAlex]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Программное обеспечение —› FSK Для Delphi 
Различные приборы, оборудование, спутниковые и радиотелефоны!


Усилители сигнала и мощности

Усилители сотовой связи

Металлоискатели

Радионяни и видеоняни

Измерители КСВ и мощности
 Страница:  1  2  »»Поиск в теме
Автор Сообщение
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 16 Янв 2006 22:48:16 #  

Подскажите где найти компоненты для Delphi с помощью которых можно декодировать FSK (со звуковой платы).

Можно и под другую среду. А если нет таких то хотябы как из стандартных компонентов это сделать.
Дата: 16 Янв 2006 23:05:38 #  

Deeper

Самому писать надо и демодулятор и декодер, стандартные fsk демодуляторы будут 0 и 1 выдавать не так как тебе нужно, а в расчете 900 = 0 1500 = 1 или наоборот, в общем не прокатит.
Реклама
Google
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 19 Янв 2006 12:33:40 #  

Ну ладно. А если самому писать. То с чего начинать?
Дата: 19 Янв 2006 14:29:16 #  

Deeper

Хм... с чего начать? А чего вообще умеешь? Тут был товарищ, который просил ему рассказать, как на delphi быстренько сляпать DRM-декодер, а то что описание протокола DRM занимает около 20-25 листов он как то не подумал, так там еще и понимать надо чего написано. ;)
0x25
Участник
Offline3.6
с янв 2006
Moscow
Сообщений: 190

Дата: 19 Янв 2006 14:46:30 · Поправил: 0x25 #  

Ну ладно. А если самому писать. То с чего начинать?

если на пальцах, то

перебираешь таблицу синуса
и функцией корреляции с текущим семплом.
частота freq. процедуры решает
Дата: 19 Янв 2006 15:27:09 #  

0x25 Круто! Программист что ли? :)
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 19 Янв 2006 18:21:59 #  

Я делал тупо в лоб. Определял время между пиками сигнала соответвенно получал частоту сигнала потом замерял время присутвия такой частоты и получал 0 или 1. Но по-моему ето немного криво-вато.

А если начать с LabView.
Дата: 19 Янв 2006 20:18:46 #  

Deeper

А если начать с LabView. Гм... а чего усышать хотите? Начинайте. ;)
Дата: 19 Янв 2006 20:29:38 #  

>Ну ладно. А если самому писать. То с чего начинать?

1. Найти исходники по работе со звуковой платой
2. Найти исходники по FFT (для мониторинга)
3. Разобратся как работают DSP фильтра
4. Собрать все докучи и написать прогу :)

Удачи!
Дата: 19 Янв 2006 20:47:49 #  

>Я делал тупо в лоб. Определял время между пиками сигнала соответвенно >получал частоту сигнала потом замерял время присутвия такой частоты и >получал 0 или 1. Но по-моему ето немного криво-вато.

Для FSK проще всего пропустить сигнал через DSP полосовые фильтра (FIR или IIR), детектировать, и сгладить все LPF фильтром. После этих действий получим изначальную последовательность 0 и 1...
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 20 Янв 2006 09:54:37 #  

Попробуем. У меня есть SignalLab и AudioLab от OpenWare. Попробую пропустить сигнал через FFT и IIR. Посмотрим что получится на диаграмме.
Fill
Участник
Offline1.5
с фев 2004
Нижний Новгород
Сообщений: 91

Дата: 20 Янв 2006 10:19:04 #  

Можно ради интереса еще посмотреть исходники модуля Soundmodem от линуксового ядра. Он вроде поддерживал fsk, psk и afsk. Только в 2.6 его уже нету, надо брать ядро 2.4.
Fill
Участник
Offline1.5
с фев 2004
Нижний Новгород
Сообщений: 91

Дата: 20 Янв 2006 10:24:03 #  

Тьфу ты, я все перепутал как обычно :)
FSK в модуле ядра нет, надо найти софтинку Soundmodem которая работает как клиентское приложение, вот там должно быть.
Ramirez
Участник
Offline3.2
с апр 2004
Болгария
Сообщений: 284

Дата: 20 Янв 2006 11:01:05 #  

Linux Radio Transmission Decoder
by Thomas Sailer, HB9JNX/AE4WA
http://www.baycom.org/~tom/ham/linux/multimon.html

Кажется несложно переделать для делфи.
Дата: 20 Янв 2006 13:10:38 #  

>Кажется несложно переделать для делфи.
Проще написать новое чем что-то переделывать :)

По DSP фильтрам можно почитать здесь, довольно доходчиво расписано:
HTTP://WWW.DSPGUIDE.COM/

По работе со звуковой картой, не помню ссылку, но инфа у меня сохранена
под именем: Delphi Programming Sound or Volume Level Meter.htm
если надо будет, думаю гугля найдет...

В FSK нет ничего сложного, толи дело PSK...
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 20 Янв 2006 22:02:40 #  

FSK - это не сложно. Но у меня продолжительность сигнала одной частоты всего лишь 0,6 мс. А в Делфи нет таймера меньше 1мс. А все остальные таймеры работают неустойчиво.
Дата: 20 Янв 2006 22:37:38 #  

>всего лишь 0,6 мс. А в Делфи нет таймера меньше 1мс. А все остальные ?>таймеры работают неустойчиво.

Зачем тебе таймер? Ты снимаешь сигнал с входа в буфер, пускай длиной 256 семплов. Один семпл - 1/11025 секунды или 1/22050, смортря какую дискретизацию поставишь. А далее время отсчитуй по семплам. Если у тебя 0.6 мс - это 7 семлов при 11025 или 13 при 22050, с учетом округления.
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 21 Янв 2006 15:30:34 #  

А вот до этого я не догадался! Интересно. Значит чтобы измерить частоту сигнала надо пройтись по буферу, определить пики и потом индексу пика в буфере можно определить сколько времени прошло до следующего пика.

Спасибо.
Дата: 21 Янв 2006 15:51:56 #  

собственно я декодировал тот файл.
Вот что вышло:

01010000010100100011000000011101
01010000010100100011000000011101
01010000010100100011000000011101
01010000010100100011000000011101
01010000010100100011000000011101
01100111111101000001010101011111
01100111111101000001010101011111
01100111111101000001010101011111
01100111111101000001010101011111
01100111111101000001010101011111
01100111111101000001010101011111
00000100101001001010100010000010

что дальше с ним делать??
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 21 Янв 2006 16:29:40 #  

Я думаю что надо перевести как минимум в шеснадцатиричный вид!
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 21 Янв 2006 16:34:34 #  

А как на счет поделиться методом или исходником декодера.

Или это именно по тому методу как до сих пор говорилось?

Просто раскодировать это сложно за счет того, что мне не изветна исходная информация.

у меня же есть такой LARS передатчик и я примерно знаю что он передает.
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 21 Янв 2006 16:37:48 #  

И также интересно каким образом демодулирована посылка. В автомате или вручную?
Дата: 21 Янв 2006 18:05:11 #  

Да вот конечно любопытно... А что он вообще передает?
Можно скажем чтобы был текст и звуковой файл передачи?

>И также интересно каким образом демодулирована посылка. В автомате или >вручную?

Ну в автомате наверное... Запустил файл винампом и через loopback
прога принимала этот сигнал. Можно в реальном времени, прямо с эфира принимать тоже. На экран выкидало вот такие пакеты по 32 бита, согласно описанию протокола.

Метод тот что давал, применялись BPF и LPF FIR фильтра (16 tap)
Дата: 21 Янв 2006 18:25:57 #  

>А вот до этого я не догадался! Интересно. Значит чтобы измерить частоту >сигнала надо пройтись по буферу, определить пики и потом индексу пика в >буфере можно определить сколько времени прошло до следующего пика.

Частоту мерять не надо! Достаточно пропустить входной сигнал через 2 фильтра. Далее мы получим 2 буфера с фильрованым сигналом. Потом просто по семплам отнимаем модуля первого буфера от второго:
lpf[i+c_lpf]:=abs(acc)-abs(acc1);

У нас выйдет как бы такой сигнал, как после пропускания через диодный мост в БП. А далее просто сгладим ВЧ импульсы и получим почти четкий меандр. А далее уже дело техники...

А по семплам можно высчитать длину посылки только, т.е. время посылки 1500 или 900гц...
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 21 Янв 2006 19:37:59 #  

Ну в общем в данном случае надо считать именно время присутствия каждой частоты и согласно ему принимать решение 1 или 0. Так написано в инструкции.

Получается что и меанд не нужен.

А что за програ о которой вы упоминали?
Дата: 22 Янв 2006 09:39:50 #  

Моя прога, делал когда-то для приема rtty. Вот переделал под lars...
Дата: 22 Янв 2006 09:57:28 #  

>Получается что и меанд не нужен.

Я имел ввиду последовательность 0 и 1 до модулирования.
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 23 Янв 2006 18:48:58 #  

А можно такую прогу в Копилку для сравнения с результата с моим?
SergUA6
Модератор (RIP)
Offline6.0
с фев 2004
Сообщений: 1989

Дата: 23 Янв 2006 18:51:22 #  

Deeper

Возможно на некоторые вопросы уже есть ответы, желательно убедиться перед тем как задавать... ;) http://www.radioscanner.ru/forum/index.php?action=vthread&forum=21&topic=21726&page=1
Deeper
Участник
Offline1.2
с янв 2006
Кишинев
Сообщений: 59

Дата: 23 Янв 2006 18:54:16 #  

Спасибо. Просто она в другой ветке и я её потом заметил.
Прошу прощения.
Реклама
Google
 Страница:  1  2  »» 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.021; miniBB ®