Jitter observation

Background

The baud rate of the standard RTTY is 45.45 baud. EXTFSK and EXTFSK64 should generate 22 msec (= 1sec/45.45) timing to appropriately flip the keying signal. For the 75 baud, the timing is 13.33333 msec (= 1sec/75). To generate the timing, EXTFSK uses the Windows multimedia timer. Since Windows is not a real-time OS, the timer is not so accurate. The timing variance caused by the non-accurate timer results in "jitter" in the RTTY signals. I have been curious how much "not so accurate" it is. That is the main motivation of this experiment.

Setup for experiment

Oscilloscopes are commonly used for jitter mesurement. However, oscilloscopes with the jitter measurement capability are not cheap. I do not have one, but an idea hit on me. RTTY signals are slow enough from the viewpoint of modern microcontrollers. The frequencies are less than 100Hz. My idea is to measure jitter by using a microcontroller.

I used mBed, which is one of the popular microcontrollers in the market. In this setup, the mBed constantly monitors the RTTY signals generated by EXTFSK and EXTFSK64, and measures the interval time between the rising and falling edges. Every time when it detects the rising or falling edge, it records and reports the interval time values to PC via USB.

The program running in the mBed is very simple (if you are interested, here's the source code I wrote). I also made a simple program that runs on a PC to record all the data coming from the mBed and analyze the jitter. The results shown on this page are drawn with gnuplot.

mBed (left) and UM232H (right)

USB serial converter FTDI UM232H
PC Intel Core i7-3770 CPU 3.40GHz, 8GB memory
OS Windows 7 64-bit service pack 1 (Japanese)
Application MMTTY 1.68A

First of all, I measured the 75 baudot RTTY signals generated by a true serial port. The signals were generated not by EXTFSK/EXTFSK64 but by true hardware. This is a good experiment to see how accurate the measurement setup is.

Figure 1. True hardware

As can be seen in the figure above, this measurement setup seems working good. I had expected to see one peak at 13333 usec before I did this test, but I actually had two peaks. The reason I had two peaks is possibly due to the non-symmetric waveform caused by the signal level translation from the RS-232 level to the LVCMOS level. In other words, the signal transition of low-to-high level is somewhat different from that of high-to-low level. This is my guess, as I do not have an oscilloscope to see the real waveform.

Measurement results

Figure 2 shows a measurement result of EXTFSK64. It clearly has larger jitter than the true hardware. Roughly speaking, the interval time varies from 13300 usec (13.30 msec) to 13370 usec (13.37 msec) around 13333 usec (13.333 msec) center. Most of the observed interval time values fell into +/- 0.3% range. The minimum and maximum interval time observed in this experiment were 13277 usec and 13400 usec, respectively. They are -0.4% and +0.5% with respect to 13333usec.

Figure 2. EXTFSK64 and USB-serial adapter

Joe W4TV gave me a comment that the USB "slots" increase jitter. If the user has a mass storage device (USB hard drive, USB jump drive, etc.) attached to the same root hub, the jitter can be bigger. Thank you, Joe, for your valuable comment. I fully agree with you.

I measured the jitter with a USB hub shown above. As a background job, various files were being copied from the main C drive to a USB thumb drive. Figure 3 shows the result. The jitter was clearly increased. Although it cannot be seen in the figure, the observed minimum and maximum interval time were 13266 usec and 13672 usec, respectively. They correspond to -0.5% and +2.5% of 13333 usec of the standard 75 baud interval.

Figure 3. EXTFSK64 and USB-serial adapter, file copy running in the background

EXTFSK uses the Windows multimedia timer. EXTFSK64, on the other hand, uses the Windows high performance counter. It should be interesting to see if they have difference in the jitter.

Figure 4. A photo of measuring operations

Since EXTFSK supports 45 baud only, I compared EXTFSK and EXTFSK64 in the 45 baud. The desired interval time for 45 baud is 22000usec (22msec). Figures 5 and 6 show EXTFSK and EXTFSK64, respectively. EXTFSK64 seems to have smaller jitter.

Figure 5. EXTFSK and USB-serial adapter

Figure 6. EXTFSK64 and USB-serial adapter

Summary

The jitter of the generated RTTY signals is affected by many factors, such as CPU, OS, chipset, device driver, USB serial converter, and I/O devices attached to the USB root. The results shown on this page were derived by only one combination of them. Recent PCs do not have a serial port. USB serial converters give workaround, but most of them do not support 45 or 75 baud. I hope EXTFSK and EXTFSK64 would help many more hams to enjoy RTTY, because RTTY is fun.

Acknowledgement

Many thanks to Joe W4TV and Jim W5IFP for their test and valuable comments.


73
Oba
JA7UDE