Автор |
Сообщение |
|
Дата: 16 Фев 2012 18:35:22 · Поправил: Gonetc (16 Фев 2012 19:49:35)
#
Внезапно понадобилось написать классификатор некоторых сигналов, для начала нужно добиться распознавания хотя бы 5-7, в дальнейшем хочется чтобы это число выросло, т.е. необходима структура с возможным расширением. Конечная задача сделать автоматический классификатор как можно большего количества передач.
Задача упрощается тем, что классифицировать необходимо в узкой полосе, скажем 3-4кГц, длительность анализируемой выборки 0,7-0,9с. Естественно, есть ограничение на соотношение сш, скажем 3дБ.
Погуглив информацию по этой теме, ничего конкретного не нашёл. Как я понял есть несколько вариантов реализации, вот думаю каким путём мне пойти:
1)На нейронных сетях. Я понял это так, берётся сигнал, считаются его различные характеристики: спектр, огибающая, автокорелляционная функция, гистограмма частоты и т.п. На основе этих характеристик рассчитываются какие-нибудь коэффициенты (заполнения спектра, количество несущих, разнос между ними, определённая полоса сигнала) и массивы данных (например, содержащие номера отсчётов спектра, превышающих определённый порог или разносы между ярко выраженными пиками на спектре).
После этого на огромном количестве сигналов нейронная сеть обучается с помощью этих массивов и коэффициентов, в качестве нейронной сети можно использовать, например, самую известную с открытыми исходниками FANN http://leenissen.dk/fann/wp/
2)Корреляционный анализ. Создаётся база образцов, затем производится корреляция входного сигнала с каждым из них, пока не найдём совпадение. как я понимаю, отлично работает с преамбулами, но плохо с сигналами. Например, у ЧМ может быть какой угодно разнос, и базу образцов сделать в принципе невозможно.
3)использование алгоритмов анализа характеристик сигнала.
Здесь хочу привести примеры того, на чём, как мне кажется можно построить распознавание:
а)у многих сигналов со скоростью 2400Bd можно определить скорость таким методом.
Огибающая->производная->модуль->спектр->пик на 2400Гц
б)Всячески играясь с различными параметрами характеристик сигнала, я заметил, что у довольно многих сигналов, предварительно возведённых в различную степень, при построении спектра от спектра проявляются характерные гармоники.
Примеры:
Stanag 4285
Чёткие пики на 106,6 мс и на 192,6 мс
MIL-STD-188-110A (app.A)
Чёткий пик на 200мс
Codan 80bd CHIRP
12,4мс, 25мс, 37,4 и т.д
Нашёл такие же чёткие признаки у Bul Diplo 8-tone, DIGTRX 8-tone, RACAL SKYFAX MSM-1250, MARCONI SCIMITAR-H 25-tone, MIL-STD-188-110A (app.B), STANAG 4197 16/39-TONE (PARALLEL), Clover, Pactor 3 16 и 18 tone, ROHDE & SCHWARZ - modem GM857C4, ROHDE & SCHWARZ - modem GM2100, TФМ4-2400.
Также, иногда различные гармоники проявляются при построении спектра от огибающей сигнала. Ещё например, у Stanag 4285 чёткие пики на автокорреляционной ф-ии с разносом в 106,8мс.
Кстати, кто-нибудь может пояснить физический смысл проявления этих гармоник (я имею в виду спектр от спектра степеней сигнала)? Я так понимаю это всё связано с кепстральным анализом, т.е. частный его случай?
Ещё было бы интересно, какие есть быстрые и хорошо работающие методы определения полосы сигнала по спектру, сейчас я использую метод с усреднением N-отсчётов, сдвигаясь в цикле по спектру и сравнивая результат усреднения, как только он сильно меняется, определяется граница полосы.
Собственно, в чём вопрос моего топика: есть ли какие-нибудь готовые алгоритмы классификации (код, понятно, никто не даст, да мне и не проблема самому написать) и каким бы методом стали решать эту задачу вы? Очень не хочется изобретать велосипед, и писать кучу кода, которую потом придётся выкинуть на помойку. До этого передо мной такие сложные задачи не ставились, всегда для решения хватало пары дней гугла.
P.S. Я довольно таки нуб в этой теме, поэтому просьба ногами не бить:) |
|
Дата: 16 Фев 2012 18:55:16
#
|
Реклама Google
|
|
|
Дата: 16 Фев 2012 19:13:50
#
Чё опять? :) Бросьте эту дурацкую затею. Это как с распознаванием речи, вроде что-то можно сделать, но результат всегда удручает.
|
|
Дата: 16 Фев 2012 19:42:55
#
Я же не говорю о 100% вероятности классификации любых радиосигналов при любом сш.
Уверен, что есть уже написанный код, осуществляющий необходимое мне, либо хотя бы похожее. Вот мне и интересно, каким путём шёл тот, кто это сделал. Мало ли, этот человек найдётся здесь.
А насчёт распознавания речи - Apple и Google добились феноменальных результатов, и их результат не удручает, а шокирует:)
|
|
Дата: 16 Фев 2012 19:49:30
#
Можно сделать, только для известных сигналов и на известной частоте, сразу возникает вопрос: кто будет крутить "ручку" приемника?
|
|
Дата: 16 Фев 2012 19:51:35
#
Имхо на сайте есть разработчики подобных штук, по некоторым фразам в дискуисиях это следует. Если они захочут, они вам алгоритмы распишут. :) Тока я сильно сомневаюсь в таком чудесном исходе. Но как знать. Может так ж внезапно как задача возникла, она так же внезапно и будет решена. Вобще внезапные решения, обычно и живут недолго, до внезапного прозрения. :) Ну да ладно, эт всё вода. Пардон.
|
|
Дата: 16 Фев 2012 19:52:47
#
Gonetc
а шокирует:)
Какой вы впечатлительный. :) ИМХО пока результата добился только Бог, если бы человек распознавал как Apple и Google, то он скорее всего был бы пациентом психиатрической больнички. :)
|
|
Дата: 16 Фев 2012 19:55:22
#
Понятно, что только для известных. Крутить ручку в смысле для кого делается? Кому продадут, тот и будет крутить.
|
|
Дата: 16 Фев 2012 19:57:16 · Поправил: Programmist (16 Фев 2012 19:58:47)
#
не удручает, а шокирует:)
Шокировать здесь может только реклама, сомнительно что-то, что им удалось запихнуть в "спичечную коробку" сколь-нибудь адекватную нейросеть :)
Кому продадут, тот и будет крутить
Так не получится, при проектировании подобной системы с этого вопроса надо начинать.
|
|
Дата: 16 Фев 2012 19:59:06 · Поправил: petr0v (16 Фев 2012 19:59:43)
#
Gonetc
Крутить ручку в смысле для кого делается? Кому продадут, тот и будет крутить.
Т. е. уже не автоматически, так может кому просто купить SA и крутить там нужные ручки?
|
|
Дата: 16 Фев 2012 20:02:02
#
Ну физически никаких ручек крутить не нужно. Есть некий модуль, который автоматически обнаруживает сигнал в широкой полосе и "встаёт на частоту". Дальше хочется чтобы другой модуль автоматически классифицировал.
|
|
Дата: 16 Фев 2012 20:04:24
#
Gonetc
Ну физически никаких ручек крутить не нужно. Есть некий модуль, который автоматически обнаруживает сигнал в широкой полосе и "встаёт на частоту".
Вот с этого и начните и чтобы не только в тепличных условиях надёжно работало.
|
|
Дата: 16 Фев 2012 20:05:32 · Поправил: Gonetc (16 Фев 2012 20:05:48)
#
Если они захочут, они вам алгоритмы распишут. :)
Да мне хотя бы не алгоритмы, а умных советов, каким путём идти.
|
|
Дата: 16 Фев 2012 20:06:53
#
Gonetc Есть такая софтина как КОДЕ-300, в ней есть так называемый классификатор, ворованых версий гуляет дофига и больше, попробуйте на сигналиках с базы сайта. Если вас впечатлит, то тады ой. :-)
|
|
Дата: 16 Фев 2012 20:07:00
#
Это уже есть. Насчёт надёжности - ну вроде работает:-)
|
|
Дата: 16 Фев 2012 20:07:51
#
Gonetc Умный совет? Ну пардон, читать доки и буквари эт конешно глупый совет. Я пон. :)
|
|
Дата: 16 Фев 2012 20:08:29
#
Gonetc
Да мне хотя бы не алгоритмы
Мне бы тоже... В открытом доступе только примитив эвристический..
|
|
Дата: 16 Фев 2012 20:08:42
#
Я так понимаю там нет исходников - мне такое не подходит к сожалению.
|
|
Дата: 16 Фев 2012 20:08:42
#
С вероятностью правильного определения до 50% в реальных условиях сделать можно, дальше сложность системы будет расти в геометрической прогрессии. Многое зависит от первого модуля, чтобы не пропускать сигналы, в тот момент, пока идет декодировка "пойманного".
|
|
Дата: 16 Фев 2012 20:10:19
#
Gonetc Я так понимаю там нет исходников - мне такое не подходит к сожалению. Дык не совет нужен тогда. :-) А дайте мне исходики, чтоб я написал софт на продажу и заработал маленько, оки, понял. :-)
|
|
Дата: 16 Фев 2012 20:12:22
#
Gonetc
Я так понимаю там нет исходников - мне такое не подходит к сожалению.
С таким подходом только за такие задачи и браться. Всё от того что граница незнания слишком коротка.
|
|
Дата: 16 Фев 2012 20:13:10
#
Читать доки и буквари - это умный совет в любой ситуации;-). Я уже усиленно читаю, где только можно - дома, в метро, на работе.
Я бы хотел услышать что-то такое: "Пытался делать классификатор с помощью нейронной сети, проблемы такие-то, получилось сделать с вероятностью такой-то, либо не получилось сделать вообще, почему не получилось, из каких книг непосредственно брал алгоритмы и т.п."
|
|
Дата: 16 Фев 2012 20:14:59 · Поправил: Gonetc (16 Фев 2012 20:17:55)
#
Вы меня не поняли. Ну, допустим, этот Code 300 отлично классифицирует. И как мне это поможет понять, как он это делает, какие алгоритмы использует? Только его исходники помогли бы мне.
И использовать я их уж точно не стал бы, ибо вряд ли они на QT c применением ООП написаны. Максимум, выдернул бы оттуда алгоритмы
|
|
Дата: 16 Фев 2012 20:19:45
#
Gonetc
Вы меня не поняли.
Вы сарказма не поняли. Ничего она отлично не классифицирует, почитайте темы на форуме, люди с опытом мозгом не всегда могут классифицировать.
|
|
Дата: 16 Фев 2012 20:20:42 · Поправил: Programmist (16 Фев 2012 20:22:46)
#
Только его исходники помогли бы мне
Исходники не помогут. Как правило, разобрать такую программу на части, а потом собрать из них свою не получается. Проще все сделать сначала, ну а нейросети, это совсем отдельная тема, имхо. Для начала анализа, необходимо точное определение признаков.
|
|
Дата: 16 Фев 2012 20:21:13
#
Gonetc Не надо допускать того чего нет. Классифицирует он препогано. И имхо, это должно дать понять, что если софт который впаривают за приличное бабло, толком не может классифицировать практически ничего кроме хай-фай RTTY и PSK-2 и то в особых специальных случаях, то задачу внезапно не решить, а не внезапные решения выльются в приличную трату времени и сил, и неизвестно будет ли итого лучше чем сейчас в КОДЕ-300.
|
|
Дата: 16 Фев 2012 20:29:50
#
Gonetc
устройтесь на работу в контору, где этим занимаются профессионально, лет 5 усердной работы и кое-то что будет получаться
|
|
Дата: 16 Фев 2012 20:34:53
#
лет 5 усердной работы и кое-то что будет получаться
Это точно, такая задача одному человеку не под силу, слишком много различных направлений.
|
|
Дата: 16 Фев 2012 20:47:31
#
Gonetc
IMHO, реальный качественныйклассификатор некоторых сигналов, да ещё с длительность анализируемой выборки 0,7-0,9с - это модем.
Соответственно, если нужно добиться распознавания хотя бы 5-7, то это как раз 5-7 параллельно работающих модемов и нужно.
|
|
Дата: 16 Фев 2012 20:55:05
#
Не надо допускать того чего нет. Классифицирует он препогано. И имхо, это должно дать понять, что если софт который впаривают за приличное бабло, толком не может классифицировать практически ничего кроме хай-фай RTTY и PSK-2 и то в особых специальных случаях, то задачу внезапно не решить, а не внезапные решения выльются в приличную трату времени и сил, и неизвестно будет ли итого лучше чем сейчас в КОДЕ-300.
Поддерживаю, пробовал его, этот Code. Интересно, так кому-ж таки его продали, это "сырое" фу-ло ?
|
Реклама Google |
|