Implementation of the filter function (Matlab) C/C++

I am trying to apply some filtering in C/C++ code, I have designed an algorithm using `Matlab` and it works well, so now I am moving it to native code.
I am interested in the filter function. In my matlab script it is used as follows.
[y_blk, fir1_state] = filter( h, 1, x.*c, fir1_state );
Where the `h` argument is coefficients generated by `firpm` function.
I have tried to find any implementation, but unfortunately no results.
I would be very grateful if someone could provide an implementation of this function
Or maybe there is an existing implementation of this function in some library.
Thanks

2 Commenti

Which release are you using? In R2017b, MATLAB Coder should be able to generate C/C++ code for this
I am using R2017 matlab, however it generates code with hardcoded values like that
void b_filter(const double b[401], const double x_data[], const int x_size[1],
const emxArray_real_T *zi, double y_data[], int y_size[1], double
zf[400])
{
int nx;

Accedi per commentare.

 Risposta accettata

Jan
Jan il 20 Nov 2017
You find the M-code, which creates the same output as filter here. A C code is contained in https://www.mathworks.com/matlabcentral/fileexchange/32261-filterm. There are some subfunctions for unrolled loops. I still plan to publish the the multi-threaded version with different implementations for IIR and FIR filters. But based on the provided code you might create the wanted filter easily by your own.

Più risposte (0)

Richiesto:

il 19 Nov 2017

Risposto:

Jan
il 20 Nov 2017

Community Treasure Hunt

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

Start Hunting!

Translated by