Hi Simon.

I have one pledge. Would you please integrate the ATS-3b interface into your 
digital modes software? ATS-3b is a transceiver fitting into Altoids tin, which 
supports generating of BPSK and MFSK signals with its DDS. TX is controlled 
with special protocol over sound card. It should not be difficult to integrate 
it into your software, it would only make your TX code a bit less readable. The 
code is available in PocketDigi.

http://www.kufr.cz/~ok1iak/HAM/ATS3a-digital/index.php3

I am asking for it because right now only PocketDigi supports this interface. 
Although PocketDigi runs on desktop, it was developed primarily for Pocket PC 
and it is very rudimentary. Also I hope (maybe blindly) that the concept of DDS 
generated digital modes will be adapted by other QRP kits one day. With the 
class-D PA and circuit simplicity it should be tempting to design a digital 
modes transceiver for battery operation, for example for the EMCOM folks.

Thanks, Vojtech

--- In digitalradio@yahoogroups.com, "Vojtech Bubnik" <bubn...@...> wrote:
>
> Hi Patrick and Simon.
> 
> My code is derived from Patrick's, only I heavily optimized it to be executed 
> on a less powerful fixed point arithmetics CPU. I am obsessed with 
> optimization to increase battery life of the Pocket PC device.
> 
> I am refering to PocketDigi source code, misc/rsid.c. I believe fldigi used 
> my source code as a starting point. 
> 
> rsid_search function receives samples @ 11025 and calculates 1024 point real 
> FFT each time 1024 new samples are received. Therefore the FFT intervals 
> overlap by one half. The sound card runs at 8 kSamples per second, but I have 
> a resampler running outside of the rsid code to resample to 11025. Also the 
> resampler takes care of the sound card clock correction. I have another 
> resampler running for clock correction from 8ksamples to 8ksamples, but this 
> one is only executed if clock adjustment is different from zero to save some 
> battery time. Also resampling with fixed point arithmetics add some error.
> 
> The main speed up of Patrick's search routine is done by "hashing". In case 
> of RSID we are happy enough that it is possible to setup reverse lookup 
> tables, which have no duplicate hits. The tables are setup in rsid_init. 
> Encoded RSID code consists of 15 nibbles. Patrick decided to only accept a 
> code as valid if it has zero or one error. I therefore prepared two reverse 
> lookup tables from encoded RSID code consisting from 15 nibbles to the mode 
> identifier index, which fits into single byte. Each of the reverse lookup 
> tables have 256 entries, some of them may be empty - they lead to invalid 
> RSID code. The first table is indexed by first and second nibble of encoded 
> RSID, the other table with third and fourth nibble of encoded RSID. The idea 
> behind it is that if there is a single bit error in the first two nibbles, 
> there will be no error in the third and fourth nibble. After the two tables 
> are resolved, the received code hamming distance is verified as in Patrick's 
> original source code. My optimization consists therefore mainly in saving 
> some 100 calls of Hamming distance calculation by using two table lookups, 
> gaining probably speedup of about 50x. 
> 
> Another optimization is in CalculateBuckets(), which calculates maximum of 16 
> successive tones. It uses result of previous sweep in most cases. This 
> probably speeds up the function about 4x. Not that significant if compared to 
> the hashing trick, but after the hashing was implemented, even this little 
> optimization becomes useful. I believe now the RSID decoding time depends 
> mostly on the real FFT routine.
> 
> My encoder generates phase coherent MFSK signal @ 8000, no resampling to 
> 11025 is necessary. TX is done in main/trx.c, mainly in trx_txstate(), see 
> case with TRX_STATE_TXRSID_TONE0 to 14.
> 
> 73, Vojtech
> 
> --- In digitalradio@yahoogroups.com, "Patrick Lindecker" <f6cte@> wrote:
> >
> > Simon,
> > 
> > >Why must the sampling frequency be 11025?
> > because the Fourier is done with 2048 samples at 11025 samples/sec. At 
> > 8000, the number of samples would not be a power of 2 and this Fourier 
> > could not be a FFT but a standard digital Fourier (DFT) which takes times 
> > to do. So the simplest way is to base all on 11025. 
> > 
> > For more details, read the "RS_ID_English.doc" file in 
> > http://f6cte.free.fr/PAPERS.ZIP
> > 
> > 73
> > Patrick
> >   ----- Original Message ----- 
> >   From: Simon (HB9DRV) 
> >   To: digitalradio@yahoogroups.com 
> >   Sent: Thursday, April 16, 2009 10:54 PM
> >   Subject: Re: [digitalradio] Mode of the Day? RS ID on SdR bandwidth
> > 
> > 
> > 
> > 
> > 
> >   Hi,
> > 
> >   Why must the sampling frequency be 11025?
> > 
> >   Simon Brown, HB9DRV
> >   www.ham-radio-deluxe.com
> >     ----- Original Message ----- 
> >     From: Patrick Lindecker 
> > 
> >     No problem, but I program in Pascal not in C...(Votjech did a C 
> > source).  The sampling frequency must be 11025, but it is not a problem to 
> > work at 8000.
> >
>


Reply via email to