SDR200B - Theory
SDR200B - Theory
SDR200B - Theory
This trainer provides training of hardware and software theory of Software Defined
Radio (SDR).
OVERVIEW
This trainer covers 70 Mhz – 6 GHz frequency with integrated RFIC technology, a
Spartan6 FPGA, and USB 3.0 connectivity. This new platform enables experimentation
with wide range of applications including FM and TV broadcast, cellular, WiFi, ISM, and
more.
It features one receive and one transmit channel in a bus -powered, board-only with
a new Analog Devices RFIC to deliver a cost -effective experimentation platform and a high
bandwidth USB 3.0 bus with up to 56 MHz of instantaneous bandwidth on select USB 3.0
chipsets (with backward compatibly to USB 2.0).
The users can develop their GNU Radio applications with discrete RF boards with
higher sensitivity, dynamic range, and IP3 performance using the common USRP
Hardware Driver (UHD) framework.
Application Development is supported by the USRP Hardware Driver™ (UHD)
software. UHD is an open-source, cross-platform driver that can run on Windows, Linux,
and MacOS. It provides a common API, which is used by several software frameworks,
such as GNU Radio. W ith this software support, users can collaborate with a vibrant
community of enthusiasts, students, and professionals.
2
SPECIFICATIONS
3
INTRODUCTION
4
Knowledge Base Required for SDR
• Electronics - ADC/DAC, Filters, Frequency Spectrum
• Analog Communication - AM, FM, PM, FDM, Time Domain, Frequency Domain etc..
• Digital Communication - ASK, FSK, PSK, BPSK, QPSK, QAM, TCM, I/Q Signals,
BER etc..
• Data Communication - CDMA, OFDM, TDMA, SDMA etc..
• Radio & TV – Huperhetrodyne Radio, FM Radio, Tuners, Modulators, Converters,
TV
• Mobile Communication – 2G -CDMA, GSM, 3G, 4G, GPS
• Computer Networking - LAN, WLAN, Audio/Video Streaming, Wimax
• DSP and Image Processing – DDC, DUC, ADC, DAC,
• Filters, FFT, IFFT, Matrix, Convolution, Decimation , Interpolation
• FPGA / VLSI Programming - Xlinx, Altera
• MATLAB Programming
• Labview Programming
• Programming Languages - C++, Python
5
EXPERMENT-1
TO UNDERSTAND BASIC THEORY OF SOFTWARE DEFINED RADIO
• “Re-programmable radio of the future which can be configured (even in real time) to
function in many radio systems and if necessary even simultaneously”
• Dominant design principle in future
• All functions are to maximum extent software defined
• Includes also a smart multiband antenna system in the future
Motivation of SDR
• Commercial wireless communication industry is currently facing problems due to
constant evolution of link-layer protocol standards (2.5G, 3G, and 4G)
• existence of incompatible wireless network technologies in different countries
inhibiting deployment of global roaming facilities
• Problems in rolling-out new services/features due to wide-spread presence of
legacy subscriber handsets.
• Flexible
• Reduced Obsolescence
• Enhances Experimentation
• Brings Analog and Digital World Together
• Reprogrammable
• Multiband/Multimode
• Networkable
• Simultaneous voice, data, and video
• Full convergence of digital networks and radio science.
6
Tiers
• Not SDR
– Small system, no external antenna, all modes and frequencies, good processing
Architectures of SDR
7
• DUC: Digital up-converter
• Analog Radio Frequency (RF) receiver/transmitter in the 200 MHz to multi -gigahertz
range.
• High-speed A/D and D/A converters to digitize a wide portion of the spectrum at 25
to 210 Msamples/sec.
• High-speed front-end signal processing including Digital down Conversion (DDC)
consisting of one or more chains of mix + filter + decimate or up conversion.
• Protocol-specific processing such as W ideband Code Division Multiple Access (W -
CDMA) or OFDM, including spreading/de -spreading, frequency-hop-and chip-rate
recovery, code/decode functions, including modulation/demodulation, carrier and
symbol rate recovery, and channel interleaving/de -interleaving.
• Data communications interface with carrier networks and backbone for data I/O and
command-and-control processing, usually handled by general purpose ARM or
PowerPC processors and Real-Time Operating System (RTOS).
8
• Entegra SDR Module
9
Advantages of Software Designed Radio
• The size, power consumption and complexity of radio will decrease ---> also cost of
production is smaller
• Shorter development time
• Bridge or gateway function between different systems
-> makes interoperation possible
• Radio interface or communication protocol can be changed on the fly
• Adaptive radio interface possible
• ”Future proof” compatibility with legacy and future waveforms
10
EXPERMENT-2
11
Block Diagram of Software Defined Radio
12
13
EXPERMENT-3
TO UNDERSTAND SOFTWARE OF SOFTWARE DEFINED RADIO
14
Ubuntu – Linux Commands
1. Ls = List
2. Ls – l = List Details, Ls-m-only directories
3. cd = Change directory, cd/etc/var/www
4. cd / = Home directory
5. clear = Clear Screen
6. sudo = Super User Do
Same as Administrator in windows
7. Edit command = Vim
Sudo vim/etc/php/php.ini
8. Search command = Find
Sudo find – iname *.conf
program search and install from internet
$ sudo apt-get install gnuradio
10. Update Command = Sudo apt-get update
11. Help command = $ command – h or
man pages – help
12. Directory names are Etc, var, www, bin, lost+found, sbin, sys, boot, lib, media, proc,
tmp, home, srv, usr
13. Stop Program
Sudo – stop – Task manager
Pid to kill – 1489 – kill
14. Sudo mkdir = Make directory
15. Sudo rm = delete directory or rename
16. Copy cp =
17. Colour = 008080
18. Mounting Drives
Sudo mount / dev / cdrom
Sudo mount / dev / sda1
19. Un-mounting Drives
Sudo un-mount / dev / sda1
20. Hard disks are known as dev – devices
21. View Hard disk – list
Fdisk – l
22. Error Output : bush …..
23. Un-compress
Zip files are .tar.gz, .tar.bz2
15
Tar xzf file .tar.gz or
Tar xzvf file .tar.gz – will display during
un-compressing
24. Install Command and make command to Install Program
- tar xvzf – gnuradio.tar.gz
- . / configure – Configure
- . / bootstap – Bootstrap
- make – Make
- sudo make install – Makes binary OR
. / configure && make && sudo make install
25. FTP command
Wget ffp://
26. sun command - Subversion
To download from website
16
2. Main Software - GNU Radio – Main Software
• Almost free!
– All the software are free (Python and C++ sou rce code/linux environment)
• Flexible
– Software:
– Hardware:
17
3. Application: GRC – GNU Radio Companion
3. GRC
1. GRC Tutorial
2. GRC Blocks
3. Using GRC Blocks
4. Designing System using Flow Graphs - .grc file
5. Making Python file - .py
6. Running GRC flow graph
7. Running .py files
8. Connecting and Running Hardware
9. Making new blocks
19
GRC Library
– AM demodulation
– CRC generator
– Some utilities
• Convert unsigned mask into signed integer
• GUI examples
– Drawing
• Pager
20
GRC Architecture
21
USRP Mother Board
Architecture – Hardware
22
DDC
Down converts the signal from the IF band to the base band.
Decimates the signal so that the data rate can be adapted by the USB 2.0
and is reasonable for the computers' computing capability.
– Digital up converters (DUCs) on the transmit side are actually contained in the
AD9862 CODEC chips, not in the FPGA.
– The only transmit signal processing blocks in the FPGA are the interpolators.
23
Architecture – Software
Sender
At python level, what we need to do is always just to draw a diagram showing the signal
flow from the source to the sink in our mind.
24
Layered API:
Python Wrapper through SWIG
Layered API:
GNU Radio Companion GUI
Layered API:
Direct C++ Applications
25
Functional chain
26
GRC Processing Blocks
1. ACARS
2. Audio
3. Boolean Operators
4. Byte Operators
5. Channelizers
6. Channel Models
7. Coding
8. Debug Tools
9. Deprecated
10. DOA
11. Equalizers
12. Error Coding
13. Error Correction
14. Extras
15. FCD
16. File Operators
17. Filters
18. Fourier Analysis
19. Graphical Sinks
20. GUI Widgets
21. IEEE802.11
22. Instrumentation
23. Level Controllers
24. MAC
25. Math Operators
26. Measurement Tools
27. Message Tools
28. Misc
29. Modulators
30. Networking Tools
31. NOAA
32. OFDM
33. Operators
34. Packet Operators
35. Pager
36. Peak Detectors
37. RDS
38. Resamplers
27
39. Sinks
40. Sources
41. Stream Operators
42. Stream Tag Tools
43. Symbol Coding
44. Synchronizers
45. Trellis Coding
46. Type Converters
47. UHD
48. Variables
49. Waveform Generators
50. WXGUI Widgets
28
GRC Blocks Details
ACARS
1. ACARS Decoder
2. ACARS Printer
Audio
3. Alaw Audio Decoder Audio Sink
4. Audio Source
5. CODEC2 Audio Decoder
6. CODEC2 Audio Encoder
7. CVSD Audio Decoder (Raw Bit-Level)
8. CVSD Audio Encoder (Raw Bit-Level)
9. CVSD Decoder
10. CVSD Encoder
11. g711 Alaw Audio Encoder
12. g721 Audio Decoder
13. g721 Audio Encoder
14. g723_24 Audio Decoder
15. g723_24 Audio Encoder
16. g723_40 Audio Decoder
17. g723_40 Audio Encoder
18. GSM full-rate Audio Decoder
19. GSM full-rate Audio Encoder
20. OP25 Decoder (Simple)
21. ulaw Audio Decoder
22. ulaw Audio Encoder
23. Wav File Sink
24. Wav File Source
Boolean Operators
25. And
26. And Const
27. Not
28. Or
29. Xor
Byte Operators
30. Packed to Unpacked
31. Pack K Bits
32. Repack Bits
29
33. Unpacked to Packed
34. Unpack K Bits
Channelizers
35. Frequency Xlating FIR Filter
36. Polyphase Channelizer
37. Polyphase Decimator
38. Polyphase Interpolator
39. Polyphase Synthesizer
Channel Models
40. Channel Model
Coding
41. Additive Scrambler
42. Descrambler Scrambler
DebugTools
43. Message Debug
44. Tag Debug
45. Vector Sink
Deprecated
46. Correlate Access Code
47. Simple Correlator
48. Simple Framer
DOA
49. MUSIC DOA Estimator
Equalizers
50. CMA Equalizer
51. Kurtotic Equalizer
52. LMS DD Equalizer
Error Coding
53. Decode CCSDS 27
54. Encode CCSDS 27
30
Error Correction
55. Auto FEC
56. Depuncture
57. Puncture
Extras
58. Extras: Add
59. Extras: Add Const
60. Extras: Blob to Socket
61. Extras: Blob to Stream
62. Extras: Delay
63. Extras: Divide
64. Extras: Msg M21
65. Extras: Multiply
66. Extras: Multiply Const
67. Extras: Noise Source
68. Extras: Packet Deframer
69. Extras: Packet Framer
70. Extras: PMT RPC
71. Extras: Signal Source
72. Extras: Socket Message
73. Extras: Socket to Blob
74. Extras: Stream Selector
75. Extras: Stream to Blob
76. Extras: Subtract
77. Extras: TUN/TAP
78. Extras: UHD AMsg Source
FCD
79. Funcube Dongle Source
File Operators
80. File Descriptor Sink
81. File Descriptor Source
82. File Meta Sink
83. File Meta Source
84. File Sink
85. File Source Tagged
86. File Sink Wav
31
87. File Sink Wav
88. File Source
Filters
89. Analysis Filter bank
90. Band Pass Filter
91. Band Reject Filter
92. DC Blocker
93. Decimating FIR Filter
94. FFT Filter
95. Filter Delay
96. High Pass Filter
97. Hilbert HR Filter
98. Interpolating FIR Filter
99. IQ Comp
100. Low Pass Filter
101. Rational Resampler
102. Root Raised Cosine Filter
103. Single Pole HR Filter
104. Synthesis Filterbank
Fourier Analysis
105. FFT
106. Goertzel
107. Log Power FFT
Graphical Sinks
108. Baudline Sink
109. Eye Diagram
110. Fast Auto Correction Sink
GUI Widgets
QT
111. QT GUI Check Box
112. QT GUI Chooser
113. QT GUI Entry
114. QT GUI Label
115. QT GUI Range
116. QT GUI Tab Widget
32
WX
117. WX GUI Check Box
118. WX GUI Chooser
119. WX GUI Notebook
120. WX GUI Slider
121. WX GUI Static Text
IEEE802.11
122. OFDM Decode MAC
123. OFDM Decode Signal
124. OFDM Equalize Symbols
125. OFDM Parse MAC
126. OFDM Sync Long
127. OFDM Sync Short
Instrumentation
QT
128. QT GUI Sink
129. QT GUI Time Sink
WX
130. OP25 Traffic Pane
131. WX GUI Constellation Sink
132. WX GUI FFT Sink
133. WX GUI Histo Sink
134. WX GUI Number Sink
135. WXGUI Scope Sink
136. WXGUI Terminal Sink
137. WXGUI Time Panel
138. WXGUI Waterfall Sink
Level Controllers
139. AGC
140. AGC2
141. CTCSS Squelch
142. Feed Forward
143. AGC Moving
144. Average
145. Mute
146. Power Squelch
147. Rail
33
148. Sample and Hold
149. Simple Squelch
150. Standard Squelch
151. Threshold
MAC
152. FHSS_RX Hier
153. FHSS_TX
154. Radio Top Block
Math Operators
155. Add
156. Add Const
157. Argmax
158. Complex Conjugate
159. Divide
160. Integrate
161. Log 10
162. Max
163. Multiply
164. Multiply Conjugate
165. Multiply Const
166. RMS
167. Subtract
168. Transcendental
Measurement Tools
169. Message Debug
170. MPSK SNR Estimator
171. MPSK SNR Estimator Probe
172. Probe Avg MagA2
173. Probe Density
174. Probe Rate
175. Probe Signal
176. Probe Signal Vector
177. Tag Debug
Message Tools
178. Message Burst Source
179. Message Debug
180. Message Sink
34
181. Message Source
182. Message Strobe
183. PDU to Tagged Stream
184. Random PDU Generator
185. Tagged Stream to PDU
186. Tag to Message
Misc
187. Any Block
188. Any Block (Single)
189. Block Status
190. Copy
191. Delay
192. Error Rate
193. Gate
194. Head
195. Import
196. Missile Launcher
197. Multi-channel decoder
198. Non-blocker
199. Nop
200. Note
201. Null Sink
202. Null Source
203. Pad Sink
204. Pad Source
205. Selector
206. Skip Head
207. Test Counter
208. Throttle
209. Valve
210. Vector Source
211. Virtual Sink
212. Virtual Source
213. XMLRPC Client
214. XMLRPC Server
Modulators
215. AM Demod
216. Constellation Receiver
35
217. Continuous Phase Modulation
218. CPFSK
219. DPSK Demod
220. DPSK Mod
221. FM Deemphasis
222. FM Demod
223. FM Preemphasis
224. Frequency Mod
225. GFSK Demod
226. GFSK Mod
227. GMSK Demod
228. GMSK Mod
229. GMSK Modulator
230. NBFM Receive
231. NBFM Transmit
232. OP25 Decoder (Combined)
233. Phase Mod
234. PSK Demod
235. PSK Mod
236. QAM Demod
237. QAM Mod
238. Quadrature Demod
239. VCO
240. WBFM Receive
241. WBFM Receive PLL
242. WBFM Transmit
Networking Tools
243. Socket PDU
244. TCP Sink
245. TCP Source
246. TUNTAP PDU
247. UDP Sink
248. UDP Source
NOAA
249. HRPT Decoder
250. HRPT Deframer
251. HRPT PLL
36
OFDM
252. OFDM Carrier Allocator
253. OFDM Channel Estimation
254. OFDM Cyclic Prefixer
255. OFDM Demod
256. OFDM Frame Acquisition
257. OFDM Frame Equalizer
258. OFDM Insert Preamble
259. OFDM Mod
260. OFDM Mod 2
261. OFDM Receiver
262. OFDM Sampler
263. OFDM Serializer
264. OFDM Sync PN
265. OFDM Transmitter
266. Schmidl & Cox OFDM synch
Operators
267. Power
Packet Operators
268. Correlate Access Code
269. Framer Sink 1
270. Header/Payload Demux
271. Packet Header Generator
272. Packet Header Generator (Default)
273. Packet Header Parser
274. Packet Header Parser (Default)
275. Packet Sink
276. Simple Correlator
277. Simple Framer
278. Stream CRC32
Pager
279. 4-Level Slicer/DCR
280. FLEX Deinterleave
281. FLEX Synchronizer
37
Peak Detectors
282. Burst Tagger
283. Detect Peak
284. Peak Detector
285. Peak Detector2
286. Plateau Detector
RDS
287. RDS BPSK Demodulator
288. RDS Data Sink
289. RDS Data Source
290. RDS Frequency Divider
291. RDS Panel
292. RDS Rate Enforcer
Resamplers
293. Fractional Resampler
294. Polyphase Arbitrary Resampler
295. Rational Resampler Base
Sinks
296. Any Block Single Sink
297. Any Block Sink
298. BorlP Sink
Sources
299. Any Block Single Source
300. Any Block Source
301. BorlP Source
302. RTL2832 Source
Stream Operators
303. Burster
304. Deinterleave
305. Endian Swap
306. Interleave
307. Keep 1 in N
308. Keep M in N
309. Patterned Interleaver
38
310. Regenerate
311. Repeat
312. Stream Mux
313. Streams to Stream
314. Streams to Vector
315. Streams to Streams
316. Stream to Vector
317. Stretch
318. Tagged Stream Mux
319. Vector Insert
320. Vector to Stream
321. Vector to Streams
Symbol Coding
326. Binary Slicer
327. Bytes to Symbols
328. Chunks to Symbols
329. Constellation Decoder
330. Constellation Receiver
331. Differential Decoder
332. Differential Encoder
333. Differential Phasor
334. Map
Synchronizers
335. Clock Recovery MM
336. Costas Loop
337. FLL Band-Edge
338. MPSK Receiver
339. OP25FSK4 Demodulator
340. Packet Decoder
341. Packet Encoder
342. PLL Carrier Tracking
343. PLL Freq Det
39
344. PLL Ref Out
345. PN Correlator
346. Polyphase Clock Sync
Trellis Coding
347. PCCC Decoder
348. PCCC Decoder Combo
349. PCCC Encoder
350. SCCC Decoder
351. SCCC Decoder Combo
352. SCCC Encoder
353. SISO
354. SISO Combo
355. Trellis Encoder
356. Trellis Metrics
357. Trellis Permutation
Type Converters
358. Char To Float
359. Char To Short
360. Complex to Arg
361. Complex To Float
362. Complex to Imag
363. Complex to IShort
364. Complex to Mag
365. Complex to MagA2
366. Complex to Real
367. Float To Char
368. Float To Complex
369. Float To Int
370. Float To Short
371. Float To UChar
372. Int To Float
373. IShort To Complex
374. Short To Char
375. Short To Float
376. Stream to Vec Decim
377. UChar To Float
40
UHD
378. UHD: USRP Async Msg Source
379. UHD: USRP Sink
380. UHD: USRP Source
Variables
381. Function Probe
382. Parameter
383. Variable
384. Variable Config
Waveform Generators
385. Constant Source
386. GLFSR Source
387. Noise Source
388. Random Source
389. Signal Source
390. VCO
WX GUI Widgets
41
42
43
44
Creating Your Own Signal Block
Basics
mA block is a C++ class
mTypically derived from gr_block or gr_sync_block class
Three components
mmy_block_xx.h: Block definition
mmy_block_xx.cc: Block implementation
mmy_block_xx.i: Python bindings (SWIG interface)
(SWIG, a tool that generates wrapper code around your C++ functions and classes,
so that they are callable from Python)
45
4. Python & C++
Python Tutorials
Command line python
$ Sudo . / benchmark_tx.py – h – f – goom
$ Sudo . / benchmark_tx.py – m qpsk – m2
46
47
Creating and Running Python Scripts
• When starting a new project, create a directory and change into it: mkdir
directoryname cd directoryname
• Running a Python file:
• all Python files should have a .py suffix python filename.p y
Or, add to the top of each Python file: #!usr/bin/env python
Then file can be run as:
>> ./ filename.py
If permissions are not correct:
chmod +x filename.py
48
EXPERMENT-4
• Boards:-
• Motherboards – Frequency
• Daughter Boards - TX, RX
• Antennas
Log periodic Antenna
Vertical Omni directional Antenna
• Cables
SMA – SMA Loopback Cables
Loopback attenuator – 30db
MIMO Cables
USB 3.0 Cables
• Driver
• UHD driver CD/SW – 3.5.1.9.1
• Power Supply
6V/3A DC Power Supply
• Computer / Laptop
Ubuntu Linux or
Bootable Linux Live USB Pen drive
49
USRP – Universal Software Radio Peripheral Details
50
EXPERMENT-4
GNU Radio
http://www.gnu.org/software/gnuradio/
SDR Documents:
http://www.nd.edu/~jnl/sdr/docs/
GNU Radio 3.0svn Documentation
http://gnuradio.org/doc/doxygen/index.html
GNU website:
gnuradio.org
Download source:
gnuradio.org/redmine/projects/gnuradio/wiki/Download
Online C++ Manual:
gnuradio.org/doc/doxygen/
Online Python Manual:
gnuradio.org/doc/sphinx/
Homepage (download, more links, etc)
http://gnuradio.org/trac/
More comprehensive tutorial
http://gnuradio.org/trac/wiki/Tutorials/WritePythonApplications
Available Signal Processing Blocks
http://gnuradio.org/doc/doxygen/hierarchy.html
GNU Radio Mailing List Archives
http://www.gnu.org/software/gnuradio/mailinglists.html
CGRAN: 3rd Party GNU Radio Apps
https://www.cgran.org/
OFDM Implementation Presentation
http://gnuradio.org/trac/wiki/W ireless
51
CD / DVD
REMOTE COLOR TV TRAINER ISDN TRAINER
www.sigmatrainers.com