DSPExplorer

 

DSPExplorer is an “Integrated Development Environment” specifically designed to aid in the development and exploration of Digital Signal Processing techniques.  It is written in Java and so can run on any system with an installed “Java Runtime Environment”.  Please review my notes on downloading java programs.


I have written a ‘Getting Started with DSPExplorer’ article which will be published in “QRP Quarterly” in April of 2011: QRPQuarterlyDSPExplorer.pdf


DSPExplorer is completely self contained; it relies on no external compilers or hardware.  It provides four basic, tightly integrated functions:

   

  1. 1)A syntax aware text editor.

  2. 2)A C-lite compiler

  3. 3)A block diagram editor

  4. 4)An oscilloscope and spectrum analyzer.


DSPExplorer allows the user to develop software modules and write programs for those modules.  The modules are connected together using the block diagram editor.  Once the module programs have been written and the blocks wired together, DSPExplorer will run the program.  The oscilloscope and spectrum analyzer functions can then be used to examine the  output of the program.  Here is a screen shot of DSPExplorer:





















DOWNLOADING DSPExplorer:  DSPExplorer relies on the Java Runtime Environment (JRE) which is available for windows, macs, and nearly every Unix derivative.  For issue involved with installing the JRE and downloading ‘.jar’ files, please see my Downloading Java page.


DSPExplorer itself can be downloaded here: DSPExplorer-5.3.jar


        PLEASE remember to make sure the downloaded file is named “.jar”... windows (and other OSs) sometimes rename this file the ‘.zip’ and this causes all sorts of confusion.


If you download DSPExplorer, please join the Yahoo Group “DSPExplorer” so you will be informed when updates are released.  Also, note that I have chosen to release DSPExplorer using the “Modified BSD” license agreement.  The short form is, you can use my code in any way you might see fit but I don’t promise its worth using for anything.


Once you download DSPExplorer you can also download a ‘playspace’ which allows you to check that it fires up correctly.  Download DSP1stPlayspace.zip and unzip it.  Take note where the ‘DSP1stPlaySpace‘ folder is stored.  Then start DSPExplorer and click “Project>Change Playspace” and select the DSP1stPlayspace directory.  You should get something like that shown above.  Then click “Simulation>Run” and you should get the waveforms and spectra displayed.


I have written a “DSPExplorer User’s Manual.pdf” which is very terse.  It assumes you have gone through the videos and have a passing understanding of how this all works.  There is some useful information about the nitty gritty of DSPExplorer, it is worth the 10 minutes it will take to read just to know what information is there.


There is a description of all the built-in functions and a few syntax notes in:

            DSPExplorer BuiltIns.pdf


I have made a few, unpolished videos which introduce DSP programming using DSPExplorer.  They are below.  I continue to make more as time goes on, please check back.


These videos are rather large and use an encoding unique to apple’s QuickTime.  Loath as I am to use a ‘non-standard’ encoding, I have been unable to find an industry wide standard which results in a smaller file without significantly reducing the clarity of the videos.  I apologize for this.  If anyone can show me a standard encoder which maintains the crispness with a smaller file I’d love to hear about it.  Please drop me a note.


In the meantime, please go download a version of quicktime.  At least its free!

For those of you who can’t (or wont) get Quicktime, I’ve loaded same files as “.avi” into my ‘transient files’ page.  They are very large but they maintain the crispness of the originals.


While I was developing the following videos I was not good about keeping each of the module sources separate and in a different directory.  In thinking back, that was a very bad oversight.  I most humbly apologize.  For the first 5  tutorials you can find example code in DSPTutorials1to5Playspace.zip Again, I am very sorry and I hope this oversight doesn’t discourage anyone from getting started.


DSPExplorer1.mov Getting started.  Setting up a playSpace.  Generating and examining

                                simple signals.

DSPExplorer2.mov  Making a better signal generator, using ‘real’ and ‘analytic’ signals,

                                “Mixing” in the digital domain.

DSPExplorer3.mov Introducing correlation and implementing basic filters.


DSPExplorer4.mov The “Impulse Response”, introducing Finite Impulse Response filters,

                                spectral leakage and using window functions.

DSPExplorer5.mov Phasing Rigs... principles in the digital implementation there-of.


DSPExplorer6.mov Correlation of analytic signals.  Introducing the Discrete Fourier

                                Transform.  Playspace:  DSPTutorial6Playspace.zip


DomainTutorial.mov   See notes for 4.3 below.



Major release notes.  Notice that not all ‘version’s are actually released.....

    2.9       first major release to the public.

    2.11     Added support for “.lib”, read only subdirectories.  See the user’s Manual for

                details.

    3.2       This version adds support for ‘fixed point’ arithmetic: DSPExplorer-3.2.jar

                The user’s manual for this version is DSPExplorer User’s Manual.pdf.

    3.3       Fixed “Can’t save file .....” bug.

    3.4       Fixed precision problem.  Complexes could have precision but only ‘fixed’

                should allow precision for now.

    3.6       Cleaned up a few things.  Complexes can now have precision but not yet arrays.

                (BUG: you can specify a precision for an array but it is ignored.)

            FIXED MAJOR BUG in windows version that kept you from saving schematics.

                should be OK now.... please let me know if it is isn’t.

    4.3       Lots of changes.  I finished up providing for fixed point arithmetic.  I fixed

                a bug which kept feedback from working.  I added support for multi-rate.

                This was such a big edit that I’m reluctant to make it the ‘main’ until some

                time has passed.  If you’re feeling adventurous, here is DSPExplorer-4.3.jar and

                a movie DomainTutorial.mov and a copy of the DSPdomainPlaySpace.zip for

                that tutorial. A long version of the movie is DomainTutorial.avi but it is very big.....

    4.6    June 26,2012

                Fixed various bugs dealing with multi-rate support.

    4.7    Nov 16, 2012

                Fixed cpu usage problems.  Now doesn’t consume CPU time while sitting idle.....

                Changed multi-rate history gathering so as to keep smaller histories for slower

                domains.

    5.0    May 1, 2013

                Added WAV file support.  You can now read and write WAV files, record from

            the microphone and play to the speakers.  DSPEv5playspace.zip has an example

            of reading and writing files.

    5.3    Sept 4, 2014

               Fixed a few bugs.  No major features.