Jay,

I'm also writing a package to do digital communications simulation, to
support my work both in research and in teaching. There's too little
functionality at this point to make it worth sharing, but I thought I'd
share a couple of ideas.

I'm using julia's type system to define bits, symbols, and waveform types.
They're all vectors of numbers, but the type works as a label or
identifier. I think this makes it easier for students to build their
simulations: they don't have to mentally keep track of the meaning of each
vector. Also, it makes it easy to detect errors such as adding a bit vector
to a signal vector.

Using types like this makes it easy to carry simulation information around.
For example, the waveform type has a field for the sampling interval, and
my spectrum plotting function gets that information from the waveform
itself.

This also allows me to define blocks that take vectors of one type and
output a different type. For example, a matched filter takes a waveform and
outputs a symbol vector. With a large enough library of blocks, you can
draw a diagram of your system and translate that into a simulation very
easily. Any inconsistencies are detected by the type system itself.

-- mb


On Sun, Apr 6, 2014 at 4:02 PM, Jay Kickliter <[email protected]>wrote:

> I didn't tag the subject with [ANN] since *Radio.jl
> <https://github.com/JayKickliter/Radio.jl>* is barely a package yet. But
> I am looking for feedback, feature requests, and hopefully some help.
>
> I'm mainly writing the package to support my work with space
> communications, so I will be focusing on Phase Shift Keying and rectangular
> Quadrature Amplitude Modulation. But Julia needs a general comms package.
> If you have any needs/suggestions please let me know.
>
> I mistakenly re-implemeted some of *DSP.jl*'s functionality, and some of
> what I've written is missing from it. Maybe Radio's filtering functions
> should be moved to DSP?
>

Reply via email to