Форум программистов, компьютерный форум, киберфорум
Цифровая обработка сигналов
Войти
Регистрация
Восстановить пароль
 
 
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
1

Как сделать слышимым низкочастотный сигнал (20-40 Гц)

17.03.2020, 15:32. Просмотров 322. Ответов 22

Доброго времени суток! Возникла достаточно интересная задача, связанная с выведение акустического сигнала в потоке на наушники. Загвоздка оказалась в том, что полезный диапазон частот - от 20 до 40 Гц. Для уха человека эта задача достаточна сложна (мы хорошо воспринимаем все в диапазоне от 1000 до 2000 Гц). Ну и не каждые наушники/динамики смогут выдать такой звук.

Вместе с этим, задача состоит в том, чтобы по минимуму исказить сигнал (в моем случае - тоны сердца) и его спектральные характеристики.

Попробовал сделать все в наглую - получил спектр и перенес нужный диапазон в область больших частот с наложением окна Блекмана-Харриса. На 100 Гц на слух сигнал вполне подходит по качеству (мои наушники позволяют и 20-40 Гц выслушать, если на максимум все выкрутить). Дальше (несущаяя 300 Гц и выше) - уже ожидаемые звуки сонара от подводной лодки.


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

Заранее спасибо за ответы!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2020, 15:32
Ответы с готовыми решениями:

Как демодулировать низкочастотный прямоуольный сигнал?
Мне нужно собрать схемку, на выходе которой будет единица (+5 В), при наличии входного...

Можно ли сделать Repeat сигнал с помощью USB Wi Fi чтобы сигнал дошел до улицы
Я с ноутбука раздал Wi Fi интернет, у мя в ноуте DSL(через UTP) интернет, раздал с командной...

Как в lazarus сделать звуковой сигнал?
Как в lazarus сделать звуковой сигнал ? ' \a ' не работает

Как сделать нулевой ШИМ сигнал на avr
Здравствуйте! Написал программу, которая генерирует ШИМ в зависимости от напряжения, которое...

22
1130 / 488 / 208
Регистрация: 11.10.2018
Сообщений: 2,738
17.03.2020, 16:02 2
Цитата Сообщение от DimKaKiber Посмотреть сообщение
(мы хорошо воспринимаем все в диапазоне от 1000 до 2000 Гц)
- ну я бы так не сказал. Ниже 1(кГц) можно услышать звуки вполне хорошо.

Добавлено через 16 минут
Ну Вы же умеете частоты переносить, перенесите на СЧ да и все 1-2(кГц).
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
17.03.2020, 16:17  [ТС] 3
FFPowerMan, Результат линейного частотного переноса, мягко говоря, не понравился. Хочется слушать полезный не измененный сигнал, а не сигнал от сонара ...проблема в этом. А как корректно преобразовать такой низкочастотный сигнал и услышать его без напряга пока не понял. Терзают сомнения что вообще можно это сделать.
0
1130 / 488 / 208
Регистрация: 11.10.2018
Сообщений: 2,738
17.03.2020, 16:18 4
А как Вы вообще перенесли?
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
17.03.2020, 16:26  [ТС] 5
FFPowerMan, Код на работе ((. Решил поспать сегодня)
Если в вкратце, то забрал нужный частотный диапазон из мнимой и действительной частей БПФ и перенес его на Дельту равную новой несущей частоте. Все в левой части спектра. Правую обнулил. Затем убрал все частоты до нового частотного диапазона и после него. Т.е. оставил только его ("фильтр полосовой"). Все с оглядкой на частотное разрешение текущее. Затем сделал обратное преобразование и домножил результат на окно Бэкмена-Харриса по размеру входной выборки.
Первое что в голову пришло реализовал
0
1130 / 488 / 208
Регистрация: 11.10.2018
Сообщений: 2,738
17.03.2020, 16:38 6
Цитата Сообщение от DimKaKiber Посмотреть сообщение
из мнимой и действительной частей БПФ
- я думал, что только из действительной или только из мнимой надо брать.
Цитата Сообщение от DimKaKiber Посмотреть сообщение
Все в левой части спектра.
- в левой части спектра действительная часть.

Добавлено через 2 минуты
Так взяли бы просто сэмплы кардиограммы, сжали бы по времени и размножили бы на временной оси за 1(с) и в бесконечный цикл.

Добавлено через 1 минуту
Во сколько раз увеличили число 1 периода сэмплов - во столько же раз и увеличится частота звука.
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
17.03.2020, 16:39  [ТС] 7
FFPowerMan, все перепутал)
В векторах разложения сигнала по синусу и косинусу.
0
1130 / 488 / 208
Регистрация: 11.10.2018
Сообщений: 2,738
17.03.2020, 16:40 8
Кто все перепутал? Я просто идею предложил.
Синусно-косинусное преобразование - это и есть Преобразование Фурье.
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
17.03.2020, 16:45  [ТС] 9
FFPowerMan, я перепутал )

туплю, но как период сэмплов узнать? Амплитудное представление то по любому поменяется?
0
1130 / 488 / 208
Регистрация: 11.10.2018
Сообщений: 2,738
17.03.2020, 17:01 10
Почему амплитуда-то поменяется? Вам нужно ее оставить как есть. Время только изменить, я это описал уже в своем сообщении №6.
Цитата Сообщение от DimKaKiber Посмотреть сообщение
но как период сэмплов узнать?
- у АЦП есть частота дискретизации. Откуда Вы берете сигнал?
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
17.03.2020, 18:09  [ТС] 11
FFPowerMan, с АЦП

Есть конечно. Я ее еще и поднимаю до 44.1 кГц. Один пакет около секунды как раз по времени. Может и меньше быть. Как настройки будут установлены.
0
1130 / 488 / 208
Регистрация: 11.10.2018
Сообщений: 2,738
17.03.2020, 18:56 12
Ну вот, возьмите 1 период кардиограммы, уменьшите время длительности 1 сэмпла и накопируйте их в 1(с) и в бесконечный цикл. А то у Вас как-то сложно сделано. Да и как у Вас сделано, мне кажется, можно попроще сделать. Просто гармоники только левой реальной части перенести в частоту повыше и все.
0
2402 / 1721 / 356
Регистрация: 11.09.2009
Сообщений: 6,321
17.03.2020, 21:11 13
Цитата Сообщение от DimKaKiber Посмотреть сообщение
задача состоит в том, чтобы по минимуму исказить сигнал
Другими словами, предполагается какой-то анализ тонов сердца? На слух, сравнивая с каким-то словесным описанием?

Если так, то может заменить слуховой анализ визуальным? Он и более точным будет. На картинках-образцах нужные характерные участки указать легче, чем описывать нюансы звука. Да и отличия заметны лучше. Не у всех врачей музыкальный слух, а очки одеть может каждый.
А вывести осциллограмму с микрофона можно хоть на экран смартфона. Это не так сложно. Да и по сравнению с наушниками (а к ним ещё усилитель, питание...) на сегодня это в общем-то не очень большая разница в доступности "инструмента".
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
18.03.2020, 05:45  [ТС] 14
i8085, Только вывести, чтобы на слух можно было оценить шумы или сердце регистрируются. Обработка - процесс параллельный и никак не связанный с выводом. Там своя магия. И чтобы ее не нарушать - два процесса разделены. Поэтому могу творить с сигналом все, что нужно и не заботиться даже о его обратном восстановлении.
0
2402 / 1721 / 356
Регистрация: 11.09.2009
Сообщений: 6,321
18.03.2020, 08:50 15
Цитата Сообщение от DimKaKiber Посмотреть сообщение
могу творить с сигналом все, что нужно
Я всего лишь предложил посмотреть на "что нужно" с другой стороны - "а что исходно-то нужно?". Часто после "незамыленного" взгляда на проблему, находится простое, эффективное, но совершенно другое решение.
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
18.03.2020, 09:26  [ТС] 16
i8085, Совершенно с вами согласен насчет незамыленого взгляда. Но этот вариант с коллективом обсуждали и меня убедили, что картинку поймут не все, а звуки все выслушают. Развлекаюсь теперь

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

Приложу к посту (архив) обработанные (линейным переносом диапазона частот о котором написал выше) и сырые данные. Динамики телефона только высокочастотную запись выдают.
0
Вложения
Тип файла: 7z Desktop.7z (8.31 Мб, 0 просмотров)
Модератор
8199 / 6070 / 810
Регистрация: 14.02.2011
Сообщений: 21,057
18.03.2020, 10:31 17
DimKaKiber, врачи по слуху как раз и определяют работу сердца(шумы, срабатывание клапанов, аритмия...)
при переносе в другую частотную область смогут ли они это сделать?
а сам перенос, в теории, достаточно прост
записываем с одной частотой, считываем с другой
например записали с частотой 1000 Гц, воспризвели с частотой 10000 Гц, частота увеличилась в 10 раз
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
18.03.2020, 10:42  [ТС] 18
ValeryS, Тут больше вопрос к оборудованию, с которым они это делают. Акушерский стетоскоп (в моем случае) для пациента в течении необходимого времени записи вытерпеть нереально) Поэтому применяется более щадащий датчик, с которого и идут такие записи.

записываем с одной частотой, считываем с другой например записали с частотой 1000 Гц, воспризвели с частотой 10000 Гц, частота увеличилась в 10 раз
Не понимаю сути метода (его вчера еще FFPowerMan описывал). Я получаю запись с частотой дискретизации 1000 Гц, имею в ней полезный сигнал. Затем для проигрывателя (плохой Andriod...) повышаю частоту дискретизации до 44,1 кГц. Полезный сигнал находится в той же области, но появляются (что нормально) искажения в области 1 кГц. Этот результат я "причесываю" БПФ фильтром (на неделе прикручу IIR - он лучше будет работать) и его нужно выслушать.
Даже если я сейчас прорежу частоты, то полезный сигнал будет в той же области, т. к. сжать сигнал надо будет больше чем в 44.1 раза, чтобы начать увеличивать частоту полезного сигнала при его обратном ресемплировании в нужную сторону (44.1 кГц). Можно, конечно, проредить исходный сигнал и потом его ресемплировать уже...
0
Модератор
8199 / 6070 / 810
Регистрация: 14.02.2011
Сообщений: 21,057
18.03.2020, 11:18 19
Цитата Сообщение от DimKaKiber Посмотреть сообщение
Я получаю запись с частотой дискретизации 1000 Гц, имею в ней полезный сигнал. Затем для проигрывателя (плохой Andriod...) повышаю частоту дискретизации до 44,1 кГц
Ты там с Фурье балуешся?
смотри
частота 1 Гц отсчеты 0 255 0 255 0 255
теперь если эти отсчеты проирать с частотой 10 Гц
то частотка поднимется в 10 раз , но и время воспроизведения уменьшится в 10 раз
как пластинку записаную на 33 об/мин проиграли на 78
Цитата Сообщение от DimKaKiber Посмотреть сообщение
Акушерский стетоскоп
т.е тебе нужно контролировать плод?
0
11 / 11 / 0
Регистрация: 20.11.2013
Сообщений: 142
18.03.2020, 11:45  [ТС] 20
ValeryS, Типо того.....но здесь все идет по плану и в нужную сторону

Прошлушка - отдельный совсем процесс. Модификация процесса работы с ПО и железкой идет.

Для передискретизации пользуюсь обычным фильтром Фэрроу) Фурье использую для фильтрации. На момент реализации это казалось хорошей идеей....Типа быстро и все такое...Только не учел, что будет задержка в размер перекрытия + время набора/передачи данных железякой. Но это не беда совсем. Решаемо.
А то что неслышно ничего - напрягает. Мне то в моих ушах нормально (для отладки основных алгоритмов и т.д.), остальным не очень.

Идею примерно понял. Сейчас пока с амплитудной модуляцией играюсь.
Потом если тяжелый средства не помогут применю этот метод.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2020, 11:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как сделать connect() в Class2, если сигнал посылается из Class1?
Вручную посылаю сигнал посредством emit из Class1. Как принять его, что написать в connect() в...

Объект испускает сигнал и этот сигнал принимает 100 объектов, как они будут обработаны?
Вопрос: Объект испускает сигнал и этот сигнал принимает 100 объектов, как они будут обработаны? ...

Как сделать, чтоб компьютер выдавал при загрузке только один звуковой сигнал?
Здравствуйте и с Новым Годом всех!! Хочу спросить может знаете как сделать чтоб компьютер выдавал...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.