Execute MATLAB code with mlab_call

Hello all,

I’ve been working with a colleague who works mostly in MATLAB to
prototype and test the work we’re doing, so I’ve written a block that
uses the MATLAB engine interface to execute MATLAB code as part of a
flowgraph. It’s based on the howto-write-a-block example, and can be
built and used in much the same way. Please let me know if you find this
block useful and if you needs other versions (for floats, etc.). If
you’re interested in using this block, please follow the README.
Since there is a translation to the MATLAB engine and back, this block
is significantly slower than a straightforward C++ block. I’d strongly
recommend using it with something like gr_head or “small” data streams.

It is located at:
http://tyrfing.hls.stevens-tech.edu/gnuradio/ml-0.1.tar.gz

I’ve left most of the licensing and doc stuff alone since I’m not sure
how to best modify it. Please let me know if this is an issue.

Thanks,
Dev

I used Tom R.'s changeset 7848 and applied it to my current updated
code.
Currently I am getting a runtime error from ofdm sampler saying that
there
are “insufficient output ports”.

Has anyone faced a similar issue? Esp. for OFDM over air, this is a
major
prob.

Sarang Mandke wrote:

I used Tom R.'s changeset 7848 and applied it to my current
updated code.
Currently I am getting a runtime error from ofdm sampler saying that
there are “insufficient output ports”.

Has anyone faced a similar issue? Esp. for OFDM over air, this is a
major prob.

[changed name of subject fromexecute MATLAB code with mlab_call]

That revision is still in the “work in progress” mode. Once I’ve gotten
a few minutes away from some traveling, I’ll be making a few final
checkin’s and merging my current branch into the trunk. This should
solve most issues with the OFDM system. I’m getting good performance
with BPSK, QPSK, and QAM16. QAM64 works but with fairly high error rate
over the air (but nothing channel coding can’t correct for).

Tom

Greg T. wrote:

distribute it?
It seems like octave has a similar interface
(http://wiki.octave.org/wiki.pl?CategoryExternal under OctaveEngine),
which could be used in a way very similar to the code I have.

I know that there exists other projects under open licenses that use the
MATLAB engine API (pylab, mlabwrap, ruby-matlab, etc.). I’m not well
versed in licensing issues, but reading through the MATLAB software
license I don’t see any issues with linking to the shared objects the
interface provides. I’m very inexperienced in this area, so please let
me know if I’m incorrect.

Thanks,
Dev

I’ve been working with a colleague who works mostly in MATLAB
to prototype and test the work we’re doing, so I’ve written a block
that uses the MATLAB engine interface to execute MATLAB code as part
of a flowgraph. It’s based on the howto-write-a-block example, and can
be built and used in much the same way. Please let me know if you find
this block useful and if you needs other versions (for floats,
etc.). If you’re interested in using this block, please follow the
README.

I wonder if you could make this work with octave. MATLAB is decidedly
non-Free, and thus I’d expect that any support to interoperate with
MATLAB probably wouldn’t be eligble for integration into the tree.

How do you link this in such a way that you can follow the GPL and
distribute it?

Dev R. [email protected] writes:

I know that there exists other projects under open licenses that use
the MATLAB engine API (pylab, mlabwrap, ruby-matlab, etc.). I’m not
well versed in licensing issues, but reading through the MATLAB
software license I don’t see any issues with linking to the shared
objects the interface provides. I’m very inexperienced in this area,
so please let me know if I’m incorrect.

There are several issues. One is following the proprietary program’s
license, and another is complying with the GPL, which requires that all
of any derivative work be licensed under the GPL.

Then, there’s the cultural issue of accomodating non-Free software
within the context of a Free Software project. Many people believe that
it’s not helpfully on the path to a world where we can do everything we
want with Free software, and that seems to be more or less the view of
the FSF. Of course it depends on your goals, but I thought I should
point out this issue.

On Fri, Mar 28, 2008 at 1:09 PM, Greg T. [email protected] wrote:

There are several issues. One is following the proprietary program’s
license, and another is complying with the GPL, which requires that all
of any derivative work be licensed under the GPL.

Then, there’s the cultural issue of accomodating non-Free software
within the context of a Free Software project. Many people believe that
it’s not helpfully on the path to a world where we can do everything we
want with Free software, and that seems to be more or less the view of
the FSF. Of course it depends on your goals, but I thought I should
point out this issue.

Even ignoring the philosophy and licensing legalities … it would
simply stink if folks were writing and GNU RADIO blocks using non-free
middle environments that most of the GNU RADIO users couldn’t use.
Much better to shimmy in octave. Hopefully most matlab code should run
with little modification.

On Fri, Mar 28, 2008 at 05:12:20PM -0400, Gregory M. wrote:

point out this issue.

Even ignoring the philosophy and licensing legalities … it would
simply stink if folks were writing and GNU RADIO blocks using non-free
middle environments that most of the GNU RADIO users couldn’t use.
Much better to shimmy in octave. Hopefully most matlab code should run
with little modification.

Another free option would be to look at scipy, which has all of the
MATLAB/octave-style linear algebra, but uses python as the programming
language. Definitely an upgrade from the MATLAB programming language.

Eric

Dev the link that you posted is no longer working it seems. I am working
on a
similar project which involves a part in which I need to execute MATLAB
code
as part of a flowgraph, so I was hoping to use your block as a reference
for
my own work. If it is possible, kindly can you reupload it and provide a
link. Any help in this regard is highly appreciated.

Dev R. wrote:

Since there is a translation to the MATLAB engine and back, this block
Dev


Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page


View this message in context:
http://old.nabble.com/execute-MATLAB-code-with-mlab_call-tp16286642p28660698.html
Sent from the GnuRadio mailing list archive at Nabble.com.