[RTTY] Optimal RTTY Filters

Kok Chen chen at mac.com
Sat Feb 25 14:36:07 PST 2012


On Feb 25, 2012, at 10:40 AM, Rudy Bakalov wrote:

> I think we have all given up out hopes that you will every write code for Windows :-) , but I was wondering if you could write some pseudo code that Windows developers can use as a starting point and implement your great work under Windows.

I am reasonably agnostic when it comes to OS.  It is just that I feel more comfortable in the Unix environment (Mac OS X is just Unix underneath) and the Cocoa framework allows me to develop GUI much faster than by using other frameworks.

As to pseudo code, I do try to include actual code snippets in plain C or Objective-C when I think it could be useful.  The extended Nyquist article has a short code snippet, so someone else can easily replicate the filter kernels.  Another example is an article on my web site on an alternate implementation of the MFSK16 interleaver. 

Every program that I release to the public includes free complete source code (in fact, the entire Xcode projects).  Warts and all.  I consciously include no GPL code in the programs, so that the next person also has complete freedom from GPL, and can take as much or as little as they like.

> I am not a developer, but I will go on a limb guessing that the OS-specific portion of the code is all around getting the audio in and the GUI, not the actual signal processing.

You are correct about audio (Core Audio) and GUI (Cocoa).  For signal processing, I use vector routines for FFTs, dot products, convolutions, etc, that come from the vecLib framework in Mac OS X.  The vecLib library compiles to the SIMD (SSE) hardware in the Intel processors.  All of these are probably easy enough to code around, even though it is probably not possible to replicate the "look and feel" of the Cocoa GUI on other OS; but GUI is a personal preference kind of thing, it has nothing to do with modem performance.

The less portable parts are the multi-core optimization done with what Mac OS X calls "Grand Central Dispatch."  I seldom have to resort to coding for multiple core, however -- so far I have been able to limit its use to cocoaNEC (antenna design) and cocoaPath (HF channel simulator), where speed is important.

> Is it possible do publish such pseudo code that is abstracted from the actual OS platform?

If anyone finds a piece of code from my projects that are too obfuscated, I am more than willing to break it down to equations and algorithms. 

73
Chen, W7AY



 


More information about the RTTY mailing list