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

Фильтры в матлабе

Помогите найти примеры, как пропустить сигнал через фильтры Баттерворта, Чебышева и эллиптический в системе Матлаб, нашёл примеры, как делать эти фильтры, построил их АЧХ, а вот как сигнал через них пропустить не нахожу. Уточню, мне необходимо использовать именно функции butter, cheby и ellipt. Я не прошу мне объяснять как, скиньте хотя бы ссылочку куда надо))) спасибо заранее)

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


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

Помогите найти примеры, как пропустить сигнал через фильтры Баттерворта, Чебышева и эллиптический в системе Матлаб, нашёл примеры, как делать эти фильтры, построил их АЧХ, а вот как сигнал через них пропустить не нахожу. Уточню, мне необходимо использовать именно функции butter, cheby и ellipt. Я не прошу мне объяснять как, скиньте хотя бы ссылочку куда надо))) спасибо заранее)

Вот простейший пример для ФНЧ Баттерворта, для остальных аналогично.

[b,a]=butter(5,0.05);

x=(cos(2*pi*0.02*(1:200))+cos(2*pi*0.1*(1:200)));

y=filter(b,a,x);

plot(1:200,x,1:200,y)

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


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

Про цифры 0.05 и 5 можно поподробнее, что это? 0.05 это вроде отношение частоты среза к частоте дискретизации, так?

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


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

5 - порядок, 0.05 - нормированная к половине частоты дискретизации частота среза.

Почитайте документацию на Signal Processing Toolbox. Там про все подробно написано.

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


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

Рассчитал фильтр Чебышева II в FDATool, выполнил квантование коэффициентов

для реализации фильтра с фиксированной точкой. В дальнейшем фильтр будет

реализованы на МК STM32, где есть возможность работать только с фиксированной точкой.

 

Перед переносом на МК попробовал запустить эмуляцию в Simulink, подключил источник белого шума и

спектороанализатор, на выходе результат нулевой. Если же взять точно такой же

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

 

Подскажите, куда копать?

post-69173-1325703905_thumb.png

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


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

Подскажите, куда копать?

математику в fixed point надо как бы сделать %)

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


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

математику в fixed point надо как бы сделать %)

 

Не понятно чего-то, я рассчитываю фильтр FDATool, делаю квантование коэффициентов,

получаю фильтр с коэффициентами Q16.14 и входными данными в

формате Q16.15 и выходом в Q16.11. Мне на фильтр данные в формате Q16.15 подавать???

Если реализацию фильтра в базовых блоках Simulink посмотреть, там имеется элемент Convert (fixdt(1,16,15))

т.е данные можно не конвертировать тогда??? :wacko:

 

И еще вопрос, у меня с АЦП идут сэмплы в интервале от -32767 до 32767, как их запихнуть в формат Q16.15

для подачи на вход фильтра.

post-69173-1325705174_thumb.png

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


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

Не понятно чего-то, я рассчитываю фильтр FDATool, делаю квантование коэффициентов,

получаю фильтр с коэффициентами Q16.14 и входными данными в

формате Q16.15 и выходом в Q16.11. Мне на фильтр данные в формате Q16.15 подавать???

Если реализацию фильтра в базовых блоках Simulink посмотреть, там имеется элемент Convert (fixdt(1,16,15))

т.е данные можно не конвертировать тогда??? :wacko:

 

И еще вопрос, у меня с АЦП идут сэмплы в интервале от -32767 до 32767, как их запихнуть в формат Q16.15

для подачи на вход фильтра.

я тоже столкнулся с похожей проблемой ,я использую тот же вид МК , и мне требуется выполнить похожую задачу,только что мне нужно реализовать фильтер Чебышева I.Из fdatool кооэффициенты мне нужно вытянуть для того что бы закинуть в API CMSIS-DSP CMSIS DSP Software Library

( знакомо ?).STM32 в принципе может работать с single-precision floating point (или я ошибаюсь ?) ,во всяком случае в API эта опция предусмотрена.Главная трудность состоит в том ,что бы вытянуть коэффициенты {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...} ,допустим что мы используем Direct-Form I SOS (second order stages).Может кто-то может прояснить как "видеть" эти коэффициенты или из Matlab Workspace (SOS,Gain) или из генерируемово C header ?

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


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

Нашел в сети реализацию фильтров на ARM с расчетом в Matlab:

Fixed Point Filtering Library

 

По поводу библиотеки DSP Library для STM32, могу сказать, что фильтры сделаны там как-то странно, нет приведения разрядности при сложении,

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

 

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


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

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

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

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

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

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

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

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

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

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