Реализация низкочастотных вейвлет-фильтров Добеши в Matlab

Я пытался реализовать эти два фильтра в MATLAB:

Daubechies 4 недесиммированный вейвлет 3,75 Гц e вейвлет 7,5 Гц Daubechies 4 нечеткий набор фильтров 7,5 Гц

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

У кого-нибудь есть опыт с этим?

Я пробовал:

movementOut = movementIn;
% Set Daubechies wavelet name.
wname = strcat('db',num2str(order));
% Compute the corresponding scaling filter.
daubechies=dbwavf(wname);
movementOut = filter(daubechies,1,coordinates_values);
%movementOut = filtfilt(daubechies,1,coordinates_values);

Я пробовал и filter, и filtfilt, но результат кажется очень похожим. Я обрабатываю данные Kinect Z (варьирующиеся от 4,5 м до 1,0 м, а затем снова до 4,5 м), но, похоже, я не вижу никакой разницы с использованием вейвлетов. В современных подходах часто используются вейвлеты db4.

Сомнения:

  1. это правильная реализация?

  2. как я могу установить частоту среза?

  3. как реализовать банк фильтров?

Заранее спасибо.


person 16per9    schedule 22.11.2016    source источник
comment
Без какой-либо предыстории довольно сложно понять, что именно вы пытаетесь сделать. Это правда, что вы хотите использовать фильтр нижних частот? Почему вы хотите применять вейвлеты? Какая частота дискретизации сигнала? Вы стремитесь к применению фильтра в реальном времени? Пробовали ли вы более простые конструкции фильтров, такие как масляный фильтр?   -  person Diphtong    schedule 29.11.2016
comment
@Diphtong да, я хочу фильтр нижних частот с db4 с определенной частотой среза. Я хочу применять вейвлеты, потому что хочу воспроизвести современную работу, сделанную конкретными авторами. Моя фс = 200 Гц. Фильтр для использования в pos-обработке. Я уже реализовал фильтры Баттерворта, и они работают нормально. Я просто могу найти правильное решение для реализации db4 с частотами среза.   -  person 16per9    schedule 29.11.2016
comment
Хотя я не могу ответить на ваш вопрос, я могу дать несколько советов: Filtfilt, скорее всего, не лучшая идея. Кроме того, если вы хотите реализовать этот вейвлет-фильтр, вам нужно получить хорошую книгу по вейвлетам и начать с основ. Речь идет не о реализации, а о базовом понимании (которого у меня тоже нет). Мне эта тема кажется довольно сложной. Скорее всего, это будет стоить вам больше месяца. Напоследок следует помнить, что в цифровом фильтре частота среза зависит от частоты дискретизации. Вам лучше выразить частоту среза как долю частоты Найквиста.   -  person Diphtong    schedule 29.11.2016
comment
@Diphtong, да, это основы работы с фильтром / фильтром для использования фильтра Баттуорта. вы вычисляете отношения на основе этих частот, и это довольно просто реализовать. Но по какой-то причине реализация daubechies с добавленной частотой отсечки, похоже, не существует (я не могу найти ни одного примера с обычной и проверенной реализацией)   -  person 16per9    schedule 30.11.2016


Ответы (1)


Мне не совсем понятно, что вы хотите делать, но вам нужно использовать вейвлет-фильтры в вейвлет-алгоритмах. У вас есть набор инструментов для вейвлетов? Хорошая документация!

Вейвлет-преобразования выполняют полосовую фильтрацию, поэтому вы можете использовать другой алгоритм для своих целей. Чтобы увидеть, что будет в вашем сигнале 3,75 Гц или 7,50 Гц, вы можете вычислить верхнюю и нижнюю границы, если вы знаете частоту дискретизации вашего входа.

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

Имейте в виду, что быстрое вейвлет-преобразование действительно использует понижающую дискретизацию, поэтому оно не является «недесиммированным». Есть несколько способов сделать это в наборе инструментов вейвлета, в WaveLab и других местах ( обзор см. в этом документе). Еще немного чтения может быть хорошей идеей, ссылки в этой статье должны помочь.

Последнее предупреждение: имя db4 иногда используется для фильтров с 4 коэффициентами (2 исчезающих момента), а иногда и для фильтров с 4 исчезающими моментами (8 коэффициентов)! Google Daubechies 4, и вы найдете и то, и другое.

person alle_meije    schedule 27.07.2020