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? >
