Перейти к содержанию
    

Возбуждается аппаратный фильтр на ADSP-21489 (SHARC)

Здравствуйте! Мне нужно отфильтровать сигнал в полосе 300Гц. АЦП офифровывает сигнал с частотой 700кГц. В ADSP-21489 програмно осуществляется предварительная фильтрация путем взитие среднего по 128 отсчетам. После этой фильтрации частота дискретизации равна 700/128=5,468 кГц. Далее я выполняю фильтрацию с помощью аппаратного БИХ фильтра на 6 биквадах. Коэффициенты расчитал с помощью матлаб-скрипта, приложенного к примеру кода с сайта AD. Полоса фильтра 300Гц. Я накапливаю 512 усредненных отсчетов и фильтрую их с помощью БИХ фильтра.

 

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

 

У меня пока появилась такая идея: при окончании фильтрации окна, сохраняется внутреннее состояние фильтра(dk1,dk2), но не сохраняется последнее выходное значение сигнала, из которого после первого шага фильтрации должно было бы сформироваться внутреннее состояние последней биквады.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! Мне нужно отфильтровать сигнал в полосе 300Гц. АЦП офифровывает сигнал с частотой 700кГц. В ADSP-21489 програмно осуществляется предварительная фильтрация путем взитие среднего по 128 отсчетам. После этой фильтрации частота дискретизации равна 700/128=5,468 кГц. Далее я выполняю фильтрацию ....

..простите, может я не в теме - но разве "взятие среднего по 128 отсчётам" вам обеспечивает достаточное подавление альясинга при такой большой децимации начальной тактовой частоты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Взятие среднего в цифровой форме не устранит наложение спектров) Перед АЦП стоит активный фильтр на операционном усилителе с полосой 2,5кГц. С учетом того что частота дискретизации АЦП 700kSPS, наложения спектров нет(ну практически нет). Микросхема MAX274, вне полосы пропускания подавление до 80 дБ.

Возможно я действительно чтото забыл указать, спасибо за уточняющие вопросы!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Вас не хватает разрядности в БИХ реализации звена. Ограничен либо умножитель - например его надо расширить в 1.5 - 2 раза.

 

Как Вы вообще работаете. Надо делать модель с учетом разрядности , нарисовать в simulink matlab. И сами увидите при моделировании когда ограничение наступит (при какой входно амплитуде) и где.

Потом расширите умножитель и сумматоры - и заработает.

 

p.s. КИХ фильтры моделировать и предсказывать значительно проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В процессоре ADSP-21489 есть режим работы аппаратного БИХ-фильтра в режиме 40бит. Если я использую эту возможность, то есть вероятность что выбросы в начале окна появляться не будут?

Вообще сейчас все работает с 32 битами, причем разрядность АЦП 14бит. Данный на фильтр подаются с типом float.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

коэффициенты БИХ матлаб выдал целочисленные или флоат нигде ничего не отбросили и точность не потеряли?

попробуйте в fdatool позадавать опции арифметики.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Матлаб выдал коэффициенты в формате float

а в вашем фильтре флоат?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

остается одно - проверить в матлабе как будет работать фильтр при тех же разрядностях сумматоров и умножителей, как вам написал litv, только я использовал fdatool а не симулинк.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо! У меня воникла еще одна проблема, та децимация которую я делаю в начале, из 700кГц делая 5,5кГц, беря среднее окнами по 128 отсчетов приводит к наложению спектров! Мне следовало бы брать простое скользящее среднее, а потом делать децимацию, в соответствии с АЧХ полученного фильтра скользящего среднего. В результате я бы получал гораздо больше децимированных отсчетов чем прежде и фильтровал их с помощью БИХ фильтра. Не подскажите как бы мне поэффективнее провести первоначальную фильтрацию, возможно не используя скользящее среднее?

 

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

Изменено пользователем SergeyAB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я пришел к выводу что это не возбуждение фильтра, а так называемый "звон". И у меня складывается мнение что его причина в методе фильтрации, я использую аппаратную фильтрацию на БИХ. Причем я пробывал перейти на КИХ но получил такой же звон, только он был в середине окна (окно=числу коэффициентов в моем случае для КИХ)

 

При аппаратной цифровой фильтрации на SHARC через фильтр прогоняется одно окно входных отсчетов, потом второе и т.д.

А в идеале данные должны идти подряд, непрерывно, т.е. лишь при поступлении нового входного отсчета из фильтра должен выйти новый выходной отсчет.

При оконной фильтрации в конце фильтрации окна начальные ступени фильтра начинают освобождаться, не получая новых отсчетов, которые находяться в буфере следующего окна.

 

Знатоки DSP от AD помогите пожалуйста! Как сделать так чтобы только при поступлении нового отсчета фильтр делал "шаг"???

 

Или моя проблема в чем то другом? Я приложил график отфильтрованного окна в 512 отсчетов, БИХ фильтр на 6 биквадах. Звон(выброс) в начале!

 

PS для уменьшения звона я попытался использовать фильтр с пологой АЧХ Window-Gaussian в fdatool, но это слегка уменьшило звон, но недостаточно.

post-60853-1368828318_thumb.jpg

Изменено пользователем SergeyAB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я пришел к выводу что это не возбуждение фильтра, а так называемый "звон". И у меня складывается мнение что его причина в методе фильтрации, я использую аппаратную фильтрацию на БИХ. Причем я пробывал перейти на КИХ но получил такой же звон, только он был в середине окна (окно=числу коэффициентов в моем случае для КИХ)

 

При аппаратной цифровой фильтрации на SHARC через фильтр прогоняется одно окно входных отсчетов, потом второе и т.д.

А в идеале данные должны идти подряд, непрерывно, т.е. лишь при поступлении нового входного отсчета из фильтра должен выйти новый выходной отсчет.

При оконной фильтрации в конце фильтрации окна начальные ступени фильтра начинают освобождаться, не получая новых отсчетов, которые находяться в буфере следующего окна.

 

Знатоки DSP от AD помогите пожалуйста! Как сделать так чтобы только при поступлении нового отсчета фильтр делал "шаг"???

 

Или моя проблема в чем то другом? Я приложил график отфильтрованного окна в 512 отсчетов, БИХ фильтр на 6 биквадах. Звон(выброс) в начале!

 

PS для уменьшения звона я попытался использовать фильтр с пологой АЧХ Window-Gaussian в fdatool, но это слегка уменьшило звон, но недостаточно.

 

Все как-то странно...

Против алиазинга в Вашем случае хорошо бы CIC-фильтр с децимацией на 128 (в матлабе и симулинке есть), необходимое подавление проверяйте за полосой 5468/2-300= 2400 Гц.

Основной фильтр проще будет сделать КИХ. Но проблема, похоже, не в самом фильтре, а в блоковой обработке.

SHARC сам не программировал, но у AD, помнится, были примеры кода для непрерывной фильтрации.

Изменено пользователем polyakovav

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...