Перейти к содержанию

Помехоустойчивое кодирование звукового сигнала

Здравствуйте.

 

Помогите пожалуйста определится с алгоритмом помехоустойчивого кодирования.

 

Ситуация следующая: есть некая последовательность числа (в виде текста), одно устройство кодирует и передает это значение в виде DTMF сигнала, через динамик.

Другое устройство принимает этот сигнал микрофоном на расстоянии, и декодирует его.

 

DTMF не отвечает требованиям надежной (и достоверной) передачи информации, по крайней мере в той среде, где мы это используем. А это, в свою очередь, передача информации в условиях уличного "незначительного" зашумления. Никто не измерял сколько dB, но тем не менее, вопрос в том, что от этого зашумления никак не уйти..

 

Так вот: информация в целом передается, но с очень большим количеством ошибок. Например передается строка 975398734343, а расшифровывается как 0075396673443 ...

Если снизить скорость передачи, убрать шумы и увеличить длительность воспроизведения сигнала, тогда распознает вообще без ошибок. Хотелось бы отметить, что все алгоритмы реализованы верно, как на передатчике, так и на приемнике. Технически в подробности вдаваться не буду, т.к. это не тема данного вопроса. Еще стоит добавить, что приемник иногда ложно срабатывает просто на посторонние шумы.

 

Собственно вопросы:

 

1) Как добиться максимально правильной передачи информации, по звуковому каналу? Напоминаю: от динамика к микрофону, другие варианты не рассматриваются.

2) Какие алгоритмы реализовать, для помехоустойчивого кодирования? Стоит отметить, что обычные CRC и т.д., не особо помогают..

3) Существуют ли реализации подобного рода? Стоит отметить, что DTMF не является обязательным способом, просто мы пошли по такому пути.. Возможно не верному..

 

Требования:

 

1) Максимально возможная скорость передачи данных, не в ущерб качеству распознавания сигнала.

2) Передача данных именно в обычной (звуковой) среде, от динамика к микрофону.

3) Реализация алгоритма помеха устойчивого кодирования.

 

p/s. Уже думал может можно увеличивать сигнал по частоте и считать, в определенный промежуток времени, по вектору нарастания звукового сигнала, - понимать, что пытается передать устройство. И CRC пытался применить.. Не помогает, процент верного распознавания в зашумленной среде, ну около 30. Помогите пожалуйста, хотя бы советом, куда копать, что сделать, как реализовать???

 

Заранее всем огромное спасибо!

Изменено пользователем devlater

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Нужно смотреть в сторону FEC, но хотелось бы всё-таки каких-то цифр в дБ. Хотя бы примерно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вместо DTMF лучше используйте FSK и помехоустойчивое кодирование fec, рида-соломона, хэмминга.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CRC не исправляет ошибки, а позволяет их обнаружить,

 

Да, это я понимаю.

 

чтобы, например, сделать запрос о повторной передачи.

 

Нет возможности обратной связи, только односторонняя передача.

 

Нужно смотреть в сторону FEC,

 

Спасибо за наводку.

 

но хотелось бы всё-таки каких-то цифр в дБ. Хотя бы примерно.

 

Точно сказать не могу, т.к. никто не замерял. Но если пофантазировать, то ориентировочно звук закипающего чайника)) как бы это глупо не звучало.. Приемник на расстоянии не более метра, в условиях уличной зашумлености. Как-то так...

 

вместо DTMF лучше используйте FSK и помехоустойчивое кодирование fec, рида-соломона, хэмминга.

 

Можно подробнее, - больше информации? Понятно что интернет и т.д. Я имею введу своими словами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Точно определить параметры шума среды. То есть определить критические случаи зашумления среды передачи. Для начала выйти на улицу с калиброванным микрофоном и посмотреть спектр частот уличного шума и его амплитуду. Опередив параметры среды передачи в худшем случае вы сможете выбрать частоты связи и необходимые уровни сигналов на выходе источника и на входе приемника.

2. Уменьшайте пакет посылки и увеличивайте избыточность. Необходимо сильно увеличивать накладные расходы на передачу. Систем помехозащищенного кодирования много. Проверить их действенность и выбрать лучший для вашего порименения - месяц времени.

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

Передали на одной частоте - перескочили на октаву вверх - передали на другой частоте - еще на октаву вверх. На стороне приемника сложили пакеты полученные на разных частотах в одну кучу и сравнили друг с другом. Мажоритированием выбрали верный.

4. Увеличивать направленность излучателей и приемников. Есть параболические системы и системы органного типа. Увеличивают С/Ш очень значительно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда скорее как я понимаю: AFSK - Digital Communication with Audio Frequency Shift Keying.

 

Можно своими словами о FEC?

 

1. Точно определить параметры шума среды. То есть определить критические случаи зашумления среды передачи. Для начала выйти на улицу с калиброванным микрофоном и посмотреть спектр частот уличного шума и его амплитуду.

 

Да, наверное придется так и сделать.

 

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

 

Каким образом я смогу выбрать? По спектрограмме? Т.е. какие частоты меньше всего заняты, их и выбираем?

 

2. Уменьшайте пакет посылки и увеличивайте избыточность. Необходимо сильно увеличивать накладные расходы на передачу. Систем помехозащищенного кодирования много.

 

В том то и дело, что их много...

 

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

 

Простите за прямолинейность, Вы предлагаете свои услуги (что я думаю нами было бы рассмотрено). Или я Вас не правильно понял?..

 

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

Передали на одной частоте - перескочили на октаву вверх - передали на другой частоте - еще на октаву вверх.

 

Концепцию понял. Спасибо. Ориентировочно я о этом говорил и в своем вопросе, когда писал: "Уже думал может можно увеличивать сигнал по частоте и считать, в определенный промежуток времени, по вектору нарастания звукового сигнала, - понимать, что пытается передать устройство.". Вопрос в том, какой промежуток по времени воспроизведения одного сигнала выбрать? Еще не маловажный фактор это то, что оба устройства цифровые (как приемник так и передатчик), И нужно получается обращать внимание на битрейт как передаваемого, так и принимаемого сигналов. Ну на счет битрейта я могу сказать, что думаю не ниже 64 кбит/сек.

 

На стороне приемника сложили пакеты полученные на разных частотах в одну кучу и сравнили друг с другом. Мажоритированием выбрали верный.

 

Можно подробнее пожалуйста.

 

4. Увеличивать направленность излучателей и приемников.

 

Думаю с направленностью норм, т.к. приемник и передатчик, на расстоянии не более 1 метра, - это точно.

 

Есть параболические системы и системы органного типа. Увеличивают С/Ш очень значительно.

 

Тоже можно подробнее? И что Вы подразумеваете под аббревиатурой C/Ш?

Изменено пользователем devlater

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1. Точно определить параметры шума среды. То есть определить критические случаи зашумления среды передачи. Для начала выйти на улицу с калиброванным микрофоном и посмотреть спектр частот уличного шума и его амплитуду.

>>Да, наверное придется так и сделать.

 

Измерили прибором, порядка 55-70 дБ.. 70дб - это в самой худшей ситуации.

Спектр к сожалению сейчас нет возможности замерить,..

Изменено пользователем devlater

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И вот такой вопрос: Приемник DTMF сигнала, аппаратно как сделан? Программно и сами писали прогу? Если да, то понятно почему такое у вас с приемом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Можно своими словами о FEC?

Можно посмотреть аппликухи от TI, где расписан алгоритм передачи и приема с использованием FEC, обеспечивающий совместимость с аппаратной реализацией в CC1100/1101.

 

А по опыту - когда-то давно (в 90-х) была такая простенькая транкинговая система Smartrunk, использовавшая ширпотребные полудуплексные радиостанции. В первой реализации использовался DTMF-сигналинг и работала она весьма так себе (несмотря на использование специализированных кодеков MT8880). Аналогично и в других системах, применяющих DTMF, тоже результат восторгов не вызывал, как ни старались фильтровать строб детектора. В том же Smartrunk, в следующей реализации, перешли на цифровое кодирование, фазовая модуляция несущей 1400 Hz (битовая скорость 1400/2.5=560 бит/сек). Результат был разительно лучше. Мало того, что система устойчиво работала и при достаточно паршивом радиоканала, в шумах, так она работала даже и на аудиоконтакте источник-микрофон, и даже и с двумя аудиоконтактами (на передающей и приемной стороне), работала на аудиоконтакте же и по телефонной линии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
И вот такой вопрос: Приемник DTMF сигнала, аппаратно как сделан? Программно и сами писали прогу? Если да, то понятно почему такое у вас с приемом.

 

Программно. Да DTMF уже не интересует... AFSK уже хотим заюзать..

 

Можно посмотреть аппликухи от TI, где расписан алгоритм передачи и приема с использованием FEC, обеспечивающий совместимость с аппаратной реализацией в CC1100/1101.

 

Если не сложно, можно прямые ссылки. Боюсь сам могу не то найти. Спасибо, за информацию.

 

в следующей реализации, перешли на цифровое кодирование, фазовая модуляция несущей 1400 Hz (битовая скорость 1400/2.5=560 бит/сек). Результат был разительно лучше. Мало того, что система устойчиво работала и при достаточно паршивом радиоканала, в шумах, так она работала даже и на аудиоконтакте источник-микрофон, и даже и с двумя аудиоконтактами (на передающей и приемной стороне), работала на аудиоконтакте же и по телефонной линии.

 

А вот тут пожалуйста по подробнее) Если можно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Теперь понятно, что из-за плохого программного приемника DTMF сигнала у вас такое. Если бы поставили аппаратный (например MT8870 или их аналог) то таких проблем могли избежать. Все просто, тот фильтр с его полосой, подавлением за полосой, крутыми фронтами и тп. который в этом чипе сделан аппартатно программно реализовать на дешевом чипе не получится ну никак. Давно пройденная тема. У нас с использованием чипа проблем таких как у вас не было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Теперь понятно, что из-за плохого программного приемника DTMF сигнала у вас такое. Если бы поставили аппаратный (например MT8870 или их аналог) то таких проблем могли избежать. Все просто, тот фильтр с его полосой, подавлением за полосой, крутыми фронтами и тп. который в этом чипе сделан аппартатно программно реализовать на дешевом чипе не получится ну никак. Давно пройденная тема. У нас с использованием чипа проблем таких как у вас не было.

 

Да возможно. Но дело в том, что аппаратно не как.. Это два устройства на ARM процессорах.

Насчет MT8870, да юзал его, но увы и ах.. Аппаратно нечего модернизировать нельзя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Если не сложно, можно прямые ссылки.

Документы swra113a.pdf и swra313.pdf на сайте TI (DN504 и DN507).

А вот тут пожалуйста по подробнее)

Программный кодек (с очень скромными требованиями к вычислительной мощности). Несущая (1400 Hz) модулируется по фазе (180 градусов), по 5 полупериодов на бит.

 

Насчет MT8870, да юзал его, но увы и ах.. Аппаратно нечего модернизировать нельзя.

В условиях реального радиоканала DTMF работает весьма посредственно. 8870, 8880 - опробовано больше четверти века назад, ничего хорошего...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вот сейчас читаю, и не могу определится, что же в конечном счете мне необходимо?..

FSK, AFSK, PSK или же BPSK???

Обращу внимание, что данные передаются с динамика на микрофон, скорость не так важна, хотя желательна, ну к примеру за 1 секунду, нужно передать 20 символов.

Самое важное, - это достоверность переданных данных!!!

Изменено пользователем devlater

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Я вот сейчас читаю, и не могу определится, что же в конечном счете мне необходимо?..

FSK, AFSK, PSK или же BPSK???

Обращу внимание, что данные передаются с динамика на микрофон, скорость не так важна, хотя желательна, ну к примеру за 1 секунду, нужно передать 20 символов.

Самое важное, - это достоверность переданных данных!!!

 

Если действительно НАДО СДЕЛАТЬ, и чтобы нормально работало, возьмите за основу какой нибудь гироакустический модем,

как например http://rfdsp.ru/modem_ga.html. В них уже учтены все подводные камни, на какие можете напороться.

 

Если скоростью можно пожертвовать, то проще всего использовать BPSK, а информацию передавать в виде М-последовательности (несущая 1...10 кГц).

Здесь будет и помехоустойчивое кодирование, и защита от возможного эха (многолучевость), и на входе можно ставить усилитель-ограничитель:

- просто и работает как А-Калашникова.

Единственное условие - Система должна быть рассчитана на работу при отношении С/Ш < 0,5 в белом шуме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти