Converting MATLAB code to Arduino code

I need to convert this code made in MATLAB for use using the Arduino program which I believe uses C code. I am not sure how to do so and any help will be apreciated! It is for filtering data a data set.
function Hd = Lowpass_2
%LOWPASS_2 Returns a discrete-time filter object.
% MATLAB Code
% Generated by MATLAB(R) 9.5 and Signal Processing Toolbox 8.1.
% Generated on: 08-Mar-2019 11:28:05
% Equiripple Lowpass filter designed using the FIRPM function.
% All frequency values are in Hz.
Fs = 100; % Sampling Frequency
Fpass = 0.4; % Passband Frequency
Fstop = 0.45; % Stopband Frequency
Dpass = 0.057501127785; % Passband Ripple
Dstop = 0.0001; % Stopband Attenuation
dens = 20; % Density Factor
% Calculate the order from the parameters using FIRPMORD.
[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
% Calculate the coefficients using the FIRPM function.
b = firpm(N, Fo, Ao, W, {dens});
Hd = dfilt.dffir(b);
% [EOF]

1 Comment

Have a look into Embedded coder and MATLAB coder.

Sign in to comment.

Answers (3)

Fakhril
Fakhril on 24 Jun 2026 at 13:26
Edited: Walter Roberson on 24 Jun 2026 at 15:46
[System]
Name='Simulasi_TDS_2'
Type='mamdani'
Version=2.0
NumInputs=1
NumOutputs=2
NumRules=0
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'
[Input1]
Name='TDS'
Range=[0 1000]
NumMFs=3
MF1='Rendah':'trapmf',[0 0 150 220]
MF2='Normal':'trapmf',[180 200 600 620]
MF3='Tinggi':'trapmf',[580 650 1000 1000]
[Output1]
Name='Pompa_1'
Range=[0 400]
NumMFs=4
MF1='Sedikit':'trimf',[30 100 170]
MF2='Banyak':'trapmf',[230 310 400 400]
MF3='Tidak_Perlu':'trapmf',[0 0 30 60]
MF4='Sedang':'trimf',[120 200 280]
[Output2]
Name='Pompa_2'
Range=[0 400]
NumMFs=4
MF1='Tidak_Perlu':'trapmf',[0 0 30 60]
MF2='Sedang':'trimf',[120 200 280]
MF3='Banyak':'trapmf',[230 310 400 400]
MF4='Sedikit':'trimf',[30 100 170]
[Rules]

1 Comment

This appears to be a ruleset for fuzzy logic. It is completely unclear to me how this answers the question of how to convert MATLAB code into Arduino code.

Sign in to comment.

Fakhril
Fakhril on 24 Jun 2026 at 13:30
Edited: Walter Roberson on 24 Jun 2026 at 15:46
[System]
Name='Simulasi_TDS_2'
Type='mamdani'
Version=2.0
NumInputs=1
NumOutputs=2
NumRules=0
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'
[Input1]
Name='TDS'
Range=[0 1000]
NumMFs=3
MF1='Rendah':'trapmf',[0 0 150 220]
MF2='Normal':'trapmf',[180 200 600 620]
MF3='Tinggi':'trapmf',[580 650 1000 1000]
[Output1]
Name='Pompa_1'
Range=[0 400]
NumMFs=4
MF1='Sedikit':'trimf',[30 100 170]
MF2='Banyak':'trapmf',[230 310 400 400]
MF3='Tidak_Perlu':'trapmf',[0 0 30 60]
MF4='Sedang':'trimf',[120 200 280]
[Output2]
Name='Pompa_2'
Range=[0 400]
NumMFs=4
MF1='Tidak_Perlu':'trapmf',[0 0 30 60]
MF2='Sedang':'trimf',[120 200 280]
MF3='Banyak':'trapmf',[230 310 400 400]
MF4='Sedikit':'trimf',[30 100 170]
[Rules]

Categories

Asked:

on 27 Mar 2019

Commented:

on 24 Jun 2026 at 15:48

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!