21st April 2008 02:21
Alan, this is really cool to see, as this is almost exactly the same idea that I had a while ago (even using the same uC). I never got around to actually sitting down and trying to implement it, because I've been really busy with the group build that I have been organizing. I don't know a whole lot about PSK, but your code looks surprisingly simple. So if I understand correctly, a "1" is a steady state, while a "0" is a zero crossing, which you implemented by XORing the pin. Very nice. So now the tough part is shaping the keying. I'll be watching to see how this progresses. Excellent job! 73 de Jason NT7S
Leave a comment on this article.
21st April 2008 09:55
Alan Yates wrote...
Thanks Jason.
Indeed, PSK-31 is implemented by phase reversal for a "0" and none for a "1". The envelope is sine shaped and the reversal happens at the cross-over point to reduce the bandwidth. The sine shaping isn't the best windowing for minimum splatter, but it is easy to implement, Peter G3PLX designed it that way.
At some point I'll post the sketches in my notebook of the various approaches I've considered. I'm going to slowly work my way though them and see what works.
The code is so far extremely simple, it is just bashing a pin up and down at the right time, hopefully I can shape the baseband signal and avoid having to produce the envelope signal in this first version. I am not sure if I can fit the table and extra code in the ATtiny13, but I've already left out the varicode table (I pre-compute the datastream rather than storing it as ASCII and doing a lookup in real-time) so maybe it will fit. Envelope modulation at the final stage has big advantages for higher power and/or efficient operation, so I'll have to give that a go at some point too.
This morning on the ferry I figured out why my first try at the modulator wasn't working properly: I was using an unusual configuration with a second transformer and I stuffed up the phasing of that second transformer. No matter, I ended up using a 200 Ohm trimmer and RFC instead, which makes it easier to null the carrier with anyway.
I just took a look at your qrp-l group project design. Nice, mind if I borrow that heterodyne VFO? How long-term stable is it? I am lacking an xtal for a good 20 metre beacon frequency, but I think I have resonators and crystals in stock that would mix to the bottom end of the band. Either that or 14.31818 MHz, got plenty of those. :)