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

조회 수: 2 (최근 30일)
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.

답변 (1개)

Raghava S N
Raghava S N 2023년 6월 13일
편집: Raghava S N 2023년 6월 13일
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.

카테고리

Help CenterFile Exchange에서 Filter Design에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by