• Aucun résultat trouvé

(1)Software Defined Radio for time &amp

N/A
N/A
Protected

Academic year: 2022

Partager "(1)Software Defined Radio for time &amp"

Copied!
29
0
0

Texte intégral

(1)Software Defined Radio for time & frequency metrology: demonstration with GNU Radio J.-M Friedt FEMTO-ST Time & Frequency department, Besançon, France. jmfriedt@femto-st.fr slides and references at jmfriedt.free.fr T HE FREE & OPEN SOFT WA RE RA DIO EC OSY ST EM. April 17, 2021. 1 / 29.

(2) SDR: flexible and stable approach to RF signal processing Software Defined Radio (SDR): digital radiofrequency (RF) digital 1 signal processing 2 I stable: an algorithm will not drift over time (6= passive component, e.g. capacitor) or with environmental conditions I flexible: ability to tune operating conditions without halting operation I reconfigurable: one hardware, many application only requiring reconfiguration of connections. + data logging + communication over networks .... Application to oscillator metrology, (secure) time transfer and timing (of active/passive RADAR signals). ADC SDR. PLL. In the current architecture, carrier (LO) will not matter (removed by RF frontend), only bandwidth (sampling rate fs ) will matter −→. LO−FI. FI P. fs. ADC SDR LO. fs. LO. f. 1 D.A.. Mindell, Digital Apollo: Human and Machine in Spaceflight, MIT Press (2011) Mindell, Between Human and Machine: Feedback, Control, and Computing before Cybernetics, Johns Hopkins University Press (2003) 2 D.A.. 2 / 29.

(3) Red Pitaya/STEMLab (baseband) I T. Preuschoff & al., Digital laser frequency and intensity stabilization based on the STEMlab platform (originally Red Pitaya), Rev. Sci. Instrum. 91 (8) 083001 (2020) I A. Tourigny-Plante & al., An open and flexible digital phase-locked loop for optical metrology, Rev. Sci. Instrum. 89 (9) 093103 (2018) I P. Mahnke, Characterization of a commercial software defined radio as high frequency lock-in amplifier for FM spectroscopy, Rev. Sci. Instrum. 89 (1) 013113 (2018) I J.A. Sherman & al., Oscillator metrology with software defined radio, Rev. Sci. Instrum. 87 (5) 054711 (2016) I C. Hasselwander & al., gr-MRI: A software package for magnetic resonance imaging using software defined radios, Journal of Magnetic Resonance 270 47–55 (2016) I F. Balakirev & al., Resonant ultrasound spectroscopy: The essential toolbox, Rev. Sci. Instrum. 90 (12) 121401 (2019) I G.A. Stimpson & al., An open-source high-frequency lock-in amplifier, Rev. Sci. Instrum., 90 (9) 094701 (2019) I A. C. Cárdenas & al., Phase Noise and Frequency Stability of the Red-Pitaya Internal PLL, IEEE Trans. Ultrasonics, Ferroelectrics, and Frequency Control 66 (2) 412–416 (2019) I S.J. Yu & al., The performance and limitations of FPGA-based digital servos for atomic, molecular, and optical physics experiments, Rev. Sci. Instrum. 89 025107 (2018) Ettus Research B210: I Paul Meaney & al., A 4-channel, vector network analyzer microwave imaging prototype based on software defined radio technology, Rev. Sci. Instrum. 90 044708 (2019) Ettus Research E312: I S. Prager & al., Ultrawideband Synthesis for High-Range-Resolution Software-Defined Radar IEEE Trans. Instrum. & Meas. 69(6) 3789–3803 (2019) I S. Prager & al., Wireless subnanosecond RF synchronization for distributed ultrawideband software-defined radar networks, IEEE Trans. Microwave Theory and Techniques 68(11) 4787–4804 (2020) Ettus Research N210: I C. Andrich & al., High-precision measurement of sine and pulse reference signals using software-defined radio IEEE 3 / 29 Trans. Instrum. & Meas. 67 (5) 1132–1141 (2018).

(4) SDR in space “In addition to easing the scheduling and configuration burden, an autonomous radio also will gracefully handle unpredictable or anomalous events. For example, during entry, descent, and landing (EDL), a spacecraft can undergo large Doppler swings caused by rocket firings, parachute openings, backshell ejection, and a bouncing landing on the surface. Even when all scheduled events occur successfully, there may be Doppler uncertainty due to unpredictable properties of the atmosphere. Ideally, the communication link should operate whether or not each of the EDL events is successful, but the uncertainties involved typically lead to liberal link margins—for example, the Mars Exploration Rovers observed link margins that sometimes exceeded 10 dB. An autonomous radio could substantially reduce this margin because it would handle any Doppler swing nearly optimally. Unfortunately, such flexible technology is not available on NASA’s currently flying missions. In perhaps the most glaring example of this, NASA engineers discovered in 2000 that a receiver aboard Cassini, launched in 1997, would fail during the Huygens probe descent onto Titan because it did not properly account for the Doppler profile of the probe. Increasing the loop bandwidth of the synchronization loops would have easily fixed the problem, but, unfortunately, these loop bandwidths were hard-wired to fixed values on the spacecraft. With superior engineering and enormous dedication, NASA and the European Space Agency were still able to save the mission by slightly altering the original trajectory, but this solution required forming a large and expensive international recovery team to find the appropriate recommendations on how to overcome the radio’s severe limitations.” J. Hamkins & al. Autonomous Software-Defined Radio Receivers for Deep Space Applications, Deep Space Communications and Navigation Series (NASA/JPL, 2006), p.2: descanso.jpl.nasa.gov/monograph/series9/Descanso9_Full_rev2.pdf 4 / 29.

(5) Free Opensource development frameworks. : free opensource signal processing framework digital signal processing blocks in C++ (or Python)... ... connected through a Python description of datastream. Real time processing ( GNU/Octave or Python post-processing) Graphical User Interface for generating Python scripts: GNU Radio Companion. CPU. FPGA. RF I Pyrpl (https://pyrpl.readthedocs.io/) frontend I Chisel & SpinalHDL (Scala language) at ADC https://www.chisel-lang.org/ and fs https://github.com/SpinalHDL/SpinalHDL I nMigen & LiteX (https://github.com/enjoy-digital/litex) I Oscimp Digital (FEMTO-ST: https://github.com/oscimp/oscimpDigital/) I Edalize (https://github.com/olofk/edalize) I GNU Radio and RFNoC (for Ettus Research hardware), gr-verilog. communication. Need to address both the FPGA (fast, massively parallel) and the CPU (flexible, high level language, networking, user interface ...). T HE FREE & OPEN SOFT WA RE RA DIO EC OSY ST EM. I I I I I. 5 / 29.

(6) Fundamental of time transfer How to demonstrate time transfer with SDR? c0 I RADAR range resolution: ∆R ≥ 2B (c0 = 300 m/µs, bandwidth B) I spectrum spreading: maximize B by all means (pulse, frequency sweep, frequency steps, noise ...) I receive time delayed copies of the transmitted signal: matched filter = correlation (search for delayed copies of the emitted signal) Z. T /2. x(t)y (t + τ )dt ⇒ identify τ maximizing xcorr. xcorr (x, y )(τ ) = −T /2. I maximize averaging time T to smooth out noise I maximize B for the correlation peak width 1/B to be as narrow as possible I Pulse Compression Ratio: B × T. 6 / 29.

(7) power (no unit). Spectrum spreading numerical experiments 60000 50000 40000 30000 20000 10000 0. 200. 400. 600. 800. 1000. 1200. time (no unit). time=[0:0.02:1023];time=time(1:end-1); signal=exp(j*2*pi*time); f=linspace(-1,1,length(time)); plot(f,abs(fftshift(fft(signal))));. pure sine -1. -0.5. 0. 0.5. 1. I Carrier frequency defined by first frequency transposition stage (RF frontend) whereas bandwidth defined by ADC sampling rate I Binary Phase shift keying: ϕ ∈ [0; π] for spectrum spreading. 25000. indices=[1:100:length(signal)-50]’... *[ones(1,50)]+[0:49]; signal(indices)=-signal(indices);. 20000 15000 200. 10000. 400. 600. 800. 1000. 1200. time (no unit). periodically modulated sine. 5000 0 -1. -0.5. 0. 0.5. 1. normalized frequency (no unit) power (no unit). I Carrier frequency and bandwidth are two unrelated quantities which can be tuned independently. power (no unit). normalized frequency (no unit). 4000 3500 3000 2500 2000 1500 1000 500 0. c=cacode(11,50)*2;c=c-mean(c); signal=signal.*c; 200. 400. 600. 800. 1000. 1200. time (no unit). pseudo randomly modulated sine -1. -0.5. 0. normalized frequency (no unit). 0.5. 1 7 / 29.

(8) 1.15 1.1 1.05 1 0.95 0.9 0.85. pure sine (xcorr(signal, ’unbiased’)). 0. 20000. 40000. 60000. 80000. 100000. 80000. 100000. delay (no unit) 1.4 1.2 1 0.8 0.6 0.4 0.2 0. periodically modulated sine. 0. 20000. 40000. 60000. delay (no unit) 60000 50000 40000 30000 20000 10000 0. pseudo randomly modulated sine. autocorr (no unit). I Binary Phase shift keying: ϕ ∈ [0; π] for spectrum spreading. autocorr (no unit). I Carrier frequency defined by first frequency transposition stage (RF frontend) whereas bandwidth defined by ADC sampling rate. autocorr (no unit). I Carrier frequency and bandwidth are two unrelated quantities which can be tuned independently. autocorr (no unit). Spectrum spreading numerical experiments. 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 50. 100. 150. 200. delay (no unit). 0. 20000. 40000. 60000. 80000. 100000. delay (no unit) 8 / 29.

(9) Spectrum spreading numerical experiments From convolution to correlation: Z I Convolution: conv (s, r )(τ ) =. s(t)r (τ − t)dt. I Practical computation of convolution: FT (conv (s, r )) = FT (s) · FT (r ) Z I Correlation: corr (s, r )(τ ) = s(t)r (t + τ )dt I Convolution → correlation: time reversal I since exp(jωt)∗ = exp(−jωt), we conclude FT (corr (s, r )) = FT (s) · FT ∗ (r ) FFT Noise Source. Id: fft_vxx_0. Id: analog_noise_source_x_0 Noise Type: Gaussian. out. Throttle in Id: blocks_throttle_0 out. Amplitude: 1. in. Sample Rate: 320k. Stream to Vector Id: blocks_stream_to_vector_0. FFT Size: 1.024k. in Forward/Reverse: Reverse. out. out. Window: window.blackmanhar.... Seed: 0. Shift: Yes Num. Threads: 1. Broadband signal source. Multiply Conjugate. in0. Id: blocks_mu...onjugate_cc_0 out. FFT. in1 Vec Length: 1.024k. Id: fft_vxx_0_0. Generate Options: QT GUI. Variable Id: N Value: 1.024k. QT GUI Range Id: D Default Value: 50 Start: 0. Delay: 50. in. Stream to Vector Id: blocks_st...to_vector_0_0. FFT Size: 1.024k. in Forward/Reverse: Reverse. out. in. Delay in Id: blocks_delay_0 out. out. Window: window.blackmanhar.... Vector to Stream. Value: 320k. Output Language: Python. Shift: Yes. Delay. Num. Threads: 1. Stop: 100. FFT. Step: 1. QT GUI Time Sink. Id: fft_vxx_1. Id: qtgui_time_sink_x_0 Number of Points: 1.024k Sample Rate: 320k Autoscale: Yes. in. out. Vector to Stream Id: blocks_vector_to_stream_0. in. Complex to Mag out Id: blocks_complex_to_mag_0 in Vec Length: 1.024k. FFT Size: 1.024k. out Forward/Reverse: Forward. in. Window: window.blackmanhar... Shift: Yes Num. Threads: 1. QT GUI Waterfall Sink. Id: blocks_ve...to_stream_0_0. Variable Id: samp_rate. Title: Not titled yet. out. Options Id: demo. in. Id: qtgui_waterfall_sink_x_0. freq FFT Size: 1.024k. freq. Center Frequency (Hz): 0 Bandwidth (Hz): 320k. bw. 9 / 29.

(10) Spectrum spreading numerical experiments Z From convolution to correlation: I Convolution: conv (s, r )(τ ) =. s(t)r (τ − t)dt. I Practical computation of convolution: FT (conv (s, r )) = FT (s) · FT (r ) Z I Correlation: corr (s, r )(τ ) = s(t)r (t + τ )dt Options. Variable. Function Probe. Id: samp_rate. Id: D. Id: analog_sig_source_x_0. Title: Not titled yet. Value: 320k. Block ID: probe0. Sample Rate: 320k. Output Language: Python. Function Name: level. Waveform: Triangle. Generate Options: QT GUI. Poll Rate (Hz): 10. Variable. Signal Source. Signal Source. Id: demo. freq. out. Frequency: 100m. Sample Rate: 320k. in Id: blocks_throttle_0_0 out. in. Sample Rate: 320k. Amplitude: 128. Id: N. Probe Signal. Throttle in Id: blocks_throttle_0 out. Id: D1. in. Probe Signal. Block ID: probe1. Id: probe1. Function Name: level Poll Rate (Hz): 10. Offset: 64. Noise Source. out. Sample Rate: 320k. Initial Phase (Radians): 0. FFT. I since exp(jωt)∗ = exp(−jωt), we conclude. Amplitude: 1. Throttle in Id: blocks_throttle_0_0_0 out. Amplitude: 128. Initial Phase (Radians): 0. Delay 0 generator. Noise Type: Gaussian. out. Frequency: 100m. Id: probe0. I Convolution → correlation: time reversal Id: analog_noise_source_x_0. Waveform: Square. freq. Offset: 0. Value: 1.024k. Function Probe. Id: analog_sig_source_x_0_0. Throttle. in. Sample Rate: 320k. Stream to Vector. Id: blocks_stream_to_vector_0. Seed: 0. Delay 1 generator in. Id: fft_vxx_0. Vector to Stream Id: blocks_ve...to_stream_0_0. FFT Size: 1.024k. out. in Forward/Reverse: Reverse. FT (corr (s, r )) = FT (s) · FT (r ). in0. freq. Multiply Conjugate Id: blocks_mu...onjugate_cc_0 out. FFT. in1 Vec Length: 1.024k. Id: fft_vxx_0_0. Delay. Default Value: 50 Start: 0. in Id: blocks_delay_0 out. Stop: 100. in. Delay: 0. Step: 1. Stream to Vector Id: blocks_st...to_vector_0_0. FFT Size: 1.024k. out. in Forward/Reverse: Reverse. FFT. out. Window: window.blackmanhar.... Delay 0. Id: fft_vxx_1. in0 Multiply Conjugate. Shift: Yes. in0. Num. Threads: 1. Id: blocks_mu...jugate_cc_0_0 out in1 Vec Length: 1.024k. Add in1 Id: blocks_add_xx_0 out. FFT Size: 1.024k. in Forward/Reverse: Forward. Vec Length: 1.024k. FFT Delay in Id: blocks_delay_1 out. in. Delay: 0. Stream to Vector Id: blocks_st..._vector_0_0_0. Shift: Yes. in Forward/Reverse: Reverse Shift: Yes Num. Threads: 1. in0. Multiply Conjugate Id: blocks_mu...gate_cc_0_0_0 out. Id: D2. FFT. Block ID: probe2. in1 Vec Length: 1.024k. Id: fft_vxx_0_0_0_0. Function Name: level. Delay in Id: blocks_delay_2 out. Poll Rate (Hz): 10. Delay: 0. Signal Source Id: analog_sig_source_x_0_0_0. in. Stream to Vector Id: blocks_st...ector_0_0_0_0. in. in Forward/Reverse: Reverse Window: window.blackmanhar... Num. Threads: 1. Throttle out. FFT Size: 1.024k. out. Shift: Yes. Delay 2. Sample Rate: 320k. Amplitude: 128. out. Window: window.blackmanhar.... Function Probe. Frequency: 100m. Num. Threads: 1. FFT Size: 1.024k. out. Delay 1. Waveform: Cosine. out. Window: window.blackmanhar.... in2. Id: fft_vxx_0_0_0. freq. QT GUI Waterfall Sink Id: qtgui_waterfall_sink_x_0. bw Bandwidth (Hz): 320k. Num. Threads: 1. QT GUI Range Id: D. in. Center Frequency (Hz): 0. Shift: Yes. ∗. out. freq FFT Size: 1.024k. out. Window: window.blackmanhar.... Id: blocks_throttle_0_0_0_0 Sample Rate: 320k. out. in. Probe Signal. out. QT GUI Time Sink Id: qtgui_time_sink_x_0 Number of Points: 1.024k Sample Rate: 320k. in. out. Vector to Stream Id: blocks_vector_to_stream_0. in. Complex to Mag out Id: blocks_complex_to_mag_0 in Vec Length: 1.024k. Autoscale: Yes. Id: probe2. Offset: 0 Initial Phase (Radians): 0. 10 / 29.

(11) Pulse compression basics I The longer the code (T ), the longer the time during which the integral of xcorr accumulates energy and smoothes noise, I but long pulse induces loss of time resolution ⇒ cross-correlation is a broad peak I strong variation of code over time ⇒ increased bandwidth B ⇒ cross correlation peak width 1/B pulse compression ratio (PCR) = B · T 1 kHz sin. noise. 1. signal+noise 10. 5. 0.5. 5 0. 0. 0 -0.5. -5. -5. -1. -10. -10. 0 0.0020.0040.0060.0080.01. 0 0.0020.0040.0060.0080.01. 1-5 kHz chirp. time=[0:1e-6:1e-2]; %samp. rate=1 us 0 0.0020.0040.0060.0080.01. noise. 1. signal+noise 10. 5. 0.5. 5. 0. 0. 0. -0.5. -5. -5. -10. -10. 0 0.0020.0040.0060.0080.01. 0 0.0020.0040.0060.0080.01. 0 0.0020.0040.0060.0080.01. 4000 xcorr. x=chirp(time,1e3,time(end),1e3); noise=20*rand(length(x),1)’; noise=noise-mean(noise); xx=xcorr(x,x); xb=xcorr(x,noise); plot(xx,’b-’);hold on;plot(xb,’r-’);. sin Noise chirp Noise. 2000 0 -2000. x=chirp(time,1e3,time(end),5e3); xx=xcorr(x,x); xb=xcorr(x,noise); plot(xx,’k-’);hold on;plot(xb,’m-’);. -4000 5000. 10000. 15000. 20000. 11 / 29.

(12) Pulse compression basics I The longer the code (T ), the longer the time during which the integral of xcorr accumulates energy and smoothes noise, I but long pulse induces loss of time resolution ⇒ cross-correlation is a broad peak I strong variation of code over time ⇒ increased bandwidth B ⇒ cross correlation peak width 1/B pulse compression ratio (PCR) = B · T sin 3 kHz chirp 3-3.5 kHz chirp 3-10 kHz. 4000. time=[0:1e-6:1e-2]; %samp. rate=1 us. xcorr. 2000. x=chirp(time,1e3,time(end),1e3); noise=20*rand(length(x),1)’; noise=noise-mean(noise); xx=xcorr(x,x); xb=xcorr(x,noise); plot(xx,’b-’);hold on;plot(xb,’r-’);. 0. -2000. x=chirp(time,1e3,time(end),5e3); xx=xcorr(x,x); xb=xcorr(x,noise); plot(xx,’k-’);hold on;plot(xb,’m-’);. -4000. 5000. 10000. delay. 15000. 20000. 12 / 29.

(13) Why SDR handles complex numbers, ... I real signal Fourier transform is conjugate symmetric (negative frequency and positive frequency magnitude equal) I the spectrum transposed from RF band s = A exp(jωt + ϕ) to baseband need not be symmetric ⇒ complex mixing to create I and Q (Identity and Quadrature) I I = s · cos(ωRF t) and Q = s · sin(ωRF t) so that A = |I + jQ| and ϕ = arg (I + jQ) if ωRF = ω I In other words ... imagine a single frequency transposition s(t) · cos(ωRF t): if the modulation is on the amplitude, then A cos ϕ = 0 if ϕ = π/2, ∀A. I Solution: add a second signal maximized when cos ϕ = 0, i.e. using sin I since sin(x) is cos(x + π/2): quadrature of the local oscillator. sin. VGA. 90. I/Q detector. hardware ADC. o. soft I Q. cos. LO. fs 13 / 29.

(14) ... and double frequency transposition: digital IQ vs analog IQ also used in the NanoVNA (https://github.com/ttrftech/NanoVNA). 3. I real case: I = s(t) cos(ωRF t) Q = s(t)·(1+ε) sin(ωRF t +δϕ): analog IQ imbalance I avoid analog IQ imbalance with dual transposition step I digital domain frequency transposition: Xlating FIR Filter I Q. ADC NCO. LO−IF. fs. IF. P f f complex. real. f 3 http://www.esa.int/var/esa/storage/images/esa_multimedia/images/2016/03/sentinel-1_radar_. mission/15857809-1-eng-GB/Sentinel-1_radar_mission_pillars.jpg. 14 / 29.

(15) NanoVNA frequency transposition architecture Openhardware4 /opensource5 vector network analyzer I main.c: static int32 t frequency offset = 5000; the intermediate frequency sampled by the audio codec, with (si5351.c) CLK0: frequency + offset and CLK1: frequency when requesting si5351 set frequency with offset(uint32 t freq, int offset, uint8 t drive strength). CLK0 I Audio signal CLK1 sampled at 48 kHz ⇒ RF IN2 sincos tbl[48][2] IF in dsp.c for 50 50 IN3 transposition by IF 50 DUT 5 kHz in S11 dsp process() RF of dsp.c).. DUT S21. IN1. 50. IF. 4 https://raw.githubusercontent.com/hugen79/NanoVNA-H/master/doc/Schematic_nanovna-H_REV3_4_2.pdf 5 https://github.com/ttrftech/NanoVNA 15 / 29.

(16) Benefits of digital: example of distributed passive RADAR (4 antennas) I aliasing/higher order Nyquist modes (case of CW RADAR receiver) – challenge of synchronizing RF frontends (random and time varying phase offset at PLL output) I Doppler shift in RADAR is δfDoppler (Hz) = 2fcarrier vc ' vm/s @ fcarrier = 143.05 MHz 143.05. 56.95 100. P ADC. f. Doppler shift (Hz). 3 2. -200. 1 0. 0. -1 200. -2 -3 500. 1000. 1500. time (5.3 s/sampl). 2000. Doppler shift (Hz). fs/2 fs ADC clock controlled by 10 MHz + 1 PPS from White Rabbit for frequency & time synchronization 2. -200. 1 0. 0 -1. 200. -2 500. 1000. 1500. 2000. time (5.3 s/sampl). White Rabbit synchronized Ettus Research X310 receivers (στ ' 60 ps), 200 MS/s recording of GRAVES 6 143.05 MHz CW reflected by planes – phase analysis ⇒ avoid LO mixing by sampling 200 − 143.05 = 56.95 MHz: DoA analysis. 6 W. Feng, J.-M Friedt, G. Cherniak, M. Sato, (Yet another) passive RADAR using DVB-T receiver and SDR, FOSDEM 2018. 16 / 29.

(17) 1-PPS generation from SDR based GNSS receiver (gnss-sdr) I distributed timing: only the ADC can timestamp samples, all further processing is asynchronous genuine GPS constellation. Ettus Research B210 AD9361 I, Q. USB3 or. GbE. gnss−sdr. free running gnss-sdr v.s UBlox gnss-sdr v.s HM counter UBlox v.s HM counter. 400 200 0 -200 -400 -600 0. 20000. 40000. 60000. B210 external 10 MHz input. U−Blox receiver. top value. ADC CK. 1−PPS. ext 10 MHz steering R&S SMA100A. CPU CK. hydrogen ( ) ref clock maser (inaccuracy < 1e−12) HP53132A time interval counter. Allan deviation (no unit). PLL. 80000. 100000. 120000. 140000. time (s). 40 MHz. 1−PPS. 1575.42 MHz. FPGA. ADC. Raspberry Pi4. 1-PPS offset (ns). 600. 10-07 10-08 10-09 10-10 -11 10 10-12 10-13 10-14 0 10. gnss-sdr v.s UBlox UBlox v.s HM counter gnss-sdr v.s HM counter. 101. 102. 103. 104. 105. integration time (s). gnss-sdr 7 provides a PVT solution with the time delay between a local copy of the PRN sequence and the received signals ⇒ control the clock feeding FPGA+ADC accordingly 7 https://gnss-sdr.org/. and our fork at https://github.com/oscimp/gnss-sdr-1PPS 17 / 29.

(18) Drawbacks of digital & SDR I each operations requires many clock cycles: low control bandwidth despite high clock frequencies I example of the Finite Impulse Response filter: yn =. N X. bk xn−k. k. will introduce a delay of N clock cycles Ts and a phase shift ϕ = 2π N2 · Ts · f at frequency f ⇒ limited closed loop control bandwidth I low dynamic range (8 bit=48 dB ; 16 bit=96 dB). Left: 14-bit Red Pitaya (Zynq 7010), right: 16-bit Red Pitaya (Zynq 7020) ; top: FIR magnitude, bottom: unwrapped phase:. L. Tranchart, FEMTO-ST, Besançon, France 18 / 29.

(19) Closed loop control delay Optical link stabilization control loop:. B. Maréchal (now Mikron) & S. Denis (now CSEM), FEMTO-ST, Besançon, France. https://github.com/oscimp/app/tree/f6e739e13248a8ec5a39b4fede420d57ed3552aa/ redpitaya/double_iq_pid_vco. 19 / 29.

(20) Drawbacks of digital: LO leakage Options. Variable. Id: top_block. Id: samp_rate. Output Language: Python. Value: 2.016M. Generate Options: QT GUI. in. QT GUI Frequency Sink Id: qtgui_freq_sink_x_0_0. freq FFT Size: 1.024k. freq. in. Center Frequency (Hz): 0. freq FFT Size: 1.024k. Id: osmosdr_source_0. Low Pass Filter. Number Channels: 1. Id: low_pass_filter_0. Sample Rate (sps): 2.016M. Decimation: 8. Ch0: Frequency (Hz): 433.9M. Gain: 1. command Ch0: Frequency Correction (ppm): 0 out Ch0: IQ Balance Mode: 0 Ch0: Gain Mode: False Ch0: RF Gain (dB): 30 Ch0: IF Gain (dB): 20 Ch0: BB Gain (dB): 20. freq. Center Frequency (Hz): 0. Sync: Unknown PPS. Ch0: DC Offset Mode: 0. QT GUI Frequency Sink Id: qtgui_freq_sink_x_0. bw Bandwidth (Hz): 2.016M. osmocom Source. in Sample Rate: 2.016M QT GUI Range. Id: frequency Default Value: 434 Start: 433 Stop: 435 Step: 1m. Window: Hamming Beta: 6.76. Complex to Arg Id: blocks_complex_to_arg_0_0. out. QT GUI Time Sink in0 Id: qtgui_time_sink_x_0. Low Pass Filter Id: low_pass_filter_0_0. Frequency Xlating FIR Filter out. in. Decimation: 1. freq. Taps: 1 Center Frequency: 100k Sample Rate: 252k. software super-heterodyne. in. Decimation: 1. Id: freq_xlat...ilter_xxx_0_0. Cutoff Freq: 126k Transition Width: 7.875k. in. bw Bandwidth (Hz): 252k Complex to Arg Id: blocks_complex_to_arg_0. Number of Points: 1.024k. out. in1 Sample Rate: 252k Autoscale: No. Gain: 1. out. in Sample Rate: 252k. out. in0. Cutoff Freq: 50k Transition Width: 12.5k. in1. Window: Hamming Beta: 6.76. freq bw. QT GUI Range. QT GUI Frequency Sink. Id: df. Id: after_translation Name: After translation FFT Size: 1.024k Center Frequency (Hz): 0 Bandwidth (Hz): 252k. Default Value: 100k. freq. Start: 0 Stop: 100k Step: 10k. I LO leakage of the homodyne receiver8 : super heterodyne 9 solution by introducting an intermediate frequency (historically designed to avoid amplifier oscillation) I Xlating FIR Filter introduces intermediate frequency 9 A. Mashhour, W. Domino, N. Beamish, On the Direct Conversion Receiver – A Tutorial, Microwave Journal (2001), at http://www.microwavejournal.com/articles/3226-on-the-direct-conversion-receiver-a-tutorial 9 E.H. Armstrong, A new system of short wave amplification, Proc. IRE. 9 (1), 3-–11 (1921) 20 / 29.

(21) SDR instrumentation: acoustic wave field mapping. 10. I LORX ' 2ω0 + ω on both channels CH1 and CH2 – ω0 acousto-optic modulator frequency and ω SAW frequency I send |CH1 |, |CH2 |, |CH1 /CH2 |, arg (CH1 /CH2 ) I Replace dedicated laboratory hardware with general purpose SDR receiver (Ettus Research B210). I Flexibility: 70–6000 MHz RF frontend (AD9361) I Coherent dual input (get rid of LO contribution between both channels) I Software processing with GNU Radio: challenge of synchronizing positioning table & sampling (0-MQ) D. Teyssieux, FEMTO-ST, Besançon, France 10 D. Teyssieux & al., Absolute phase and amplitude mapping of surface acoustic wave fields, Proc. IFCS (2013). 21 / 29.

(22) SDR instrumentation: acoustic wave field mapping. ← Bulk acoustic resonator overtone out of plane acoustic field mapping dual resonator SAW sensor acoustic field mapping ↓ 432.443174 MHz. 433.218974 MHz. 0. 30. 0. 30. 0.2. 28. 0.2. 28. 0.4. 26. 0.6. 24. 0.8. 22. 1. Y (mm). Y (mm). 0.4. 26. 0.6. 24. 0.8. 22. 1. 1.2. 20. 1.2. 20. 1.4. 18. 1.4. 18. 1.6. 16. 1.6. 0. 0.5. 1. 1.5. 2. 16 0. 0.5. X (mm) 434.368974 MHz. 1.5. 2. reflectivity. 0 0.2 0.4. 30. 0. 28. 0.2. 26. 0.6. 24. 0.8. 22. 1. 0.02 0.018. 0.4. Y (mm). Y (mm). 1. X (mm). 0.016. 0.6. 0.014. 0.8. 0.012. 1. 1.2. 20. 1.2. 0.01. 1.4. 18. 1.4. 0.008. 1.6. 16. 1.6. 0. 0.5. 1. 1.5. X (mm). 2. 0.006 0. 0.5. 1. 1.5. 2. X (mm). ← 434 MHz quartz resonator, 0.4 × 2 mm mapped 6.16 × 105 samples in 15100 s or 24.5 ms/sample limited by positioning table stabilization 22 / 29.

(23) Passive RADAR: time & frequency maps I Benefit from existing radiofrequency signals for detecting (moving) targets I One reference channel (non-cooperative source) and one surveillance channel (targets) I Doppler induced frequency shift + time delayed echoes = time-frequency (distance-velocity) maps I only short-term (ms) phase coherence needed I multi-DVB-T general purpose SDR demonstration. 11 12. I challenge of random delay between channels (constant as long as datastream remains continuous): UDP stream I frequency stacking for improved range resolution and surpass acquisition bandwidth fs limitation. 11 W. Feng, J.-M Friedt, G. Cherniak, M. Sato, Passive bistatic radar using digital video broadcasting–terrestrial receivers as general-purpose software-defined radio receivers, Rev. Sci. Instrum. 89 104701 (2018) 12 J.-M Friedt & al., (Yet another) passive RADAR using DVB-T receiver and SDR, FOSDEM 2018. 23 / 29.

(24) Sound card for time of flight measurement 77.5 kHz coil. audio in left. I Long range time dissemination: very low frequency signals bouncing off the ionosphere I DCF7713 (77.5 kHz), MSF (60 kHz), eLORAN (100 kHz), TDF (162 kHz) ... I again the broader the signal bandwidth resolution @ VLF) 5000 0 -5000. GPS receiver. U−Blox active NEO−M8T antenna. 1 PPS. audio in right. 5000 0 -5000. (a). (c). -10000. -10000 0. 10. 20. 30. 40. 50. 60. 0. 0.5. time (s). 1. 1.5. 2. 2.5. time (s) 800000. 1e+06 800000. xcorr(ph,PRN). xcorr(ph,PRN). the better the timing accuracy (100 µs. 10000. amplitude (a.u.). amplitude (a.u.). 10000. 14 ,. 600000 400000. (b). 200000 0. 600000 400000. (d) 200000 0. 0. 10. 20. 30. 40. 50. 60. 0. 0.5. 1. 1.5. 2. 2.5. time (s). time (s). amplitude (a.u.). 6000 4000 2000 0 -2000 -4000. (e). -6000 -8000 200. 400. 600. 800. 1000. 1200. 1000. 1200. 1400. xcorr(phase,PRN). sample number (5 kS/s). 600000. 400000. (f). 200000. 200. 400. 600. 800. 1400. sample number (5 kS/s). 14 J.-M. Friedt, C. Eustache, É. Carry, E. Rubiola, Software defined radio decoding of DCF77: time and frequency dissemination with a sound card, Radio Science 53(1) 48–61 (2018) 14 P. Hetzel, Time dissemination via the LF transmitter DCF77 using a pseudo-random phase-shift keying of the carrier, 2nd EFTF 351-–364 (1988). 24 / 29.

(25) Beyond analog .... I FM demodulation example. 25 / 29.

(26) Beyond analog .... Be aware of digital calculation limitations, especially with floating point number representation I Discrete time: t=[0:∞]’/f s; at sampling rate fs I Numerically controlled oscillator 15 : lo=exp(j*2*pi*f*t); I Frequency transposition: st=s.*lo; Example: keep trigonometric arguments in the [−π : π] range where precision is maximized 16. }. v o i d nco<o t y p e , i t y p e >:: s i n ( f l o a t ∗ o u t p u t , i n t n o u t p u t i t e m s , d o u b l e ampl ) { f o r ( i n t i = 0 ; i < n o u t p u t i t e m s ; i ++) { o u t p u t [ i ] = ( f l o a t ) ( s i n ( ) ∗ ampl ) ; step () ; } }. 15 transpose. 1. 0.5. signal (a.u.). w h i l e ( p h a s e < −GR M PI ) p h a s e += 2 ∗ GR M PI ; }. time starting @ 0 s time starting @ 0.1 s time starting @ 1 s. 48 kS/s sampling rate floating point numbers. // i n c r e m e n t c u r r e n t p h a s e a n g l e v o i d s t e p ( i n t n = 1) { p h a s e += p h a s e i n c ∗ n ; i f ( f a b s ( p h a s e ) > GR M PI ) { w h i l e ( p h a s e > GR M PI ) p h a s e −= 2 ∗ GR M PI ;. 0. -0.5. -1. 0. 0.002. 0.004. 0.006. 0.008. 0.01. time (s). time to make a vector, or make sure to transpose lo with .’ to avoid using the complex conjugate of lo. 16 https://github.com/gnuradio/gnuradio/blob/master/gnuradio-runtime/include/gnuradio/nco.h#L50 26 / 29.

(27) Hardware. I Open: HackRF, BladeRF, LimeSDR, Ettus Research hardware I Cost: DVB-T receivers (<10 euros/$), ADi PlutoSDR AD936x input and output are not coherent ! (different LO) I VLF: computer sound card I Size: Fairwaves XTRX (30 × 51 mm) I General purspose: radiofrequency grade oscilloscope! (discontinuous stream but matches the ideal SDR definition)17. 17 https://github.com/jmfriedt/gr-oscilloscope38 27 / 29.

(28) Conclusion Software Defined Radio for time& frequency analysis. I benefits of stability, flexibility and reconfigurability I invest in hardware once, deploy for most investigations by tuning software I challenging software combination (FPGA HDL, GP-CPU C++/Python, user interface & networking). Not addressed in this presentation: SDR for educational purposes at the intersection between computer science, radiofrequency and digital signal processing 28 / 29.

(29) Selected bibliography 1. T. Collins & al., Software-Defined Radio for Engineers, (2018) at https://www.analog.com/en/education/education-library/software-defined-radio-for-engineers.html 2. S.W. Smith, The Scientist and Engineer’s Guide to Digital Signal Processing, 2nd Ed (1999) at https://www.dspguide.com/pdfbook.htm 3. T. McDermott, Wireless Digital Communications : Design and Theory, Tucson Amateur Packet Radio Corporation – TAPR (1997) 4. J.G. Proakis, D.K. Manolakis, Digital Signal Processing, Prentice Hall (2006) 5. R.G. Lyons, Understanding Digital Signal Processing, Prentice Hall (2004) 6. A.V. Oppenheim, R.W. Schafer, Discrete-Time Signal Processing (3rd Edition), Prentice-Hall Signal Processing Series (2009), and videos of his lectures at ocw.mit.edu/resources/ res-6-007-signals-and-systems-spring-2011/video-lectures/lecture-1-introduction/ 7. K. Borre, D.M. Akos, N. Bertelsen, A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach, Birkhäuser (2007) 8. E.D. Kaplan, C. Hegarty, Understanding GPS: Principles and Applications, 2nd Ed., Artech House (2005) 9. Principles of Digital Communications course at ocw.mit.edu/courses/electrical-engineering-and-computer-science/ 6-450-principles-of-digital-communications-i-fall-2006/video-lectures/ 10. Yearly conferences: GNU Radio Conference (GRCon) and FOSDEM Free Software devroom 29 / 29.

(30)

Références

Documents relatifs

The SASP carries out analog operations on voltage samples of a sine wave with a frequency equal to 7∗f sampling 64 = 54.6875M Hz.. f sampling is equal

Normoxic recovery reverses inter- mittent hypoxia-induced systemic and vascular inflammation Comments on: Intermittent hypoxia- induced cardiovascular remodeling is reversed by

Preliminary tests in the lab and in the field have shown that apart from the electronic unit the fully polarimetric antenna arrangement is one key element for the

La famille a éprouvé ce conflit qui lui a donné la conviction que la mort (ou la courte durée de survie attendue du fait des traitements) était la conséquence d’une

Indication that glial cells of the median eminence are involved in the photoperiodic control of GnRH release in birds was first suggested by c-Fos expression

This new data set combining acoustic images and multidisci- plinary study of sediment cores allows characterizing contrasted subaquatic sedimentary environments along the

Lastly, dystonia gene-associated tremor corresponds to isolated tremor observed in patients with a mutation known to cause dystonia; dystonic posture is sometimes observed over

In contrast to the previous section wherein a full-model structure was used in the observer design, we shall show, in this section, how to take advantage of the foregoing