I've been in search of a PDA that had the ability to run PSK-31. The Zaurus SL-5500 is the first PDA I've encountered that had a mic input and a headphone output. The PDA uses a StrongARM 206 Mhz processor and runs embedded Linux. Could this be the one? I'll have one in a few days and will post my findings here.
The following note from Edson Pereira describes the problems he faced porting his Linux PSK-31 program to the Zaurus. So far no one has stepped up to the plate to re-write the code for integer optimization. Maybe the SL-5600 with its Xscale 400 will have the power required to run PSK-31 effectively.
Over the weekend I started testing a prototype psk31 application for the Zaurus PDA using Hansi's (DL9DZ) Linux psk31 receiver C++ class. The initial tests show that the lack of a floating point unit on the Zaurus severely degrades the performance of applications that relies heavily on floating point operations, like the psk31 algorithm. Just the psk31 receiver algorithm consumes 100% CPU on the 206 MHz Intel ARM Processor.
The same code compiled for a Pentium 200 MMX takes about 2% CPU.
In order to continue the project, some optimization must take place or a
different psk31 algorithm should be used.
Does any one on the list know of an implementation of a psk31 receiver for a 16- or 32-bit fixed point processor? If such code does not exist, is there anyone interested in helping on implementing a fixed-point psk31 receiver? The work will probably consist of rewrite the trigonometric functions as lookup tables, re-implement the FIR filters, and of course test and profile the beast.
The transmitter will probably make use of wave tables.
For the spectrogram, I have tested a fixed-point FFT algorithm and on the Zaurus it can compute a N=1024 FFT in 3.7 milli seconds. Not as good
as FFTW, but quite acceptable.
-- Edson, pu1jte, n1vtn, 7n4ncl _______________________________________________