Azzera filtri
Azzera filtri

How do I use MATLAB Coder to generate C++ code for an IIR filter that was generated by designfilt?

14 visualizzazioni (ultimi 30 giorni)
I have the file gpsFilterTest.m with:
Fpass = .5;
Fstop = 1;
Ap = .5;
Astop = 80;
FsampleRate = 10;
dellip = designfilt('lowpassiir','PassbandFrequency', Fpass,...
'StopbandFrequency', Fstop, 'PassbandRipple', Ap,...
'StopbandAttenuation',Astop,'SampleRate',FsampleRate, 'DesignMethod', 'ellip');
gpsData = 0:1:1000;
gpsIndex = gpsData;
gpsData = gpsData + transpose(randn(1001,1));
filteredGpsData = gpsFilter(gpsData);
plot(gpsIndex,filteredGpsData);
I have the file gpsFilter.m with:
function filteredGpsData = gpsFilter(gpsData)
%#codegen
filteredGpsData = filter(dellip,gpsData);
end
I get this error when I try to automatically define input types:
I hope the answer to this question will help others besides me.

Risposte (1)

Raghava S N
Raghava S N il 13 Giu 2023
Modificato: Raghava S N il 13 Giu 2023
So, first of all, the dellip argument should be declared inside the gpsFilter function, because code generation does not support arrays of classes as function parameter. Once you declare dellip inside gpsFilter by sending Fpass,Fstop,Ap,Astop,FsampleRate as parameters to gpsFilter, MATLAB Coder gives the following error:
Do check out the following articles on how to solve this issue.

Categorie

Scopri di più su MATLAB Coder in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by