При принятии частоты дискретизации 20 кГц создайте четвертый порядок Фильтр Баттерворта с частотой на 3 дБ 2,5 кГц. Отфильтруйте коэффициенты для butter
должны быть константы для генерации кода.
type ButterFilt
function output_data=ButterFilt(input_data) %#codegen [b,a]=butter(4,0.25); output_data=filter(b,a,input_data); end
Используйте Фильтр Баттерворта для фильтра lowpass шумная синусоида.
t = transpose(linspace(0,pi,10000)); x = sin(t) + 0.03*randn(numel(t),1);
Отфильтруйте шумную синусоиду с помощью Фильтра Баттерворта. Постройте отфильтрованный сигнал.
fx = ButterFilt(x); plot(fx)
Запустите codegen
команда, чтобы получить исходный код C ButterFilt.c
и файл MEX:
codegen ButterFilt -args {zeros(10000,1)} -o ButterFilt_mex -report
Code generation successful: To view the report, open('codegen/mex/ButterFilt/html/report.mldatx').
Исходный код C включает пять числителей и коэффициенты знаменателя четвертого порядка Фильтр Баттерворта как статические константы. Примените фильтр с помощью файла MEX. Постройте отфильтрованный сигнал.
output_data = ButterFilt_mex(x); hold on plot(output_data) hold off