Master project
OutlineEmbedded digital electronics
1 8-bit microcontroller
2 32-bit microcontroller (bare metal)
3 32-bit microcontroller (libraries)
4 32-bit microcontroller (executiveenvironment)
5 32/64-bit microcontroller (operatingsystem)
6 32/64-bit microcontroller (kernelmodule)
7 32/64-bit microcontroller(kernel-userspace communication)
8 32/64-bit microcontroller/FPGA(Redpitaya co-design)
9 32/64-bit microcontroller/FPGAradiofrequency signal processing
Bottom-up development
Project
1 Raspberry Pi 4 single boardcomputer (4×1.5 GHz CPUs)
2 Python/GNU Radio userspaceapplications
3 Communication with personalcomputer (0MQ)
4 Web-controlled instrument (REMI)
5 Characterization of spectral
properties of radiofrequency device
• frequency sweep networkanalyzer
• broadband noise source +FFT
• pulsed excitation + FFT
6 ringdown measurement of resonantsystem : Q & fr
Top-down development
1 / 16
Master project
Acoustic transducer• Electromagnetic wavelength : λ = 300/fMHz
• At 1 GHz : 30 cm wavelength ⇒ signal processing (e.g. cavities, transformer,filters, waveguides) will be ' λ wavelength
• Acoustic waves propagate ∈ [500..10000] m/s : at 3000 m/s, 105 slower
• Convert between electromagnetic and acoustic wave using piezoelectricsubstrates : 30 cm become 3 µm wavelength
• 40-50 filters/phone, 1.4 billion phones/year ⇒ >50 billion acoustic filters/year 1
8/24/2016 10:22:53 AM1311.6010K42-103899-La
Trc1 S21 dB Mag 10 dB/ Ref -50 dB Cal 1
Ch1 Start 100 MHz Pwr 0 dBm Bw 10 kHz Stop 200 MHz
-90
-80
-70
-60
-50
-40
-30
-20
-10
-100
0
M1
M2
-50 dB
M1 134.3981 MHz -60.8503 dBM2 137.4600 MHz -9.9392 dB
Trc2 S21 Phase 50°/ Ref 0° Cal 2
Ch1 Start 100 MHz Pwr 0 dBm Bw 10 kHz Stop 200 MHz
-200
-150
-100
-50
0
50
100
150
200
-250
250
M1
M2
0°
M1 134.3981 MHz -48.78 °M2 137.4600 MHz -121.69 °
1. www.canalys.com/newsroom/canalys-global-smartphone-market-q4-2019 2 / 16
Master project
Acoustic transducer• Electromagnetic wavelength : λ = 300/fMHz
• At 1 GHz : 30 cm wavelength ⇒ signal processing (e.g. cavities, transformer,filters, waveguides) will be ' λ wavelength
• Acoustic waves propagate ∈ [500..10000] m/s : at 3000 m/s, 105 slower
• Convert between electromagnetic and acoustic wave using piezoelectricsubstrates : 30 cm become 3 µm wavelength
• 40-50 filters/phone, 1.4 billion phones/year ⇒ >50 billion acoustic filters/year 1
8/24/2016 10:22:53 AM1311.6010K42-103899-La
Trc1 S21 dB Mag 10 dB/ Ref -50 dB Cal 1
Ch1 Start 100 MHz Pwr 0 dBm Bw 10 kHz Stop 200 MHz
-90
-80
-70
-60
-50
-40
-30
-20
-10
-100
0
M1
M2
-50 dB
M1 134.3981 MHz -60.8503 dBM2 137.4600 MHz -9.9392 dB
Trc2 S21 Phase 50°/ Ref 0° Cal 2
Ch1 Start 100 MHz Pwr 0 dBm Bw 10 kHz Stop 200 MHz
-200
-150
-100
-50
0
50
100
150
200
-250
250
M1
M2
0°
M1 134.3981 MHz -48.78 °M2 137.4600 MHz -121.69 °
1. www.canalys.com/newsroom/canalys-global-smartphone-market-q4-2019 3 / 16
Master project
Acoustic resonator• Dual surface acoustic wave (SAW) resonator operating in the
433.05–434.79 MHz ISM band• Electromagnetic wave : 70 cm wavelength → acoustic wave : 7 µm• 2-port device used either in reflexion or transmission• Q ' 104 @ 434 MHz
8/27/2020 12:33:10 PM1311.6010K42-103899-La
Trc3 S21 dB Mag 2 dB/ Ref -10 dB Cal 1
Ch1 Center 434 MHz Pwr -10 dBm Bw 10 kHz Span 2.5 MHz
-18
-16
-14
-12
-10
-8
-6
-4
-2
-20
0
-10 dB
Trc2 S21 Phase 10°/ Ref -10° Cal 2
Ch1 Center 434 MHz Pwr -10 dBm Bw 10 kHz Span 2.5 MHz
-50
-40
-30
-20
-10
0
10
20
30
-60
40
-10°
SENSeOR SEAS10 sensor
Y (
mm
)
X (mm)
432.443174 MHz
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
0 0.5 1 1.5 2
16
18
20
22
24
26
28
30
Y (
mm
)
X (mm)
433.218974 MHz
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
0 0.5 1 1.5 2
16
18
20
22
24
26
28
30
Y (
mm
)
X (mm)
434.368974 MHz
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
0 0.5 1 1.5 2
16
18
20
22
24
26
28
30
Y (
mm
)
X (mm)
reflectivity
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
0 0.5 1 1.5 2
0.006
0.008
0.01
0.012
0.014
0.016
0.018
0.02
4 / 16
Master project
Network analyzerFrequency dependent response of Device Under Test (DUT)
• Network analyzer principle :• sweep continuous wave single tone signal source and observe
transmitted power for each spectral component ⇒ frequency sweepnetwork analyzer (scalar or vector when measuring phase)
• broadband source and analyze each spectral component transmittedby the device (Fourier transform)
• source, shaping, DUT, signal processing, communication and display
• analog network analyzers have existed : noise source and filter array
5 / 16
Master project
Digital electronics 2 3
Why digital ?• stability (algorithms do not drift over time)• tunability (adapt algorithm to measurement conditions, tune
parameters using software tuning only)• flexibility (a single circuit for multiple applications)
V2 →(analog)
←Saturn1(digital)
2. D.A. Mindell, Digital Apollo : Human and Machine in Spaceflight, MIT Press(2011)
3. D.A. Mindell, Between Human and Machine : Feedback, Control, and Computingbefore Cybernetics, Johns Hopkins University Press (2002)
6 / 16
Master project
Principle
Objective : characterize frequency response of a radiofrequency deviceunder test (DUT)
RPi4DVB−T USB
sourceDUT
Eth PC0MQ
GNU Radio
• Instrument control : GNU/Linux running on Raspberry Pi 4 (RPi4)
• Source : broadband source (noise/pulse)
• Acquisition & sampling : R820T2 based DVB-T receiver as generalpurpose Software Defined Radio (SDR) receiver
• Processing : GNU/Radio communicating with PC
7 / 16
Master project
Noise source : reflection mode• Broadband noise source (reverse-polarized Zener diode + amplifiers)• Sample 2.2 MHz-wide bandwidth• Transpose from 434 MHz to baseband
SENSeOR SEAS10 passive wireless sensor : two resoances in the433.05–434.79 MHz ISM band 8 / 16
Master project
Noise source : transmission modeRather than voltage divider bridge to ground, resonator pair in serieswith signal source
Options
Title: Not titled yet
Output Language: Python
Generate Options: QT GUI
Variable
Id: samp_rate
Value: 2.2M
outcommand
osmocom Source
Sync: Unknown PPS
Number Channels: 1
Sample Rate (sps): 2.2M
Ch0: Frequency (Hz): 434M
Ch0: Frequency Correction (ppm): 0
Ch0: DC Offset Mode: 0
Ch0: IQ Balance Mode: 0
Ch0: Gain Mode: False
Ch0: RF Gain (dB): 44
Ch0: IF Gain (dB): 20
Ch0: BB Gain (dB): 20
freq
in
freq
bw
QT GUI Frequency Sink
FFT Size: 4.096k
Center Frequency (Hz): 0
Bandwidth (Hz): 2.2M
in
QT GUI Time Sink
Number of Points: 1.024k
Sample Rate: 2.2M
Autoscale: No
9 / 16
Master project
Pulsed source
0.5 ns Transmission spectra as afunction of pulse duration
0.625 ns
1.0 ns
1.25 ns
+−
threshold
ADCMP580
2.22 ns10 / 16
Master project
Running on the Raspberry Pi4Characterization of a band pass filter using micro-HDMI output of RPi4
cadencement du flux
filtre à caractériser
Options
Title: Not titled yet
Output Language: Python
Generate Options: QT GUI
Variable
Id: samp_rate
Value: 32k
out
Noise Source
Noise Type: Gaussian
Amplitude: 1
Seed: 0
outinThrottle
Sample Rate: 32koutin
Low Pass Filter
Decimation: 1
Gain: 1
Sample Rate: 32k
Cutoff Freq: 6.4k
Transition Width: 3.2k
Window: Hamming
Beta: 6.76
freq
in
freq
bw
QT GUI Frequency Sink
FFT Size: 1.024k
Center Frequency (Hz): 0
Bandwidth (Hz): 32k
#!/ usr/bin/env python3from PyQt5 import Qtfrom gnuradio import qtguifrom gnuradio.filter import firdes
class rpi(gr.top_block , Qt.QWidget):
def __init__(self):gr.top_block.__init__(self , "Title")Qt.QWidget.__init__(self)
self._qtgui_freq_sink_x_0_win = sip.→↪→wrapinstance(self.→↪→qtgui_freq_sink_x_0.pyqwidget (), →↪→Qt.QWidget)
self.low_pass_filter_0 = filter.→↪→fir_filter_ccf (1, firdes.low_pass→↪→( 1, samp_rate , samp_rate/5, →↪→samp_rate /10, firdes.WIN_HAMMING ,→
↪→ 6.76))self.blocks_throttle_0 = blocks.throttle(→
↪→gr.sizeof_gr_complex *1, samp_rate→↪→,True)
self.analog_noise_source_x_0 = analog.→↪→noise_source_c(analog.GR_GAUSSIAN→↪→, 1, 0)
# ######################################## Connections# #######################################self.connect ((self.→
↪→analog_noise_source_x_0 , 0), (→↪→self.blocks_throttle_0 , 0))
self.connect ((self.blocks_throttle_0 , 0)→↪→, (self.low_pass_filter_0 , 0))
self.connect ((self.low_pass_filter_0 , 0)→↪→, (self.qtgui_freq_sink_x_0 , 0)→↪→)
[...]
11 / 16
Master project
Beyond RF device characterization
Autonomous ACARS 4 (plane-to-ground communication) receiverrunning on RPi4
4. https://sourceforge.net/projects/gr-acars/12 / 16
Master project
Useful tools• Buildroot for developing on the RPi4 or qemu
• GNU Radio running on RPi4
• ZeroMQ or UDP socket to stream from RPi4 to PC
• Python TCP server on RPi4 to receive commands from PC (telnetor Python client)
• Include TCP server in GNU Radio (Python Module)
• Launch TCP server from GNU Radio (Python Snippet) with accessto the callback functions
• Display on PC stacked spectra with broader bandwidth than theDVB-T 2.8 MHz bandwidth
13 / 16
Master project
Preliminary investigationsWhy a pulse and what properties are wanted ?
1 What is the spectrum of a Dirac function ?2 What is the spectrum of a square function with period T ?3 What is the spectrum of a pulse with rise time τ and duration T ?4 What is the spectrum of a pulse with duration T gating a sine wave
with frequency f , f � 1/T ?
0
0.2
0.4
0.6
0.8
1
-1 -0.5 0 0.5 1
norm
aliz
ed s
pectr
um
(a.u
.)
normalized frequency (a.u.)
2/1024
64/1024
512/1024
16/32
sin/1024
x=z e r o s ( 1 0 2 4 , 1 ) ; x ( 1 : 2 ) =1;x=[x ; x ; ; x ; ; x ; x ] ;x=x−mean ( x ) ;f=l i n s p a c e (−1 ,1 , l e n g t h ( x ) ) ;y= f f t s h i f t ( abs ( f f t ( x ) ) ) ;p l o t ( f , y /max ( y ) )
x=z e r o s ( 1 0 2 4 , 1 ) ; x ( 1 : 6 4 ) =1;x=[x ; x ; ; x ; ; x ; x ] ;x=x−mean ( x ) ;y= f f t s h i f t ( abs ( f f t ( x ) ) ) ;p l o t ( f , y /max ( y ) )
x=z e r o s ( 1 0 2 4 , 1 ) ; x ( 1 : 5 1 2 ) =1;x=[x ; x ; ; x ; ; x ; x ] ;x=x−mean ( x ) ;y= f f t s h i f t ( abs ( f f t ( x ) ) ) ;p l o t ( f , y /max ( y ) )
x=z e r o s ( 1 0 2 4 , 1 ) ;f o r k =1:1024
i f mod( k , 1 6 )<8 x ( k ) =1; endendx=[x ; x ; ; x ; ; x ; x ] ;x=x−mean ( x ) ;y= f f t s h i f t ( abs ( f f t ( x ) ) ) ;p l o t ( f , y /max ( y ) )
x=s i n ( [ 0 : 1 0 2 3 ] / 1 0 2 4∗2∗ p i ) ’ ;x=[x ; x ; ; x ; ; x ; x ] ;y= f f t s h i f t ( abs ( f f t ( x ) ) ) ;
14 / 16
Master project
Conclusion & perspectives
20 GNU/Linux Magazine France N°240 https://www.gnulinuxmag.com
MOTS-CLÉS : RADAR, GNU/OCTAVE, TRAITEMENT DU SIGNAL
ANALYSE ET RÉALISATION D’UN RADAR À BRUIT PAR RADIO LOGICIELLE
J.-M FRIEDT[FEMTO-ST, département temps-fréquence, Besançon, France]
W. FENG[Xidian University, National Laboratory of Radar Signal Processing, Xi’an, Chine]
IA, ROBOTIQUE & SCIENCE SDR
Le traitement du signal, domaine abstrait par excellence, devient très amusant lors de sa mise en pratique. Nous nous proposons de démontrer expérimentalement un RADAR à bruit mis en œuvre par radio logicielle.
Pour paraphraser l’introduction d’une vidéo de chanteurs de rap français [1], « on a 3 mi-nutes, un appart’ rempli de
bordel, une vieille émission pour les gosses dans l’ordi, on peut sûrement y aller au bluff ». Dans notre cas, nous n’avons pas 3 minutes, mais 5 se-maines de confinement, on a bien un appartement rempli de bordel, et plu-tôt que l’émission de télévision, nous avons des antennes et des circuits de radio logicielle. Pouvons-nous mesurer la distance de la maison en face dudit appartement en réalisant un RADAR (RAdio Detection And Ranging) actif avec les moyens du bord (figure 1) ?
NOTE
Cet article est le premier d’une série de trois articles sur le sujet.
FORK ME !
• Opportunity to deploy anembedded system for apractical application
• Opportunity to learn howto properly use GNU/Linuxtargeted to an embeddedenvironment (Buildroot –never compile on thetarget system)
• Reproducible experiment :<50 euros (RPi4+DVB-T)
• Radiofrequency signalprocessing ...
• for characterizing a (RF)microsystem.
• RADAR range resolution :∆R = c/(2B) ...
• ... can be reached withmany sources other than apulse generator to achievelarge B.
15 / 16
Master project
References
• C. Simmonds, Mastering Embedded Linux Programming, PacktPublishing (2015)
• K. Yaghmour & al., Building Embedded Linux Systems : Concepts,Techniques, Tricks, and Traps, O’Reilly (2008)
• P. Ficheux & E. Benard, Linux embarque, Eyrolles (2012)
• P. Ficheux, Introduction a Buildroot, GNU/Linux Magazine France(Avril 2010)
• M. Corbin, Buildroot for RISC-V, FOSDEM 2019 a https://
archive.fosdem.org/2019/schedule/event/riscvbuildroot/
• Depot Buildroot a https://github.com/buildroot/buildroot
• Experimenter ...
16 / 16