реклама на сайте
подробности

 
 
> Формирование акустического импульса, без эха
phantom
сообщение Nov 17 2008, 20:13
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 13-05-05
Пользователь №: 4 986



Допустим есть у нас трубопровод. На некотором расстоянии от одного конца установлен динамик излучающий импульсы. Около динамика, в трубе, установлен микрофон, который эти имульсы записывает. При попытке посылки импульса получаем резкое искажение формы сигнала записанного микрофоном от излучаемого динамиком (появляются хвосты). Происходит это от того, что во время формирования импульса на него накладываются отражения от ближайшего конца трубопровода. Вопрос: существуют ли адаптивные алгоритмы, способные сформировать заданную форму импульса вне зависимости от характера начальных отражений (поскольку динамик может устанавливаться в трубы разной начальной конфигурации)? Основной критерий формирователя - малая длина полученого импульса.


--------------------
О сколько нам открытий чудных ...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
phantom
сообщение Nov 20 2008, 15:30
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 13-05-05
Пользователь №: 4 986



fontp
Пробовали запихнуть в Вашу программу наши сигналы - тот, что подается на динамик, и записанный в начале трубы, причем в качестве входного пробовали шум, кусок синусоиды и еще несколько вариантов. Проблема в том, что отклик достаточно длинный - пару тысяч отсчетов, так что при небольшом количестве отсчетов ИХ фильтра естественно ничего не получается, а побольше его сделать проблематично - даже для тестовых данных (случайный сигнал на входе и свернутый со случайной ИХ) длиной 10200 и порядком фильтра 1000 fir_covar возвращает код ошибки (-1,-2), а коэффициенты считаются только до 544-го (остальные нули). Чтоб считались все коэффициенты и не было ошибки, нужно, чтобы количество отсчетов сигнала и отклика было раз в 100 больше порядка фильтра (для тестового сигнала, для наших так и не получилось ничего). В то же время из статьи можно понять, что вроде достаточно данных всего в 2 раза больше порядка. То ли есть какие-то нюансы в реализации алгоритма, то ли я идею неправильно понимаю?


--------------------
О сколько нам открытий чудных ...
Go to the top of the page
 
+Quote Post
fontp
сообщение Nov 20 2008, 15:50
Сообщение #3


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(phantom @ Nov 20 2008, 18:30) *
fontp
Пробовали запихнуть в Вашу программу наши сигналы - тот, что подается на динамик, и записанный в начале трубы, причем в качестве входного пробовали шум, кусок синусоиды и еще несколько вариантов. Проблема в том, что отклик достаточно длинный - пару тысяч отсчетов, так что при небольшом количестве отсчетов ИХ фильтра естественно ничего не получается, а побольше его сделать проблематично - даже для тестовых данных (случайный сигнал на входе и свернутый со случайной ИХ) длиной 10200 и порядком фильтра 1000 fir_covar возвращает код ошибки (-1,-2), а коэффициенты считаются только до 544-го (остальные нули).


Куда Вам столько много? Это подгонка. Порядок нужно ограничивать в вызове функции.

Обычно порядок увеличивают только до тех пор пока ошибка уменьшается резко. Обычно ошибка снижается сначала более резко, а потом менее резко. На перегибе останавливаются :-)
Дальше - это всё подгонка под шум. Так моделируются FIR-системы, есть там специальная даже стат-наука по выбору порядка.

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


Это всё ещё без учета того, что вам вообще-то нужен скорее обратный фильтр, чем прямой. Т.е. Ваша задача больше похожа на эквалайзер, чем на эхоподавитель, причем не нужно стремиться к идеальной форме (дельта-функции), поскольку у Вас реакция запаздывающая и идеальную компенсацию получить нельзя. Мне кажется так
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 22:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016