Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Запись звука с АЦП платы L791

Вы не вошли.

 Поиск | Регистрация | Вход 

21.03.2013 16:38:49
#51

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Запись звука с АЦП платы L791

файл промотреть до преобразования в wav хорошо бы... L-Graph например

Konstantin
22.03.2013 09:27:16
#52

Гость

Re: Запись звука с АЦП платы L791

Проблема решена! Огромное спасибо Александр Е.! Действительно ошибка была в самом неожиданном для меня месте... В wavheader. Переписывал его из своего старого файла на чистом С и был в нем уверен на 100%. А ошибка была в chunk data (два соседних поля местами перепутаны). Если у кого-то при преобразовании в wav файл будут похожие симптомы, проверяйте chunk data!

Konstantin
22.03.2013 09:33:22
#53

Гость

Re: Запись звука с АЦП платы L791

Остался последний проблемный момент. Как все-таки проще всего детектировать приход данных отдельно по каждому каналу АЦП? Возможно ли это? Можно ли писать данные только с одного канала средствами самой библиотеки Lcomp? Что-то вроде
channel->Data[0]
или таких возможностей нет?

22.03.2013 11:06:44
#54

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Запись звука с АЦП платы L791

нет

Konstantin
22.03.2013 11:26:13
#55

Гость

Re: Запись звука с АЦП платы L791

Ну хорошо, это решаемо, а по первой части вопроса, насчет детектирования прихода данных на какой-либо канал?

22.03.2013 11:36:07
#56

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Запись звука с АЦП платы L791

нет.все что может плата это стартовать по определенным в описании условиям синхронизации...

Konstantin
22.03.2013 14:10:04
#57

Гость

Re: Запись звука с АЦП платы L791

Печально, но, все равно, спасибо!

22.03.2013 14:18:01
#58

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Запись звука с АЦП платы L791

> Огромное спасибо Александр Е
Завсегда пожалуйста smile

Konstantin
26.03.2013 11:03:16
#59

Гость

Re: Запись звука с АЦП платы L791

Уважаемые разработчики. А подскажите, пожалуйста, как мне можно определить по потоку данных, что на канал n начал приходить сигнал? Дело в том, что при просмотре распарсенного файла со всех 16 каналов (т.е. 16 файлов без служебной информации, созданных после обработки большого файла методом data16[i] = (int16_t)((data32[i] & 0xFFFF) << 2)), в шестнадцатеричном редакторе, я вижу, что не все адреса равны 00.(хотя никакого оборудования к каналу не подключено и он висит на AGND). С чем это может быть связано?

26.03.2013 11:24:46
#60

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Запись звука с АЦП платы L791

"как мне можно определить по потоку данных, что на канал n начал приходить сигнал?"
- Логически средствами самого L-791 - никак. Только программным анализом того, какими амплитудными, частотными или временнЫми параметрами в Вашей задаче "сигнал" отличается от "несигнала".

26.03.2013 12:10:12
#61

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Запись звука с АЦП платы L791

> не все адреса равны 00.(хотя никакого оборудования к каналу не подключено и он висит на AGND). С чем это может быть связано?

То есть не все _данные_ равны 0? Конечно, ведь это не математический, а "физический" нуль, т.е. в отсуствие полезного сигнала - шум плюс погрешности измерений.
Простейший критерий по уровню - что-то типа abs(x) > EPSILON. Есть и более продвинутые методы: пара порогов с гистерезисом (чтобы бороться с частоколом "появлений" и "пропаданий" сигнала, когда он колеблется в районе порога), фильтрация во времени (чтобы отсекать случайные всплески от помех) и т.п.

26.03.2013 12:16:36
#62

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Запись звука с АЦП платы L791

>как мне можно определить по потоку данных, что на канал n начал приходить сигнал

Строго говоря, аналоговый сигнал (здесь - напряжение как функция времени) не может появиться или пропасть. На эту тему есть старая студенческая шутка:
Математика спросили: есть ли крылья у слона? "Есть", – ответил он, – "но они равны нулю."

Konstantin
26.03.2013 14:11:02
#63

Гость

Re: Запись звука с АЦП платы L791

Я уже понял, что средствами платы L791 эту задачу решить нельзя. Я думаю, что это возможно сделать при помощи программного фильтра шумов, который бы отрезал все, что ниже n децибел. Никогда, правда, ничего подобного не писал, но буду искать... Спасибо за совет.

26.03.2013 14:40:45
#64

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Запись звука с АЦП платы L791

Ну так я ж говорю - самый примитивный способ просто посчитать код АЦП для порога по уровню (если плясать от децибел - то пересчитать в вольты амплитуды, а оттуда в отсчеты).
Если шум может давать всплески выше порога, тогда надо фильтровать. Например, посчитать среднеквадратическое за какой-то интервал. Или просто avg(abs(x)).
Все целиком и полностью зависит от Вашей задачи. С цифровым сигналом можно делать много что, от простейших методов до самых сложных.

Konstantin
27.03.2013 10:37:10
#65

Гость

Re: Запись звука с АЦП платы L791

<"если плясать от децибел - то пересчитать в вольты амплитуды, а оттуда в отсчеты">

А пример пересчета не приведете? Вот например +10dB - это 0,71 В, а как в отсчеты потом преобразовать?

Да, бывают всплески выше порога. По шестнадцатеричному коду попадаются FFFF на пустых каналах, причем не так уж и редко... А фильтровать как? Через стандартный оконный FFT или делать сглаживающий фильтр?

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

27.03.2013 11:18:30
#66

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Запись звука с АЦП платы L791

FFFF это -1...

27.03.2013 17:45:31
#67

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Запись звука с АЦП платы L791

Поскольку, как Вы рассказывали, в тракте есть система  АРУ (в max9814), то селекция по уровню "сигнала" от "несигнала"  будет некорректна, поскольку при отсутствии сигнала АРУ будет пытаться "вытягивать" шумы до уровня сигнала. Здесь уже спектральные критерии нужно применять для селекции...

Konstantin
28.03.2013 10:39:44
#68

Гость

Re: Запись звука с АЦП платы L791

А можно подробнее о спектральных критериях селекции сигнала? Существуют какие-либо программные реализации? Если не трудно, укажите, пожалуйста, ссылку на материалы по этой теме...

28.03.2013 10:55:06
#69

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Запись звука с АЦП платы L791

Константин, эти вопросы рассматриваются в многочисленных трудах по теории информации. Если объяснять "на пальцах", то шум, как случайный процесс, более менее равномерно "размазан" по спектру сигнала. Т.е. для данного физического аналогового тракта будет характерно некое типичное статистическое распределение величин спектральных линий при отсутствии сигнала. Сигнал, как неслучайная информация, будет иметь спектр с явно преобладающими величинами некоторых спектральных линий над всеми остальными. На этом принципе и основаны спектральные алгоритмы...

28.03.2013 11:22:33
#70

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Запись звука с АЦП платы L791

В системах связи также применяют корреляционные принципы отделения сигнала от "несигнала", если, известно, что в сигнале есть информация с хорошими автокорреляционными свойствами.

Konstantin
28.03.2013 11:40:29
#71

Гость

Re: Запись звука с АЦП платы L791

<"В системах связи также применяют корреляционные принципы отделения сигнала от "несигнала", если, известно, что в сигнале есть информация с хорошими автокорреляционными свойствами.">
У речевой информации есть такие свойства?

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

28.03.2013 11:45:37
#72

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Запись звука с АЦП платы L791

Да, АРУ усложняет задачу радикально.

А что касается уровней (если не думать об АРУ) - 0xFFFF это дейтствительно -1, т.к. числа знаковые в дополнительном коде. "Горизонтальная прямая" с АЦП обычно и выглядит как случайная последовательность, колеблющаяся плюс-минус несколько единиц младшего разряда в окрестности константы. Если у Вас получается вместо (1, 0, -1) (1, 0, 65535), значит, неправильно задали тип.

Пересчет в вольты - см. параграф 5.3.10 l791_users_guide.pdf

28.03.2013 11:58:19
#73

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Запись звука с АЦП платы L791

При современных 24-битных  звуковых АЦП с большим динамическим диапазоном АРУ уже рассматривается как зло, или, как минимум, как устаревшее техническое решение. Скоро выложим информацию о новом АЦП от L-Card LTR24 с динамическим диапазоном более 110 дБ.

28.03.2013 11:59:01
#74

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Запись звука с АЦП платы L791

Константин, Александр имел в виду размазанность по частотоному спектру. Делается преобразование Фурье и рассматривается амплитуда как функция частоты.

Но я тут сунулся в datasheet на MAX9814 - похоже, что у него АРУ работает на ослабление сигналов с амплитудой больше определенного порога, т.е. приглушение громких звуков (до -20 дБ), чтобы не было искажений.
Такое АРУ, если я правильно понимаю, не должно вытягивать шумы, и Вам может хватить простого измерения амплитуды.

28.03.2013 14:50:58
#75

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Запись звука с АЦП платы L791

Да, я про частотный спектр говорил.
Суть любого АРУ - в сжатии динамического диапазона. Как следствие, уменьшается разница уровней шумов тракта без сигнала по отношению к уровню полезного сигнала (в этом смысле, шумы подтягиваются к сигналу)...