Форум разработчиков электроники ELECTRONIX.ru: Помехоустойчивое кодирование звукового сигнала - Форум разработчиков электроники ELECTRONIX.ru

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

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

#1 User is offline   devlater Icon

  • Участник
  • Pip
  • Group: Участник
  • Posts: 43
  • Joined: 30 марта 15

Post icon  Posted 25 сентября 2018 - 00:25

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

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

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

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

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

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

1) Как добиться максимально правильной передачи информации, по звуковому каналу? Напоминаю: от динамика к микрофону, другие варианты не рассматриваются.
2) Какие алгоритмы реализовать, для помехоустойчивого кодирования? Стоит отметить, что обычные CRC и т.д., не особо помогают..
3) Существуют ли реализации подобного рода? Стоит отметить, что DTMF не является обязательным способом, просто мы пошли по такому пути.. Возможно не верному..

Требования:

1) Максимально возможная скорость передачи данных, не в ущерб качеству распознавания сигнала.
2) Передача данных именно в обычной (звуковой) среде, от динамика к микрофону.
3) Реализация алгоритма помеха устойчивого кодирования.

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

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

This post has been edited by devlater: 25 сентября 2018 - 00:31

0

#2 User is offline   Grizzzly Icon

  • Знающий
  • PipPipPipPip
  • Group: Свой
  • Posts: 565
  • Joined: 22 февраля 13

Posted 25 сентября 2018 - 02:47

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

#3 User is offline   uriy Icon

  • Гуру
  • PipPipPipPipPipPip
  • Group: Свой
  • Posts: 2 429
  • Joined: 30 ноября 05

Posted 25 сентября 2018 - 07:03

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

#4 User is offline   devlater Icon

  • Участник
  • Pip
  • Group: Участник
  • Posts: 43
  • Joined: 30 марта 15

Posted 25 сентября 2018 - 08:25

Цитата(Grizzzly @ Sep 24 2018, 23:47) <{POST_SNAPBACK}>
CRC не исправляет ошибки, а позволяет их обнаружить,


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

Цитата(Grizzzly @ Sep 24 2018, 23:47) <{POST_SNAPBACK}>
чтобы, например, сделать запрос о повторной передачи.


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

Цитата(Grizzzly @ Sep 24 2018, 23:47) <{POST_SNAPBACK}>
Нужно смотреть в сторону FEC,


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

Цитата(Grizzzly @ Sep 24 2018, 23:47) <{POST_SNAPBACK}>
но хотелось бы всё-таки каких-то цифр в дБ. Хотя бы примерно.


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

Цитата(uriy @ Sep 25 2018, 04:03) <{POST_SNAPBACK}>
вместо DTMF лучше используйте FSK и помехоустойчивое кодирование fec, рида-соломона, хэмминга.


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

#5 User is offline   iliusmaster Icon

  • Частый гость
  • PipPip
  • Group: Участник
  • Posts: 181
  • Joined: 15 апреля 17

Posted 25 сентября 2018 - 08:39

1. Точно определить параметры шума среды. То есть определить критические случаи зашумления среды передачи. Для начала выйти на улицу с калиброванным микрофоном и посмотреть спектр частот уличного шума и его амплитуду. Опередив параметры среды передачи в худшем случае вы сможете выбрать частоты связи и необходимые уровни сигналов на выходе источника и на входе приемника.
2. Уменьшайте пакет посылки и увеличивайте избыточность. Необходимо сильно увеличивать накладные расходы на передачу. Систем помехозащищенного кодирования много. Проверить их действенность и выбрать лучший для вашего порименения - месяц времени.
3. Пробуйте организовать связь на многих частотах. Потому как в один конкретный момент времени обычно преобладает шум какой-либо одной частоты.
Передали на одной частоте - перескочили на октаву вверх - передали на другой частоте - еще на октаву вверх. На стороне приемника сложили пакеты полученные на разных частотах в одну кучу и сравнили друг с другом. Мажоритированием выбрали верный.
4. Увеличивать направленность излучателей и приемников. Есть параболические системы и системы органного типа. Увеличивают С/Ш очень значительно.

0

#6 User is offline   devlater Icon

  • Участник
  • Pip
  • Group: Участник
  • Posts: 43
  • Joined: 30 марта 15

Posted 25 сентября 2018 - 08:58

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

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

Цитата(iliusmaster @ Sep 25 2018, 05:39) <{POST_SNAPBACK}>
1. Точно определить параметры шума среды. То есть определить критические случаи зашумления среды передачи. Для начала выйти на улицу с калиброванным микрофоном и посмотреть спектр частот уличного шума и его амплитуду.


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

Цитата(iliusmaster @ Sep 25 2018, 05:39) <{POST_SNAPBACK}>
Опередив параметры среды передачи в худшем случае вы сможете выбрать частоты связи и необходимые уровни сигналов на выходе источника и на входе приемника.


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

Цитата(iliusmaster @ Sep 25 2018, 05:39) <{POST_SNAPBACK}>
2. Уменьшайте пакет посылки и увеличивайте избыточность. Необходимо сильно увеличивать накладные расходы на передачу. Систем помехозащищенного кодирования много.


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

Цитата(iliusmaster @ Sep 25 2018, 05:39) <{POST_SNAPBACK}>
Проверить их действенность и выбрать лучший для вашего порименения - месяц времени.


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

Цитата(iliusmaster @ Sep 25 2018, 05:39) <{POST_SNAPBACK}>
3. Пробуйте организовать связь на многих частотах. Потому как в один конкретный момент времени обычно преобладает шум какой-либо одной частоты.
Передали на одной частоте - перескочили на октаву вверх - передали на другой частоте - еще на октаву вверх.


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

Цитата(iliusmaster @ Sep 25 2018, 05:39) <{POST_SNAPBACK}>
На стороне приемника сложили пакеты полученные на разных частотах в одну кучу и сравнили друг с другом. Мажоритированием выбрали верный.


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

Цитата(iliusmaster @ Sep 25 2018, 05:39) <{POST_SNAPBACK}>
4. Увеличивать направленность излучателей и приемников.


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

Цитата(iliusmaster @ Sep 25 2018, 05:39) <{POST_SNAPBACK}>
Есть параболические системы и системы органного типа. Увеличивают С/Ш очень значительно.


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

This post has been edited by devlater: 25 сентября 2018 - 08:58

0

#7 User is offline   devlater Icon

  • Участник
  • Pip
  • Group: Участник
  • Posts: 43
  • Joined: 30 марта 15

Posted 25 сентября 2018 - 16:11

Цитата(devlater @ Sep 25 2018, 05:58) <{POST_SNAPBACK}>
1. Точно определить параметры шума среды. То есть определить критические случаи зашумления среды передачи. Для начала выйти на улицу с калиброванным микрофоном и посмотреть спектр частот уличного шума и его амплитуду.
>>Да, наверное придется так и сделать.


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

This post has been edited by devlater: 25 сентября 2018 - 16:14

0

#8 User is offline   Aner Icon

  • Гуру
  • PipPipPipPipPipPip
  • Group: Свой
  • Posts: 4 869
  • Joined: 29 февраля 08

Posted 25 сентября 2018 - 18:21

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

#9 User is offline   rx3apf Icon

  • Гуру
  • PipPipPipPipPipPip
  • Group: Участник
  • Posts: 3 834
  • Joined: 14 июня 06

Posted 25 сентября 2018 - 19:48

Цитата(devlater @ Sep 25 2018, 08:58) <{POST_SNAPBACK}>
Можно своими словами о FEC?

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

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

#10 User is offline   devlater Icon

  • Участник
  • Pip
  • Group: Участник
  • Posts: 43
  • Joined: 30 марта 15

Posted 26 сентября 2018 - 14:20

Цитата(Aner @ Sep 25 2018, 16:21) <{POST_SNAPBACK}>
И вот такой вопрос: Приемник DTMF сигнала, аппаратно как сделан? Программно и сами писали прогу? Если да, то понятно почему такое у вас с приемом.


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

Цитата(rx3apf @ Sep 25 2018, 17:48) <{POST_SNAPBACK}>
Можно посмотреть аппликухи от TI, где расписан алгоритм передачи и приема с использованием FEC, обеспечивающий совместимость с аппаратной реализацией в CC1100/1101.


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

Цитата(rx3apf @ Sep 25 2018, 17:48) <{POST_SNAPBACK}>
в следующей реализации, перешли на цифровое кодирование, фазовая модуляция несущей 1400 Hz (битовая скорость 1400/2.5=560 бит/сек). Результат был разительно лучше. Мало того, что система устойчиво работала и при достаточно паршивом радиоканала, в шумах, так она работала даже и на аудиоконтакте источник-микрофон, и даже и с двумя аудиоконтактами (на передающей и приемной стороне), работала на аудиоконтакте же и по телефонной линии.


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

0

#11 User is offline   Aner Icon

  • Гуру
  • PipPipPipPipPipPip
  • Group: Свой
  • Posts: 4 869
  • Joined: 29 февраля 08

Posted 26 сентября 2018 - 14:28

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

#12 User is offline   devlater Icon

  • Участник
  • Pip
  • Group: Участник
  • Posts: 43
  • Joined: 30 марта 15

Posted 26 сентября 2018 - 15:10

Цитата(Aner @ Sep 26 2018, 12:28) <{POST_SNAPBACK}>
Теперь понятно, что из-за плохого программного приемника DTMF сигнала у вас такое. Если бы поставили аппаратный (например MT8870 или их аналог) то таких проблем могли избежать. Все просто, тот фильтр с его полосой, подавлением за полосой, крутыми фронтами и тп. который в этом чипе сделан аппартатно программно реализовать на дешевом чипе не получится ну никак. Давно пройденная тема. У нас с использованием чипа проблем таких как у вас не было.


Да возможно. Но дело в том, что аппаратно не как.. Это два устройства на ARM процессорах.
Насчет MT8870, да юзал его, но увы и ах.. Аппаратно нечего модернизировать нельзя.
0

#13 User is offline   rx3apf Icon

  • Гуру
  • PipPipPipPipPipPip
  • Group: Участник
  • Posts: 3 834
  • Joined: 14 июня 06

Posted 26 сентября 2018 - 15:28

Цитата(devlater @ Sep 26 2018, 14:20) <{POST_SNAPBACK}>
Если не сложно, можно прямые ссылки.

Документы swra113a.pdf и swra313.pdf на сайте TI (DN504 и DN507).
Цитата
А вот тут пожалуйста по подробнее)

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

Цитата(devlater @ Sep 26 2018, 15:10) <{POST_SNAPBACK}>
Насчет MT8870, да юзал его, но увы и ах.. Аппаратно нечего модернизировать нельзя.

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

#14 User is offline   devlater Icon

  • Участник
  • Pip
  • Group: Участник
  • Posts: 43
  • Joined: 30 марта 15

Posted 27 сентября 2018 - 11:18

Я вот сейчас читаю, и не могу определится, что же в конечном счете мне необходимо?..
FSK, AFSK, PSK или же BPSK???
Обращу внимание, что данные передаются с динамика на микрофон, скорость не так важна, хотя желательна, ну к примеру за 1 секунду, нужно передать 20 символов.
Самое важное, - это достоверность переданных данных!!!

This post has been edited by devlater: 27 сентября 2018 - 11:19

0

#15 User is offline   mvm54 Icon

  • Участник
  • Pip
  • Group: Участник
  • Posts: 42
  • Joined: 29 ноября 07

Posted 27 сентября 2018 - 20:38

Цитата(devlater @ Sep 27 2018, 11:18) <{POST_SNAPBACK}>
Я вот сейчас читаю, и не могу определится, что же в конечном счете мне необходимо?..
FSK, AFSK, PSK или же BPSK???
Обращу внимание, что данные передаются с динамика на микрофон, скорость не так важна, хотя желательна, ну к примеру за 1 секунду, нужно передать 20 символов.
Самое важное, - это достоверность переданных данных!!!


Если действительно НАДО СДЕЛАТЬ, и чтобы нормально работало, возьмите за основу какой нибудь гироакустический модем,
как например http://rfdsp.ru/modem_ga.html. В них уже учтены все подводные камни, на какие можете напороться.

Если скоростью можно пожертвовать, то проще всего использовать BPSK, а информацию передавать в виде М-последовательности (несущая 1...10 кГц).
Здесь будет и помехоустойчивое кодирование, и защита от возможного эха (многолучевость), и на входе можно ставить усилитель-ограничитель:
- просто и работает как А-Калашникова.
Единственное условие - Система должна быть рассчитана на работу при отношении С/Ш < 0,5 в белом шуме.
0

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1
0