Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Документ'
Работа по привлечению клиентского потока, организация продаж банковских продуктов и операционного обслуживания клиентов физических/юридических лиц. О...полностью>>
'Автореферат'
Защита состоится «30» марта 2011 г. в 13-00 часов на заседании диссертационного совета Д 521.023.01 при Московской академии экономики и права по адре...полностью>>
'Документ'
И это не я. Главное событие этой недели ещё состоится. Через два дня миллионы людей будут отмечать День победы. И мы с Тиной решили сделать такой, спе...полностью>>
'Статья'
Уж не переборщил ли я? Великую пирамиду Гизы издревле окружает ореол величия, таинственности и загадочности, а тут вдруг такое… «Юрий, а у вас с мозг...полностью>>

О. И. инженер ОАО нии "Сапфир", ст преподаватель кафедры Эимпт дгту данная статья

Главная > Статья
Сохрани ссылку в одной из сетей:

Расчет цифровых БИХ-фильтров для процессоров семейства SHARC на языке С.

Перевод: Гасанов О.И. инженер ОАО НИИ "Сапфир", ст. преподаватель кафедры ЭиМПТ ДГТУ

Данная статья написана по материалу руководства по применению EE-83 компании Analog Devices.

В статье приводится методика расчета коэффициентов БИХ-фильтров с использованием программного пакета MatLab и реализации полученных фильтров на цифровых сигнальных процессорах (DSP) семейства SHARC компании Analog Devices на языке С. Задача расчета цифровых фильтров разбивается на несколько описанных ниже этапов.

I. Вычисление коэффициентов.

Как известно из теории цифровой обработки, дискретные фильтры представляют собой набор числовых коэффициентов, при выполнении операции свертки которых, с входными, нефильтрованными данными, получаются отфильтрованные выходные отсчеты.

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

Компания Analog Devices поставляет большое количество программного обеспечения, упрощающего разработку систем цифровой обработки сигналов на базе своих процессоров. В том числе и подпрограммы, реализующие алгоритмы дискретной фильтрации. Например, для процессоров семейства SHARC доступен заголовочный файл "filters.h", в котором реализованы подпрограммы "fir" – КИХ-фильтр и "iir" – БИХ-фильтр.

Для того чтобы рассчитанные в пакете MatLab коэффициенты БИХ-фильтров можно было использовать в качестве параметров при вызове указанной подпрограммы, их необходимо сначала соответствующим образом преобразовать. Предположим, что коэффициенты фильтра содержаться в массивах a и b. Эти массивы должны быть преобразованы таким образом, чтобы первый элемент массива стал последним, а последний, соответственно, первым. После этого должны быть изменены знаки у всех коэффициентов a[i]. Для пояснения необходимости изменения знаков у коэффициентов а[i] ниже приведена традиционная формула для реализации БИХ-фильтра:

Однако, в подпрограмме "iir", используется следующая формула:

Как видно из приведенных формул, для того чтобы был получен один и тот же результат, необходимо, чтобы знаки у коэффициентов а[i] были противоположны.

Для примера рассчитаем в пакете MatLab коэффициенты для полосового фильтра Баттерворта 2-го порядка (длина фильтра равна четырем).

1. Для отображения коэффициентов с полной точностью в командном окне MatLab, необходимо выполнить следующую команду:

>> format long;

2. Для расчета коэффициентов фильтра используется команда butter. Полоса пропускания фильтра выбрана равной (0,25*fs/2 – 0.3*fs/2), где fs частота дискретизации входного сигнала. Для получения более подробной информации по команде butter наберите команду help butter.

>>[b,a] = butter(2,[.25 .30]);

3. Для преобразования массивов указанным выше образом, выполним следующие команды:

>>b = flipud(b');

>>a = -flipud(a');

После выполнения всех указанных команд коэффициенты фильтра рассчитаны, преобразованы в нужный вид и содержатся в переменных a и b. Следующий шаг – создание двух текстовых файлов, в которых будут храниться найденные коэффициенты. В приведенном примере файлы называются acoeffs.dat и bcoeffs.dat. Просто скопируем найденные коэффициенты из командного окна MatLab в созданные файлы. Для вывода значения переменной в командное окно MatLab достаточно в качестве команды указать имя переменной. Для вывода на экран коэффициентов необходимо выполнить следующие команды:

» a

a =

-0.80080264666571

2.20207663611883

-3.29772682581611

2.46161336595189

-1.00000000000000

Так как количество коэффициентов а[i] равно длине фильтра, необходимо выбрать первые четыре значения и скопировать их в соответствующий файл (всегда исключается последний элемент, равный -1.000). Для коэффициентов b[i] выполнить те же действия, за исключением того, что должны быть скопированы все 5 коэффициентов. В каждом созданном файле вставить запятые в конце каждой строки (после каждого коэффициента), кроме последней. Так, к примеру, файл acoeffs.dat должен выглядеть следующим образом:

-0.80080264666571,

2.20207663611883,

-3.29772682581611,

2.46161336595189

II. Реализация цифровой фильтрации для процессоров семейства SHARC на языке С

Первое, что необходимо сделать – это включить заголовочный файл filters.h в проект. Для этого в начало программы включить следующую строку:

#include <filters.h>

Определить переменную, указывающую на длину фильтра следующим образом:

#define TAPS 4

Далее необходимо объявить и проинициализировать все переменные, необходимые для реализации фильтра. Убедитесь, что два файла, хранящие значения коэффициентов, находятся в том же каталоге, что и проект.

float dm states[TAPS+1];

float pm ACoeffs[TAPS] =

{

#include "acoeffs.dat"

};

float pm BCoeffs[TAPS+1] =

{

#include "bcoeffs.dat"

};

Перед первым вызовом подпрограммы фильтрации необходимо обнулить линию задержки фильтра.

int i;

for (i=0; i<TAPS+1; i++) states[i] = 0.0;

После инициализации линии задержки все готово для вызова подпрограммы фильтрации. Встроенная подпрограмма iir, в качестве входных параметров, требует входной отсчет (над которым требуется выполнить фильтрацию), указатели на 3 созданных ранее массива и переменную, равную длине фильтра (TAPS). Значение, возвращаемое подпрограммой, равно выходному отсчету фильтра.

output = iir(input, ACoeffs, BCoeffs, states, TAPS);

прилагаемый пример может быть скомпилирован для любого процессора семейства SHARC.



Скачать документ

Похожие документы:

  1. Отчет о работе базовых кафедр за 2008 год

    Публичный отчет
    В 2008 г. ЮНЦ РАН поддерживал работу 21 базовых кафедр: аквакультуры и водных биоресурсов Астраханского государственного технического ун-та (АГТУ); экономики развития региона (мировой экономики), регионоведения и международных отношений,
  2. Нии изменений в отдельные законодательные акты Российской Федерации в связи с совершенствованием правового положения государственных (муниципальных) учреждений

    Закон
    Настоящие Указания о порядке применения бюджетной классификации Российской Федерации (далее - Указания) разработаны в соответствии с положениями главы 4 и статьи 165 Бюджетного кодекса Российской Федерации, а также статьи 33 Федерального
  3. Кировской области Осостоянии окружающей среды Кировской области в 2009 году Региональный доклад Киров 2010 ббк 28. 081. 4(2Рос-4Кир)

    Доклад
    Г.В. Акпарисова, Т.Я. Ашихмина, Н.И. Бояршина, В.И. Бузмаков, А.Л. Бурков, Е.С. Вылегжанина, Л.Н. Гонцова, П.А. Горченко, Г.Н. Грухина, Т.А. Дёмшина, Е.
  4. Концепция развития государственного образовательного учреждения высшего профессионального образования

    Документ
    Государственное образовательное учреждение высшего профессионального образования «Горно-Алтайский государственный университет» (ГОУ ВПО ГАГУ) является высшим учебным заведением федерального подчинения, имеющим статус юридического лица.
  5. Улица Академика Скрябина. График работы конференции Открытие конференции, регистрация участников, пленарное заседание (2)

    Заседание
    Ректорат и научное студенческое научное общество ФГОУ ВПО «Московская государственная академия ветеринарной медицины и биотехнологии им. К. И. Скрябина» приглашают Вас принять участие в работе 84-й научной студенческой конференции

Другие похожие документы..