Jump to content

    

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

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

Share this post


Link to post
Share on other sites
Помогите найти примеры, как пропустить сигнал через фильтры Баттерворта, Чебышева и эллиптический в системе Матлаб, нашёл примеры, как делать эти фильтры, построил их АЧХ, а вот как сигнал через них пропустить не нахожу. Уточню, мне необходимо использовать именно функции 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)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

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

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

 

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

post-69173-1325703905_thumb.png

Share this post


Link to post
Share on other sites
Подскажите, куда копать?

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

Share this post


Link to post
Share on other sites
математику в 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

Share this post


Link to post
Share on other sites
Не понятно чего-то, я рассчитываю фильтр 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 ?

Share this post


Link to post
Share on other sites

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

Fixed Point Filtering Library

 

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

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

 

Share this post


Link to post
Share on other sites

разобрался

Edited by Eger

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this