SDR Software Defined Radios AndyZ – K1RA http://www.k1ra.us/ Presentation Overview History of SDR Technical Overview SDR Project Implementations DIY, Kits, Commercial Vendors Sample Processing Software Demos WebSDR, SoftRock, WinRadio Online Resources and Links Old Style Direct Conversion Rx History of SDR The term "Software Defined Radio" was coined in 1991 by Joseph Mitola, who published the first paper on the topic in 1992 Software-defined radios have their origins in the defense sector since the late 1970s in both the U.S. and Europe (for example, Walter Tuttlebee described a VLF radio that used an ADC and an 8085 microprocessor) One of the first public software radio initiatives was a U.S. military project named SpeakEasy. The primary goal of the SpeakEasy project was to use programmable processing to emulate more than 10 existing military radios, operating in frequency bands between 2 and 2000 MHz. SpeakEasy design goal was to be able to easily incorporate new coding and modulation standards in the future, so that military communications can keep pace with advances in coding and modulation techniques. History of SDR Some early SDR information in QST / QEX The DSP-10: An All-Mode 2-Meter Transceiver Using a DSP IF and PC-Controlled Front Panel – 3 Parts (QST Sep-Nov 1999) Software-Defined Hardware for Software-Defined Radios (QEX Sep/Oct 2002) A Software-Defined Radio for the Masses – 4 Parts (QEX Jul 2002-Apr 2003) Technical Overview The ideal receiver scheme would be to attach an analog-to-digital converter to an antenna to directly convert RF to digital. A digital signal processor would read the converter, and then its software would transform the stream of data from the converter to any other form the application requires. An ideal transmitter would be similar. A digital signal processor would generate a stream of numbers. These would be sent to a digital-to-analog converter connected to a radio antenna. The ideal scheme is, due to the actual technology progress limits, not completely realizable. The main problem in both directions is the difficulty of conversion between the digital and the analog domains at a high enough rate and a high enough accuracy at the same time, and without relying upon physical processes like interference and electromagnetic resonance for assistance. SDR Block Diagram Hardware Overview Most receivers utilize a variable-frequency oscillator, mixer, and filter to tune the desired signal to a common intermediate frequency or baseband In some applications it is not necessary to tune the signal to an intermediate frequency Radio frequency signal is directly sampled by the analog-todigital converter (after amplification). Real analog-to-digital converters lack the discrimination to pick up sub-microvolt, nanowatt radio signals. Therefore a low-noise amplifier must precede the conversion step and this device introduces its own problems. The standard solution is to put band-pass filters between the antenna and the amplifier, but these reduce the radio's flexibility which some see as the whole point of a software radio. Real software radios often have two or three analog "channels" that are switched in and out. These contain matched filters, amplifiers and sometimes a mixer. SDR IQ Block Diagrams Simple SDR IQ Implementation Software Overview Digital Signal Processing (DSP) software applications employ the math of Fourier Transforms. In such applications as signal processing, the domain of the original function is typically time and is accordingly called the time domain. That of the new function is frequency, and so the Fourier transform is often called the frequency domain representation of the original function. FT describes which frequencies are present in the original function. = time = frequency /* FFT recursion */ void fft_rec(int N, int offset, int delta, double (*x)[2], double (*X)[2], double (*XX)[2]) { int N2 = N/2; /* half the number of points in FFT */ int k; /* generic index */ double cs, sn; /* cosine and sine */ int k00, k01, k10, k11; /* indices for butterflies */ double tmp0, tmp1; /* temporary storage */ if(N != 2) { /* Perform recursive step. */ /* Calculate two (N/2)-point DFT's. */ fft_rec(N2, offset, 2*delta, x, XX, X); fft_rec(N2, offset+delta, 2*delta, x, XX, X); /* Combine the two (N/2)-point DFT's into one N-point DFT. */ for(k=0; k<N2; k++) { k00 = offset + k*delta; k01 = k00 + N2*delta; k10 = offset + 2*k*delta; k11 = k10 + delta; cs = cos(TWO_PI*k/(double)N); sn = sin(TWO_PI*k/(double)N); tmp0 = cs * XX[k11][0] + sn * XX[k11][1]; tmp1 = cs * XX[k11][1] - sn * XX[k11][0]; X[k01][0] = XX[k10][0] - tmp0; X[k01][1] = XX[k10][1] - tmp1; X[k00][0] = XX[k10][0] + tmp0; X[k00][1] = XX[k10][1] + tmp1; } } else { /* Perform 2-point DFT. */ k00 = offset; k01 = k00 X[k01][0] = x[k00][0] X[k01][1] = x[k00][1] X[k00][0] = x[k00][0] + X[k00][1] = x[k00][1] + } } + delta; x[k01][0]; x[k01][1]; x[k01][0]; x[k01][1]; Software Overview Oscilloscope view top e.g. Time Domain Sine Wave ~4.2 ms period Fourier Transform converts Spectrum view bottom e.g. Frequency Domain Frequency peak ~240 Hz SDR Project Implementations Type Ia – sampling by a soundcard of the audio output of a rcvr R1x-x-xx Type – sampling by a mono soundcard of an IF ~12 kHz Dream DRM IFDSP DiRABox SAQrx Q1x-x-xx Type – sampling by a stereo soundcard of audio I/Q IF PSK31 Packet via Sound Card SoftRock FireFly TinySDR TimeMachine Q2x-x-xx Type – sampling by a dedicated stereo audio ADC of I/Q IF PA3FWM WebSDR SDR Project Implementations R2x-x-xx Type – sampling by a dedicated RF ADC of an analog IF R3x-x-xx Type – sampling of a "direct antenna output" RF signal by a "off-the-shelf" acquisition board DOMENECH LORANC R4x-A-xx Type – sampling by a dedicated RF ADC of a "direct antenna output" RF signal, and ASIC based DDC ARRL DSP-10 WinRadio AMSAT SDR OpenSDR (GnuRadio) SDR-IQ SDR-14 R4x-F-xx Type – sampling by a dedicated RF ADC of a "direct antenna output" RF signal, and FPGA based DDC HPSDR Perseus DIY, Kits, Commercial Vendors SAQrx – (0-24 KHz VLF) LY1GP ZetaSDR – (40/80m) SoftRock Lite II I/F (160-2m) SoftRock TXRX v6.3 (160-10m) K1RA SoftRock TXRX Construction WinRadio (0-3 GHz) SAQrx Connect Antena directly to soundcard Receive 0-22,24,48,96 KHz RF (sample rate Nyquist) SAQ Varberg Radio Station Sweden 17.2 KHz (Mechanical Generator) 1923-1950 for transatlantic radio telegraphy Christmas Message every Dec 24th Other VLF transmissions (US, Rus, UK, FR, AU) http://en.wikipedia.org/wiki/Very_low_frequency SAQrx 20.270 kHz – ICV Italy 20.500 kHz – RJH Russia 20.760 kHz – ICV Italy 21.750 kHz – HWU France 22.100 kHz – GBZ Britain 23.400 kHz – DHO Germany 24.000 kHz – NAA Me. USA 24.800 kHz – NLF Wa. USA 11.905 kHz – Russia Alpha-Nav 12.649 kHz – Russia Alpha-Nav 14.881 kHz – Russia Alpha-Nav 15.625 kHz – CRT Horiz. 576i 15.734 kHz – CRT Horiz. 480i 16.400 kHz – JXN Norway 17.200 kHz – SAQ Sweden 18.100 kHz – RDL Russia 19.600 kHz – GBZ Britain 19.800 kHz – NWC Australia ZetaSDR Very Simple with off the shelf parts 3 ICs 1 Oscillator chip 4052 (Dual 4:1 MUX) 74LS74 (Dual D-type flip flop) LM358 (Dual op-amp) 28.322 MHz (/4 = 7.080 MHz) -> 40m 14.318 MHz (/4 = 3.579 MHz) -> 80m Found on PC Motherboard, VGA card or HD http://www.qrz.lt/ly1gp/SDR/ ZetaSDR SoftRock SR Xtal+Lite 9 - RX-only multi-band SR Lite II - RX-only single band SR TXRX v6.3 – RX/TX (1w) multi-band http://www.kb9yig.com/ – Kits for sale http://www.wb5rvz.com – Kit instructions http://groups.yahoo.com/group/softrock40 SoftRock Lite II SoftRock Lite II SoftRock RXTX K1RA Construction SoftRock RXTX K1RA Construction TXRX-SMT4.avi SoftRock RXTX v6.3 WinRadio Sample Processing Software Rocky – DXAtlas SDRadio – I2PHD KGKSDR – M0KGK SpectraVue – Moetronix Linrad (Linux) – SM5BSZ Winrad – WA6KBL PowerSDR (I/F, IQ, SR40) - FlexRadio Rocky SDRadio KGKSDR SpectraVue WinRad PowerSDR WebSDR PA3FWM – Pieter-Tjerk de Boer Hardware (Version 5) ADC (100 MHz) FPGA (208 pins) Ethernet 7 HF bands (0-30 MHz) 150KHz – 1.2Mhz b/w each Linux server >2mbps upload internet Web client (Java) http://www.websdr.org/ Version 1 WebSDR v2 & 3 WebSDR v4 & 5 Demos WebSDR SoftRock RXTX v6.3 Real-time demo of multi-user/band web receiver Real-time reception demo (or) Playback of recorded spectrum demo UI’s - Rocky, SDRadio, SpectraVue, WinRad, PowerSDR WinRadio Real-time demo of stand alone hardware Control only UI Online Resource and Links http://www.vlf.it/fft_beginners/fft_beginners.html (Fourier for beginners) http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/ (DFT & FFT code examples) http://www.arrl.org/tis/info/sdr.html (ARRL SDR Technical Articles) http://f4dan.free.fr/sdr_eng.html (SDR Project Implementations - All Types) http://groups.yahoo.com/group/softrock40/ (SoftRock Forums) http://www.kb9yig.com/ (SoftRock Kits For Sale) http://www.wb5rvz.com/ (SoftRock Build Instructions) http://groups-beta.google.com/group/linrad (LinRad - Linux) http://www.winrad.org/ (WinRad – Windows based on LinRad) http://www.dxatlas.com/Rocky/ (Rocky) http://www.flex-radio.com/ (Original PowerSDR) http://www.wu2x.com/sdr.html (PowerSDR I/F) http://powersdr-sr40.sourceforge.net/ (PowerSDR SoftRock) http://code.google.com/p/powersdr-iq/ (PowerSDR source) http://gnuradio.org/redmine/wiki/gnuradio - (GNU Radio) http://www.websdr.org/ (Online multi-user, multi-band web receiver)