Problem Compiling function subset with EMLC
Show older comments
Hello everybody,
I have problems with the emlc compiler. I want to generate c code for a lowpass filter for a real time DSP. I followed the Matlab tutorial and created a M-file with the code:
function [ output ] = Lowpassfilter ( input ) %#emlc
n = 5; Wn = 0.5;
[b a] = butter (n, Wn, input);
output = filter(b, a, input);
%input comes from the ADC and is int32 in the DSP program
%the ADC samples at 48kHz and provides new data through the bus every sample time
I have tried the command lines: emlc Lowpassfilter and some derivations (-c -t RTW). The error message is: "Function 'butter' imlicitly resolved in the Matlab workspace..." How can i use matlab subset functions, when compiling them with emlc? Do i need to add -eg declarations for the DSP input and how do i do that?
Accepted Answer
More Answers (1)
Kaustubha Govind
on 8 Mar 2011
1 vote
As explained in the entry for butter in the Embedded MATLAB Function Library Reference, you need to provide constant inputs to the function. In your function, 'input' is a non-const variable. To specify it as constant, you can use something like:
emlc mytest.m -eg {emlcoder.egc('high')}
Categories
Find more on Automated Fixed-Point Conversion in MATLAB 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!