How to convert to C-code from MATLAB code by using MATLAB CODER for case of Low-pass filter
Show older comments
Situation:
1) I made a low-pass filter by using Filter-Designer.
2) I exported a function with MATLAB code by using Filter-Designer.
3) I added a script for calling the function as MATLAB code .
4) I convert to a C code from the MATLAB code. Then I cannot convert to a C code.
Created MATLAB code:
Low-pass Filter:
function Hd = untitled
%UNTITLED 離散時間フィルター オブジェクトを返します。
% MATLAB Code
% Generated by MATLAB(R) 9.9 and Signal Processing Toolbox 8.5.
% Generated on: 02-Feb-2022 10:51:19
% FIR Window Lowpass filter designed using the FIR1 function.
% All frequency values are in Hz.
Fs = 1000; % Sampling Frequency
N = 20; % Order
Fc = 48; % Cutoff Frequency
flag = 'scale'; % Sampling Flag
Beta = 0.5; % Window Parameter
% Create the window vector for the design algorithm.
win = kaiser(N+1, Beta);
% Calculate the coefficients using the FIR1 function.
b = fir1(N, Fc/(Fs/2), 'low', win, flag);
Hd = dfilt.dffir(b);
% [EOF]
Script:
Fs = 2882;
t = linspace(0,1,Fs);
y2 = filter(Hd,x);
plot(t,x,t,y2);
t = linspace(1,2882,Fs);
plot(t,x,t,y2);
How can I convert the above MATLAB code using MATLAB Coder?
Could you please tell me the method and procedure?
8 Comments
Walter Roberson
on 2 Feb 2022
I seem to recall that the general technique is to design the filter first, and save it to a .mat file, and then create a function (not a script) that load()'s the filter from the file and uses it.
If I recall, the load() will effectively be done at compile time, and the filter effectively becoming hard-coded.
Mitsuhiro OTSUKI
on 2 Feb 2022
Raghu Boggavarapu
on 2 Feb 2022
Do you want to generate the code for the function that generates filter coefficients ?
Walter Roberson
on 2 Feb 2022
As their script does not show invoking the design function, I suspect they want to generate code for using the designed filter. (If I recall correctly, the design functions are not supported for code generation.)
Mitsuhiro OTSUKI
on 14 Feb 2022
Mitsuhiro OTSUKI
on 14 Feb 2022
Walter Roberson
on 15 Feb 2022
As far as I can see, code cannot be generated for the filter design functions that you are using. (I did not check whether you can generate for simpler functions such as butterord)
Mitsuhiro OTSUKI
on 16 Feb 2022
Accepted Answer
More Answers (0)
Categories
Find more on Signal Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!