информационный портал по вопросам биомедицинской инженерии

Сейчас на сайте 0 пользователей и 0 гостей.

Вход в систему

аватар: Аль-Джариб Мохаммед Хасан
Содержание
Введение
Полиномиальная интерполяция. Представление полиномов
Ортогональные полиномы Лагранжа. Фильтр Фарроу
Модифицированный фильтр Фарроу
Примеры ресэмплинга
Выводы
Введение
Для изменения частоты дискретизации, или для сдвига дискретного сигнала по фазе на величину меньшую интервала дискретизации, необходимо представить дискретный сигнал в виде непрерывной функции времени и произвести его повторную дискретизацию (resampling) или как еще говорят передискретизацию.
Пусть имеется  отсчетов дискретного сигнала  . Необходимо произвести ресэмплинг и получить  отсчетов дискретного сигнала  как это показано на рисунке 1. Интервал дискретизации  . Черным показан исходный сигнал, красным - результат ресэмплинга.
Рисунок 1: Сигнал до и после ресэмплинга
Для того чтобы произвести ресэмплинг, необходимо по имеющемуся дискретному сигналу  произвести интерполяцию, т.е. восстановление непрерывного сигнала  затем рассчитать его дискретные значения для каждого нового  . Осуществлять интерполяцию можно различными способами, в данной статье речь пойдет о полиномиальной интерполяции.
Полиномиальная интерполяция. Представление полиномов
В курсе математического анализа доказывается, что через  точек проходит полином  степени  и при том только один. Например через две точки можно провести только одну прямую, через три точки только одну параболу и так далее. Соответственно через   также можно провести единственный полином степени , который будет являться результатом интерполяции, то есть:

(1)

где  - коэффициенты полинома, которые необходимо рассчитать на основе отсчетов сигнала Тогда подставляя нужные значения  можно произвести ресэмплинг.
Рассмотрим подробнее выражение (1), а именно раскроем сумму:

(2)

Вынесем в выражении (2)  за скобки:

(3)

Снова вынесем  за скобки:

(4)

Таким образом вынося возможное количество раз  за скобки, получим множество вложенных скобок:

(5)

Схема, позволяющая рассчитать значения полинома (5) при известных коэффициентах представлена на рисунке 2.
Рисунок 2: Расчет полинома для заданного  при известных коэффициентах
Первый умножитель выдает  потом прибавляется  получается «самые внутренние скобки» выражения (5). «самые внутренние скобки» умножаются на  и так далее собираются все скобки и получается  .
Рассмотрим пример для  . Получим кубический полином:

(6)

Схема для расчета кубического полинома представлена на рисунке 3.
Рисунок 3: Схема расчета кубического полинома
Таким образом нам необходимо получить коэффициенты полинома  на основе дискретных отсчетов . Для этого можно составить систему линейных уравнений:

(7)

Однако это требует решения системы уравнений при каждом новом значении . Кроме того для решения системы уравнений требуется обращение матрицы, что невозможно обеспечить в реальном времени, так как для обращении матрицы требуется операций умножения. Таким образом для построения кубического полинома при  требуется 64 умножения! Разумеется подобный подход не может быть применен на практике. Далее будет рассмотрен фильтр Фарроу (Farrow filter) построения кубического полинома при использовании всего трех умножений.
Ортогональные полиномы Лагранжа. Фильтр Фарроу
При построении фильтров Фарроу используются ортогональные полиномы Лагранжа. Тогда непрерывный сигнал может быть представлен как сумма произведения своих отсчетов  на соответствующий полином Лагранжа :

(8)

Полином Лагранжа это полином степени , равный единице при , где  - момент дискретизации  - го отсчета и равный нулю в другие моменты дискретизации. На рисунке 4 приведены кубические полиномы Лагранжа для
 
Рисунок 4: Полиномы Лагранжа для N=4 
Моменты дискретизации выбраны . Каждый из полиномов равен единице в одном из моментов дискретизации и равен нулю в остальных (это отмечено маркерами).
Очень важно на данном этапе понять, что для  отсчетов сигнала используется  разных полиномов. Каждый полином Лагранжа может быть записан в виде:

(9)

где  и  моменты дискретизации.
Распишем полиномы Лагранжа для  и моментов дискретизации :

(10)

Полиномы Лагранжа:

(11)

Подставим выражение для моментов дискретизации (10) в (11) и раскроем все скобки получим:

(12)

Аналогично можно расписать полиномы Лагранжа для любого .
Мы же доведем до конца синтез фильтров Фарроу для  с использованием кубических полиномов Лагранжа (12). При  выражение (8):

(13)

Поскольку каждый из полиномов Лагранжа — кубический полином, то  в выражении (13) есть сумма кубических полиномов, а значит  также кубический полином с коэффициентами .
Нам осталось только рассчитать данные коэффициенты. Подставим полиномы (12) в выражение (13):

(14)

Раскрываем скобки и приводим подобные относительно степеней, получим кубический полином:

(15)

Коэффициенты которого равны:

(16)

Каждый из коэффициентов кубического полинома (15) зависит от отсчетов исходного сигнала. При этом  зависят от четырех предыдущих значений. Таким образом коэффициенты полинома (15), в соответствии с формулой (16) можно получить используя КИХ-фильтры третьего порядка. На рисунке 5 показан пример расчета коэффициента полинома при помощи КИХ-фильтра.
Рисунок 5: Расчет коэффициента полинома  при помощи КИХ-фильтра треьего порядка
Аналогично можно нарисовать структуры КИХ-фильтров для расчета остальных коэффициентов.
Ранее на рисунке 3 была представлена схема кубического полинома при известных коэффициентах. Мы выяснили, что коэффициенты полинома представляют собой фильтры третьего порядка. Теперь мы можем представить окончательную структуру фильтра Фарроу третьего порядка. Данная структура представлена на рисунке 6.
Рисунок 6: Фильтр Фарроу третьего порядка
Фильтры для расчета коэффициентов полинома на основе отсчетов сигнала представлены разными цветами: – черным, – красным  – синим, – зеленым. Серым обозначены ветви с умножением на ноль, которые можно выбросить из схемы. По схеме нетрудно посчитать, что для расчета всех коэффициентов полинома требуется 9 нетривиальных умножений (умножения на ноль и  считаются тривиальными). Это уже не 64 как требуется для прямого решения системы уравнений, но еще и не три как было заявлено выше.
Модифицированный фильтр Фарроу
Давайте оптимизируем приведенную на рисунке 6 структуру. Для этого рассмотрим внимательно выражение для коэффициентов полинома (16). Нетрудно заметить, что:

(17)

К тому же можно обратить внимание:

(18)

Тогда из (18) следует что

(19)

Смотрим дальше:

 

(20)

 

Тогда из (20) следует:

 

(21)

 

Тогда выражения для коэффициентов полинома можно представить в виде:

 

(22)

 

Как и было заявлено всего три умножения! Схема реализующая расчет полинома на основе (22) носит название модифицированного фильтра Фарроу, представлена на рисунке 7.
Рисунок 7: Модифицированный фильтр Фарроу третьего порядка
На первом этапе формируется коэффициент (черные ветви), далее он используется для расчета коэффициента , синие ветви. Далее коэффициенты  и  используются для расчета . Коэффициент  просто снимается после второй задержки.
На этом синтез фильтра Фарроу третьего порядка можно считать законченным и подведем некоторые итоги:
1. Синтезирован фильтр Фарроу третьего порядка позволяющий получить значение непрерывного сигнала в любой момент времени на основе полиномиальной интерполяции.
2. Фильтр третьего порядка требует всего 3 операции умножения и может применяться в реальном времени.
До данного момента мы ничего не сказали о значении , которое требуется задавать для расчета . Фильтр синтезировался исходя из следующих начальных данных: имеется 4 отсчета, взятые в моменты времени. Соответственно, для того чтобы получить значение полинома  значение  должно быть в интервале от -2 до 1, при этом соответствует моменту дискретизации , а соответствует моменту дискретизации . Значение  должно быть пересчитано в интервал от -2 до 1.
Примеры ресэмплинга
Рассмотрим пример. Пусть имеется 4 отсчета сигнала , взятые с частотой дискретизации 1 кГц, т.е. сек ,  сек,  сек и сек (рисунок 8). Рассчитать значение сигнала в момент времени  cек.
Рисунок 8: Нормировка шкалы времени
Нормировка шкалы осуществляется по следующей формуле:

(23)

В нашем случае:
(24)
Рассчитаем коэффициенты полинома на основе модифицированного фильтра Фарроу третьей степени (22):

(25)

Тогда значение сигнала в момент времени  равно:

(26)

На рисунке 9 показан полином и значение полинома в заданной точке.
Рисунок 9: Пример расчета на основе фильтра Фарроу
Необходимо отметить, что используя такой подход нельзя рассчитывать значения за интервалом взятия четырех отсчетов т.е. Или . В предыдущем примере нельзя рассчитывать по данным четырем отсчетам значение сигнала например для, так как . Точнее рассчитать конечно можно, но значение не будет соответствовать действительности. С наибольшей точностью значения сигнала рассчитываются при нормированной от -1 до 0. На практике необходимо стремиться вести пересчет шкалы времени именно в интервал от -1 до 0.
Для изменения частоты дискретизации необходимо произвести пересчет времени для моментов дискретизации в интервал от -1 до 0. На рисунке 10 приведен пример ресэмплинга для сигнала с частотой 3 кГц (красный график), оцифрованного с частотой дискретизации 20 кГц на частоту 24 кГц (синий график).
Рисунок 10: Пример ресэмплинга сигнала при помощи фильтра Фарроу 3 порядка 
Выводы
Видно, что после ресэмплинга на один период колебания приходится целое число отсчетов (8 штук), в то время как до ресэмплинга наблюдались искажения вызванные нецелым количеством отсчетов на период колебания. Поскольку частота дискретизации увеличилась с 20 до 24 кГц (в 6/5 раз), то каждый шестой отсчет после ресэмплинга совпадает с каждым пятым отсчетом до ресэмплинга (помечены маркерами).
Таким образом, в статье приведен порядок расчета фильтра Фарроу на примере фильтра третьего порядка. Произведена модификация фильтра с целью сокращения вычислительных операций. Показан пример ресэмплинга сигнала для дробного изменения частоты дискретизации

ИСТОЧНИКИ ИНФАРМАЦИЙ:
http://allfpga.com/wiki/%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80_%D0%A4%D0%B0%D1%80%D1%80%D0%BE%D1%83_(Farrow_filters)
http://www.dsplib.ru/content/farrow/farrow.html

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <table> <td> <tr> <hr> <div> <span> <h1> <h2> <h3> <h4> <h5> <h6> <p> <pre> <adress> <center>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

15 + 2 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.

Комментарии