exponenta event banner

Применить фильтр нижних частот к входному сигналу

Предполагая частоту дискретизации 20 кГц, создайте фильтр Баттерворта четвертого порядка с частотой 3-dB 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

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

t = transpose(linspace(0,pi,10000));
x = sin(t) + 0.03*randn(numel(t),1);

Фильтрация шумной синусоидальной волны с помощью фильтра Баттерворта. Постройте график отфильтрованного сигнала.

fx = ButterFilt(x);
plot(fx)

Figure contains an axes. The axes contains an object of type line.

Запустить 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

Figure contains an axes. The axes contains 2 objects of type line.