Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 5

Декодирование входящего звука!

20.01.2010, 07:08. Показов 2118. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется преобразовать входящий сигнал состоящий из одной тональности в последовательность бинарного кода (приходит точка или тире азбуки морзе) точка - 0 тире - 1 с чего начать? Аналоги существуют но не подходят, т.к. нужна точная настройка, хочу применить свой алгоритм, поэтому требуется помощь исключительно в преобразовании в 0,1! Заранее благодарю!
p.s. Времени на изучение других сред программирования нет! Проще будет написать на builder т.к. наиболее близко с ним знаком!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.01.2010, 07:08
Ответы с готовыми решениями:

MediaCodec - декодирование сжатого звука
Здравствуйте, уважаемые форумчане. Пытаюсь при помощи MediaCodec из сжатых звуковых файлов формата MPEG Layer-3 получить исходные...

Как поймать момент входящего вызова и номер телефона входящего вызова?
всем привет, у меня странный вопрос, есть стационарный телефон, подключенный через четырехканальный адаптер SpRecord AT4 к ПК по USB, как...

В каких переносных носителях звука,в частности телефонах,стоит усиление звука?
Ребят,заинтересовал вопрос. В каких переносных носителях стоит усиление звука.Больше всего интересуют телефоны,но и от общей...

14
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
20.01.2010, 09:32

Не по теме:

Зачем уточнять направление? Или ты сталкивался с задачей декодирования исходящего звука?

Фиксируй факт наличия колебаний нужной частоты, потом полученый bool преобразуй в int.
0
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 5
21.01.2010, 00:37  [ТС]
это понятно! Вот именно как взять в переменную уровень шума я не знаю(((
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
21.01.2010, 18:39
А ты делай среднее арифметическое от модуля(все положительные) 10 - 100 семплов, и проверяй на порог. После этого сдвигаемся на 1 и опять делаем среднее арифметическое и проверяем порог. Потом можно запоминать на каком этапе был последний переход(1-0 или 0-1) и если попадается еще один переход на дистанции в несколько десятков(длину нужно тоже подстраивать) семплов, то не реагируем на него, так как азбука морзе на такой высокой частоте приходить не может.
0
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 5
22.01.2010, 04:38  [ТС]
проблема в практической реализации! Алгоритм можно составить самому а вот получить значение в переменную я не могу((( Не знаю как написать и даже с чего начать
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.01.2010, 04:59
Цитата Сообщение от Otaka Посмотреть сообщение
А ты делай среднее арифметическое от модуля
Нельзя. Надо брать саму кривую звукового давления и передавать её в гармонический анализатор (Фурье и ли вейвлет). Коэффициент при члене нужной частоты сравнивается с пороговым значением.
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
22.01.2010, 09:49
Так это ведь если сигнал закодирован как изменение частоты. Тогда, конечно, нужно фурье и смотреть на получившиеся частоты в скользящем окне. А если там тишина(читай шум в канале), и сигнал, а соотношение сигнал шум довольно велико, то можно смотреть и просто на среднее амплитуд семплов.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.01.2010, 09:56
Цитата Сообщение от Otaka Посмотреть сообщение
Так это ведь если сигнал закодирован как изменение частоты.
Амплитуды. Если звук есть, но изменена его частота, то это может и не распознаться, так как нужно высокое частотное разрешение, а реальное частотное разрешение анализатора может оказаться ниже. А если в пределах целой октавы звука нет совсем, то это надёжно распознают все анализаторы.
Цитата Сообщение от Otaka Посмотреть сообщение
соотношение сигнал шум довольно велико, то можно смотреть и просто на среднее амплитуд семплов.
Как амлитуду измеришь? Коэффициент гармонического разложения - это как раз хороший вариант её оценки. И как гарантировать тишину? Предположим, в другой октаве присутствует шум с уровнем сопоставимым или даже больше распознаваемого сигнала. Тогда нужна фильтрация. Но если у тебя есть другой алгоритм измерения амплитуды и для конкретного случая он подходит, то почему бы и нет?
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
22.01.2010, 10:03
Вполне возможно. Я в обработке сигналов не силен.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.01.2010, 10:07
Я не утверждаю, что других способов нет. Я просто указал на то, что их применимость надо анализировать отдельно. Но измерять действительно требуется именно амплитуду. С микрофона же идёт звуковое давление, то есть сама волновая функция.
0
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 5
25.01.2010, 05:03  [ТС]
ну и как мне начать писать по всему этому код если я даже не представляю какими библиотеками воспользоваться куда обращаться и так далее! Проще говоря по сравнению с вашими способностями я пустая голова!(((
0
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 5
04.02.2010, 21:47  [ТС]
На самом деле мне было интересно как это выглядит в коде! ну хотя бы как обратится к потоку
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
04.02.2010, 22:03
Дл я обращения к микрофону ты можешь воспользоваться API функциями WaveIn/Out. Можешь почитать вот тут вот:
http://junglewin.narod.ru/sound.html.
После того как у тебя будет набор семплов в массиве, ты можешь его обработать с помощью преобразования Фурье. В нете полно реализаций преобразования Фурье. Можно например глянуть вот тут:http://www.librow.com/articles... pendix-a-2
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
04.02.2010, 22:10
Цитата Сообщение от le0nard Посмотреть сообщение
Требуется преобразовать входящий сигнал состоящий из одной тональности в последовательность бинарного кода (приходит точка или тире азбуки морзе) точка - 0 тире - 1 с чего начать?
С правильного кодирования. Двоичного кодирования (0 - точка, 1 - тире) недостаточно, необходимо еще учесть: а). паузы между знаками, б). паузы между словами.
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
04.02.2010, 23:23
Лучший ответ Сообщение было отмечено как решение

Решение

Кстати, le0nard, я вот нашел у себя старенький проектик по чтению данных с микрофона. Там проводится сглаживание амплитуды по среднему значению амплитуды в скользящем окне. Посмотри, там в массиве Averages значения которые можно уже анализировать на какой-то порог.
Вложения
Тип файла: rar Mik.rar (171.4 Кб, 47 просмотров)
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.02.2010, 23:23
Помогаю со студенческими работами здесь

После переустановки система установил драйверу звука, но опять звука нет...
пОСле переустановки система установил драйверу звука, но опять звука нет...

Магнитола Daewoo AKF8035RDS - нет звука на FM, блокируются кнопки добавления и уменьшения звука
Здравствуйте. Попалась мне магнитола Daewoo AKF8035RDS. Нет звука на FM диапазоне, при этом блокируются кнопки добавления и уменьшения...

Плохое качество звука на сервере (хрип, проваливание звука)
Добрый день. При работе с сервером столкнулся с плохим качеством звука на сервере (хрип, проваливание звука). Ставил драйвера и сторонние...

Блокировка входящего трафика
Всем привет, помогите с такой проблемой у меня есть сервер Rust legacy и его ддосят через чит (Поднимают пинг) нужно написать плагин для...

Блокировка входящего вызова
Коллеги, всех приветствую! Суть задачи, думаю, всем ясна из темы, собственно - описание текущей ситуации. В одном из классов - назовем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru