Best digital modulation for 2m/70cm band ??

I'm a fairly new ham operator ( less than 2 years ) and just directly jump into APRS ...

I catchup on digital mode history and read up about the history of packet radios , TNC and different modulations ...

During a recent eyeball with some old timers, someone mentioned about setting up many generic digipeaters to reply packets for general purposes data transfer...(kinda like a very very slow speed emergency backup to the Internet ... haha )

I was interested in this topic but have a few questions I hope this group can help me to clarify and answer some of my questions ...

1. What software can I use for this generic data transfer purpose ?

2. S/W for file transfer ?

3. S/W for live chat ??

I was thinking of using MicroModem firmware for this purpose as it have a command line mode ...

4. Why are AFSK1200 only limited to 1200baud .. I read about 9600 baud but it needs to bypass the audio filters on the fm rig.. Most dual band fm rig have data port to support this but what about handy with just K-plugs ?

Re: Best digital modulation for 2m/70cm band ??

Hi Stanley!Those are some very good questions! What you mention is also something I have been very interested in, and also one of the reasons I started creating MicroModem and MicroAPRS, to get the understanding that would allow me to some day help design exactly that kind of system of a generic, multipurpose packet network. I will start out by answering your last question, since it is a very interesting matter. This will be a bit of a long one, so please bear with me, I hope you will be able to stick with me to the end, and that it will be educational. Also, please note that I am not an expert on these matters, so maybe I am wrong on some points, but I will explain to the best of my ability! Ok, hold tight, here we go

First of all, we need to define what a symbol is in the context of a digital modulation scheme. A symbol is any unique state a signal can take at some given point in time, carrying information. A symbol might be me holding up my left hand to represent a binary 0, and holding up my right hand to represent a binary 1. So far so good, we can now communicate digitally by me waving my arms around! But to explore your questions, we will need to apply this in a way more suited to modulating information on an analogue channel.

The symbols on an analogue channel can be any way that we can make the characteristics of a waveform change in some discernable way. From this we can imagine that the speed at which we can transmit information over this channel depends on how often we can make the waveform change, and how many different states we can discern. Nyquist has given us a pretty nifty tool to gain insight into this matter! To understand how to use this tool, it's relevant to note that bandwidth of a signal is related to how fast we are making the waveform change!

The Nyquist formula calculates the channel capacity in bits per second for a theoretical noiseless channel of bandwidth B with M different signal levels (symbols):

C = 2B * log2(M)

Using an example bandwidth of 2400 Hz and two signal levels, we get:

C = 2 * 2400 * log2(2) = 4800 bps

So, theoretically, using two signal levels we can transmit 4800 bits per second over a noiseless channel with a bandwidth of 2400 Hz. But if the channel is noiseless, can't we just increase the number of signal levels to achieve an infinite channel capacity? Well yes, if we had infinitely sensitive equipment, and a completely noiseless channel, we could. Unfortunately none of these things exists, so something must be limiting how fine-grained we can make our signal levels. As you might have expected, the culprit is noise!

In the real world, any analogue communication channel will be subject to noise. The relation between the strength of a received signal, and the received noise is called the signal-to-noise ratio, or SNR for short. Knowing this ratio of a given communication channel is very useful in figuring out just how many signal levels we can use, and still be able to discern them from each other. We can use the Shannon-Hartley theorem to calulate the theoretical upper channel capacity, in the presence of noise.

Let's assume that we have measured a signal-to-noise ratio of SNRdb = 23dB for our channel. We need to convert this back to a non-logarithmic unit:

SNR = Log-1(23dB / 10) = 199.5

We can now input the SNR, along with our bandwidth of 2400 Hz into the Shannon-Hartley formula:

Rounding this down to stay within the Shannon-Hartley limit of the specified SNR, we find that the theoretical upper bound for a channel with a 2400 Hz bandwidth and a SNR of 23dB is around 18275 bits per second. That is, if we can design a modulation scheme with 14 different signal levels. Clearly, this bitrate is far higher than the 1200 bits per second offered by AFSK1200, so why is that? Isn't this proving that one could design a system that could acheive 18 kilobits per second over a 2400 Hz channel?

Theoretically yes! This should be absolutely doable. One way to imagine this would be a very simple amplitude modulation scheme, with a constant frequency carrier sine-wave, where each period varies in amplitude, according to 14 different levels. But then some practicalities start kicking in. The most obvious is the number of bits carried by each symbol. We can easily calculate the amount of bits each symbol represents by log2(M), which gives us log2(14) = 3.807355. Hmm... That's kind of impractical! What exactly is 3.807355 bits? We can't really cut up an atomical unit of information like that. We could remedy this by increasing the number of signal levels to 16, which would give us 4 bits per symbol. But this would also increase the required SNR.

For the sake of this exploration, let's just assume that the increase in required SNR is acceptable. At a maximum symbol rate of 4800 symbols per second (the Nyquist rate = 2*B), and 4 bits per symbol, we could get a total raw data rate of 19200 bits per second. This should not be out of reach to do on a relatively powerful microcontroller with a precise and fast ADC and DAC. So why is it we're stuck with 1200 bits per second for things like APRS? Well, there could be many different ways of answering that question, but one way of explaining it would have to do with the earlier mentioned practicalities.

First of all AFSK, or Audio Frequency Shift Keying is a very practical modulation scheme to use when one wants to send data equipment that's originally meant for transmitting audio, ie. practically any easily accessible radio. Also, at the time where APRS and digital radio was starting out, microcontrollers were both more expensive, and less powerful, so a modulation scheme that could be implemented on the most accessible and cheap hardware would be very attractive to use! AFSK, or actually Binary Frequency Shift Keying at audio frequencies fits this description very well. It was a pretty well-known, established technique, and one that can be implemented very efficiently on integer-based microcontrollers with no hardware floating point acceleration. Remember, this was way before the internet and information on more advanced techniques such as QAM must have been very hard to come by! But why did the choice of bitrate end up on exactly 1200 bits per second?

Again, this has to do with practicalities. Most radios will have an audio passband of approximately 300 to 3000 Hz when using FM modulation. That means that we only have 2700 Hz of audio signal bandwidth to work with. In BFSK modulation, one must choose two different frequencies that will represent a binary 0 or a binary 1. All the things one can consider when choosing these frequencies is a whole topic unto itself, so I won't go into detail with that here.

Let's just simplify things, and say that it would probably be a good idea to leave some extra headroom on the frequencies chosen, so instead of going for the highest possible 3000 Hz, we choose 2200 Hz for the high frequency, and 1200 Hz for the low frequency. A short explanation for this is that different radios have different cut-off slopes for the audio bandpass filter, so on one radio, a 3000 Hz tone might be much more attenuated than on another. This effect is less dramatic at a 2200 Hz tone, since it is further from the cut-off.

In the BFSK modulation scheme, the symbol rate will naturally be limited by the lowest of the two frequencies, the 1200 Hz. You can probably see where I am getting at now! Even though it would actually be theoretically possible to encode 4 symbols in one wave period, the modulation used in AFSK1200 only encodes one symbol per 1200 Hz period. The reason for this is again practicality. To understand exactly the beauty and simplicity of this approach would take a fair bit of explanation, which I will leave out of this. If you want the complete story, a good place to start is the AFSK.c source-code file for MicroAPRS. Maybe I will do another complete post on just this topic, but for now I will simplify it like this: By only encoding one symbol per 1200 Hz period, we can make a very efficient implementation of both a modulator and a demodulator (a modem!) on a simple microcontroller with only a modest ADC and a very modest DAC. This is probably why this particular AFSK modulation scheme succeeded as the primary form of digital modulation for things like APRS.

As I just hinted, it is perfectly feasible to achieve 4800 bits per second using a similar AFSK modulation scheme. This is actually implemented in various software packages such as Linux's Soundmodem. As you can probably guess, it requires more processing power and better quality DAC and ADCs to achieve this, but also a higher signal-to-noise ratio! Theoretically, at a 2700 Hz bandwidth, 1200 bps requires a SNR of only approximately 0.36, whereas 4800 bps requires a SNR of about 2.43. That's a 6.75 times greater required SNR.

How to actually accurately measure and describe the SNR of an audio channel, which is itself demodulated from an FM channel is currently beyond me, but this little calculation shows that we definitely need a much better signal quality to achieve 4800 bps.

As you can probably guess by now, the reason that you need direct access to the radio's discriminator output to successfully decode 9600 bps is the need for the higher minimum signal bandwidth required:

B = C / (2 * log2(M)) = 9600 / (2 * log2(2)) = 4800 Hz

Whereas for 1200bps, we find that the the required minimum bandwidth is:

B = C / (2 * log2(M)) = 9600 / (2 * log2(2)) = 600 Hz

Again, it is important to note that these calculated bandwidths are the theoretical minimums! So what we really can gather from this, is that we need about 8 times the signal bandwidth to successfully modulate 9600 bps with two symbols.

I'm making a half-educated guess here and saying that the actual required signal bandwidth of our 1200 Hz / 2200 Hz BFSK modulation scheme is roughly 2400 Hz. Seen in the light that the minimum required bandwidth is actually only 600 Hz, we can conclude that our BFSK modulation scheme is only about 2400 Hz / 600 Hz = 0.25, or 25% efficient in terms of bandwidth usage. Extending this to the 4800 Hz minimum requirement for 9600 bits per second, we could estimate that we would need aroung 4800Hz / 0.25 = 19200 Hz signal bandwidth to successfully modulate and demodulate data a rate of 9600 bps. This is obviously far beyond the 2700 Hz available in our audio channel, and that is why you need the output directly from radio's discriminator!

I hope this little exploration answered your questions! I will answer the other ones in the next posts!

Re: Best digital modulation for 2m/70cm band ??

Re: Best digital modulation for 2m/70cm band ??

To answer your other questions, unfortunately there is no really standardized and modern program or software packages for file transfer, chat and so on. A lot of different HAM software exists for doing all kinds of things on digital modes, but to be honest I haven't really been able to find any good cross-platform and modern implementations.

If you ask me, here is what we really need:

- A new and more efficient form of digital modulation that will pass through audio circuits, so it's easy to use with any equipment. Cheap microprocessors could easily handle QAM today, which is far more efficient than BFSK.

- A better layer 2 protocol than AX.25, which was developed in the 70's, even before the concept of the layered OSI networking model came around. Don't get me wrong, I absolutely love AX.25 and everything it has done. But we can make something much more flexible today. We need something that can easily be used for generic purposes, but also easily carry TCP/IP and UDP.

- A standardized and simple networking stack API that will make it easy to write a program to interface with such a radio modem.

Given these I think we could have an interesting beginning to a very flexible and useful generic radio packet network. I'm intersted to hear your thoughts on this!