550 likes | 1.1k Views
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.
E N D
SDRSoftware 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
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.
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-to-digital 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.
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 + delta; X[k01][0] = x[k00][0] - x[k01][0]; X[k01][1] = x[k00][1] - x[k01][1]; X[k00][0] = x[k00][0] + x[k01][0]; X[k00][1] = x[k00][1] + 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 • PSK31 • Packet via Sound Card • 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 • 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 • ARRL DSP-10 • WinRadio • AMSAT SDR • OpenSDR (GnuRadio) • 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 • 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 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 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
ZetaSDR • Very Simple with off the shelf parts • 3 ICs • 4052 (Dual 4:1 MUX) • 74LS74 (Dual D-type flip flop) • LM358 (Dual op-amp) • 1 Oscillator chip • 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/
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 RXTX K1RA Construction TXRX-SMT4.avi
Sample Processing Software • Rocky – DXAtlas • SDRadio – I2PHD • KGKSDR – M0KGK • SpectraVue – Moetronix • Linrad (Linux) – SM5BSZ • Winrad – WA6KBL • PowerSDR (I/F, IQ, SR40) - FlexRadio
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
Demos • WebSDR • Real-time demo of multi-user/band web receiver • SoftRock RXTX v6.3 • 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)