- मौजूदा अपने बनाए FMCW रडार के अनुभव के आधार पर, यह कम-कीमत components और high-speed digital signal processing भर से 6 GHz band का pulse compression radar लागू करने की निर्माण-कथा है
- Zynq 7020 FPGA, 250 MHz 12-bit ADC, 500 MHz 14-bit DAC और zero-IF IQ transceiver structure को मिलाकर arbitrary waveform transmission और pulse compression processing support करता है
- implementation की कठिनाई मुख्यतः ADC/DAC filters, DDR3 routing, LVDS interface, 1 Gbps Ethernet, clock synchronization, power filtering, transmit/receive switching, LO leakage correction जैसी high-speed digital और RF constraints पर केंद्रित है
- वास्तविक माप में 150 MHz bandwidth के साथ लगभग 1 m range resolution मिला, सड़क किनारे वाहनों को करीब 400–450 m तक detect किया, और calculation के हिसाब से 1 m² radar cross-section target की maximum detection range लगभग 1 km के स्तर की है
- PCB manufacturing/assembly की 2 boards 330 USD और खुद solder किए गए Digikey components 225 EUR में इसे पूरा किया गया; लेखक के अनुसार इसी price range में commercial pulse compression radar या समान RF bandwidth वाला SDR मिलना मुश्किल है
FMCW के बजाय pulse compression radar बनाने की वजह
- FMCW radar में transmit और receive antennas को अलग करने पर switching की जरूरत नहीं होती, और received signal को transmitted signal के साथ mix करके low frequency में बदला जा सकता है, इसलिए इसे low-speed ADC से भी लागू करना आसान होता है
- बड़े radar आम तौर पर pulse radar का इस्तेमाल करते हैं
- एक ही antenna को transmit और receive के लिए साझा किया जा सकता है
- high transmit power इस्तेमाल करते समय receiver saturation की समस्या को लेकर FMCW की तुलना में कम चिंता करनी पड़ती है
- pulses ज्यादा बार भेजे जा सकते हैं, इसलिए fast targets की speed measurement में maximum unambiguous Doppler shift बड़ा हो जाता है
- लेकिन pulse radar में implementation constraints कहीं ज्यादा होते हैं
- transmit/receive switching में 1 µs लग जाए तो 150 m दूरी वाले target का reflection छूट जाता है
- एक ही antenna साझा करने पर minimum detection range कई सौ meters हो सकती है
- transmitted pulse की पूरी RF bandwidth sample करनी पड़ती है, इसलिए कई सौ MHz या 1 GHz से ऊपर का ADC चाहिए हो सकता है
- लक्ष्य linear frequency sweep तक सीमित न रहकर arbitrary waveform support करने वाला pulse compression radar बनाना है
- इसके लिए पर्याप्त sample rate वाले DAC और ADC की जरूरत है
कुल architecture और signal processing
- radar की structure SDR जैसी है, और इसमें time-multiplexed 2 receive antennas और एक transmitter है
- transmitter को receive antennas में से एक के साथ साझा किया गया है
- दूसरा receive channel जोड़ना सस्ता था, क्योंकि केवल switch, LNA और SMA connector जोड़ने थे; इससे FMCW mode इस्तेमाल करने की संभावना भी बची रहती है
- TX और RX zero-IF structure हैं
- performance के लिहाज से यह सबसे अच्छा नहीं, लेकिन सबसे सस्ता विकल्प है
- mixer output में desired signal के अलावा LO leakage और image signal भी शामिल होते हैं
- zero-IF में unwanted components signal के साथ overlap करते हैं, इसलिए fixed filter से हटाना मुश्किल होता है
- कुछ non-idealities को digital correction से घटाया जा सकता है
- DAC output pre-distortion से mixer non-idealities correct करके transmitted signal को साफ बनाया जा सकता है
- receiver output को भी पर्याप्त precision से characterize किया जाए तो digital correction संभव है
- DAC complex IQ signal output करता है, और IQ mixer इसे LO frequency पर modulate करके antenna से transmit करता है
- complex IQ baseband में positive और negative दोनों frequencies को represent करता है
- transmit के बाद T/R switch को receive पर बदला जाता है, और receiver reflected signal को sample करता है
- target position transmitted signal और received signal की correlation calculation से मिलती है
- actual implementation में time-domain direct convolution के बजाय FFT का इस्तेमाल होता है
- target मौजूद होने वाले time पर received और transmitted signal की correlation बढ़ती है, और target न होने पर घटती है
- sidelobes को window function से control किया जाता है
- reference pulse पर window function multiply करने से convolution output के sidelobes adjust किए जा सकते हैं
- transmitted pulse पर भी window apply करने से sidelobes और कम किए जा सकते हैं
- downside यह है कि mainlobe चौड़ा हो जाता है और range resolution थोड़ी खराब होती है
- speed को कई pulses के दौरान received signal के phase change से मापा जाता है
- pulse burst भेजकर pulse dimension में FFT calculate करने पर range-Doppler map में range और speed अलग हो जाते हैं
- समान distance पर मौजूद कई objects भी speed अलग हो तो distinguish किए जा सकते हैं
- सिर्फ single antenna से angle information नहीं मिलती
ADC, DAC, FPGA का चयन
- ADC sample rate maximum receivable RF bandwidth तय करने वाला key parameter है
- RF side और DAC की bandwidth बढ़ाने की तुलना में ADC bandwidth सुनिश्चित करना ज्यादा कठिन है
- IQ sampling के लिए कम से कम 2-channel ADC चाहिए
- JESD204B interface वाले ADC को high-end FPGA के high-speed serial transceiver की जरूरत थी, इसलिए वे budget में fit नहीं हुए; सामान्य FPGA I/O से connect हो सकने वाले सबसे तेज विकल्प के रूप में LVDS इस्तेमाल किया गया
- चुना गया ADC ADS4229 है
- 2-channel, LVDS, 250 MHz sample rate
- unit price 58 EUR
- 500 MHz 8-bit ADC भी था, लेकिन उसका SNR 12-bit ADC से 20 dB कम था, और sample rate 2x बढ़ाने से केवल 3 dB SNR वापस मिलता, इसलिए उसे छोड़ दिया गया
- चुना गया DAC DAC3174 है
- 2-channel, 14-bit, 500 MHz
- unit price 33 EUR
- system bandwidth को ADC limit करता है, लेकिन DAC bandwidth headroom filtering को आसान बनाता है
- केवल microcontroller से pulse generation timing, ADC/DAC data management और transmit/receive switching control संभालना मुश्किल था, इसलिए FPGA की जरूरत थी
- चुना गया FPGA Zynq 7020 है
- dual-core ARM-A9 CPU और FPGA fabric को एक ही package में शामिल करता है
- चीन में यह $17 में मिल सकता था, जबकि Digikey price $173 था
- CPU PC communication और control संभाल सकता है
- Linux चलाने के लिए SD card भी जोड़ा गया, लेकिन शुरुआती software OS के बिना चलता था
ADC/DAC filter और bandwidth constraints
- ADC से पहले anti-aliasing low-pass filter की जरूरत होती है
- 250 MHz sample rate की Nyquist frequency 125 MHz है
- usable bandwidth बढ़ानी हो तो cutoff को Nyquist के करीब रखना पड़ता है, लेकिन sharp cutoff चाहिए होने से filter design कठिन हो जाता है
- ADC filter को passband में amplitude और group delay uniform रखने चाहिए
- अलग-अलग frequencies पर attenuation अलग हो तो received pulse distort हो जाता है
- group delay का difference बड़ा हो तो reference pulse के साथ correlation घटता है और sidelobes बढ़ते हैं
- ADC filter design values cutoff 100 MHz और Nyquist 125 MHz पर -20 dB attenuation हैं
- लगभग 60 MHz तक amplitude और group delay अच्छे हैं
- उससे ऊपर constraints के कारण सुधार मुश्किल है
- जरूरत हो तो filter response को digitally correct किया जा सकता है
- DAC भी sampling system है, इसलिए output aliases को filter करना पड़ता है
- DAC sample rate 500 MHz है और आवश्यक signal bandwidth 100 MHz है, इसलिए filter design ADC की तुलना में आसान है
- 0–100 MHz signal के aliases 400–500 MHz range में होते हैं
- simulation के अनुसार aliases signal से कम से कम 65 dB अधिक attenuated हैं
- 30 dBm signal power पर image signal लगभग -35 dBm हो सकता है
- इसे operation के लिए पर्याप्त माना गया है, लेकिन properly designed radar में allocated frequency से बाहर emission से बचने के लिए शायद अधिक attenuation की जरूरत हो सकती है
डिजिटल डिज़ाइन और डेटा फ्लो
- Zynq SoC processing system(PS) और programmable logic(PL) से बना है
- PS dual-core ARM A9 CPU है
- PL FPGA fabric है
- दोनों 64-bit AXI bus से जुड़े हैं
- AXI clock को 130 MHz पर सेट किया गया
- ADC DMA के लिए 1 AXI bus
- DAC DMA के लिए 1 AXI bus
- PL register configuration के लिए अलग low-speed AXI bus भी है
- PC से तेज़ कनेक्शन के लिए 1 Gbps Ethernet चुना गया
- USB 3, 5 Gbps दे सकता है, लेकिन इसके लिए external USB 3 transceiver और अतिरिक्त implementation effort चाहिए
- शुरुआती digital processing PC पर की जाती है, इसलिए captured ADC samples की transfer speed महत्वपूर्ण है
- DDR3 DRAM PS side पर एक single chip के रूप में जुड़ा है
- memory controller की limitation के कारण 1066 MHz operation
- bus width 16-bit है
- 32-bit configuration के लिए दूसरा DDR3 chip जोड़ा जा सकता था, लेकिन इसकी ज़रूरत नहीं पड़ी
- DDR3 bandwidth, DAC और ADC bandwidth के योग से कम है
- DRAM से DAC samples stream करते हुए साथ-साथ ADC samples store करना संभव नहीं है
- PL side पर 1 MB memory रखकर DAC samples store किए जाते हैं
- PC से Ethernet के जरिए pulse samples DRAM में भेजे जाते हैं, फिर DMA उन्हें PL memory में ले जाता है और हर pulse के लिए DAC को transfer करता है
- 1 MB DAC memory pulse length को 130 µs तक सीमित करती है
- 130 µs pulse, 20 km की minimum detection range के बराबर है
- सामान्य pulse length लगभग 1 µs होती है, इसलिए यह पर्याप्त है
- LUT method window function, pre-distortion और अलग-अलग pulse waveform experiments को आसान बनाता है
RF front-end और transmit/receive switching
- operating frequency, पहले के DIY radar जैसी, लगभग 6 GHz है
- consumer applications की वजह से सस्ते off-the-shelf components सबसे ज़्यादा उपलब्ध होने वाली highest frequency band मानी गई
- RF section में IQ modulator, IQ demodulator, LO के लिए PLL, power amplifier, LNA और switches शामिल हैं
- power amplifier के लिए Skyworks SE5004L चुना गया
- typical output 1 dB compression point 2 W है
- gain 32 dB है
- datasheet documentation कम थी और external component values भी नहीं थे, लेकिन evaluation board documentation में schematic मिला
- T/R switch के लिए MASW-007588 चुना गया
- switching speed 55 ns
- 1 dB compression point 37 dBm
- 55 ns में प्रकाश 16.5 m चलता है
- बेहतर dedicated switches मौजूद हैं, लेकिन वे budget में नहीं थे
- circulator भी एक विकल्प था, लेकिन इस्तेमाल नहीं किया गया
- high-power radar में आम है, सैकड़ों W handle कर सकता है और switching speed की समस्या नहीं होती
- इस frequency band के products बड़े हैं और simple switch से कहीं ज़्यादा महंगे हैं
- receiver में RF noise floor, ADC quantization noise से पर्याप्त रूप से ऊंचा होना चाहिए
- calculation के हिसाब से ADC input पर RF noise floor लगभग -155 dBV/Hz है
- ADC noise floor लगभग -156 dBV/Hz है
- आम तौर पर RF noise floor ADC से लगभग 10 dB ऊंचा होना चाहिए, लेकिन actual design में कुछ dB ज़्यादा के स्तर पर compromise किया गया
maximum detection range calculation
- radar equation से maximum detection range calculate की गई
- transmit power, antenna gain, wavelength, target radar cross-section, receiver temperature, pulse length, number of pulses, noise figure और detection threshold का इस्तेमाल किया गया
- इस्तेमाल किए गए estimated parameters ये हैं
- transmit power: 30 dBm
- antenna gain: 14 dBi
- wavelength: 5.2 cm
- target radar cross-section: 1 m²
- receiver temperature: 290 K
- pulse length: 1 µs
- burst में pulses की संख्या: 1024
- receiver noise figure: 5 dB
- detection threshold: 15 dB
- calculation के अनुसार 1 m² radar cross-section वाले target की maximum detection range 1200 m है
- यह value थोड़ी optimistic हो सकती है
- antenna cable loss
- antenna efficiency loss
- impedance mismatch loss
- atmospheric attenuation शामिल नहीं है
- फिर भी maximum detection range लगभग 1 km के स्तर की होनी चाहिए माना गया
- maximum range पर average received power minimum detection threshold के बराबर है
- average तौर पर इस distance के target 50% probability से detect होते हैं
- received power distance की fourth power के inverse proportional होती है, इसलिए उससे ज़्यादा दूरी पर detection probability तेज़ी से गिरती है
PCB, DDR3, transmission line और power design
- PCB में RF और high-speed digital circuits दोनों शामिल हैं, इसलिए routing में सावधानी चाहिए
- 6-layer PCB इस्तेमाल किया गया
- standard FR-4 material RF के लिए ideal नहीं है, लेकिन RF trace बहुत छोटा रखा गया, इसलिए इसे बड़ी समस्या नहीं माना गया
- DDR3L memory 533 MHz clock और प्रति clock 2 transfers के साथ operate करती है
- 1.35 V low-voltage DDR3L standard
- trace length matching, characteristic impedance और termination की ज़रूरत होती है
- DDR3 address bus termination resistors छोड़ने के विकल्प को simulate किया गया
- termination resistor के बिना भी threshold के आधार पर operation संभव दिखा
- लेकिन लगभग 0.7 V overshoot हुआ, जिससे memory datasheet की maximum 0.4 V overshoot condition का उल्लंघन हुआ
- अंत में address lines पर termination resistors जोड़े गए
- DDR3 routing में 60 ohm trace और 50 ohm termination resistor इस्तेमाल किए गए
- 40 ohm trace की width 0.24 mm है
- 60 ohm trace की width 0.10 mm है, इसलिए ज़्यादा dense layout संभव है
- 50 ohm resistors PCB के दूसरे स्थानों पर भी चाहिए थे, जिससे BOM घटाया जा सकता है
- T/R switch और IQ modulator enable pins को बहुत तेज़ी से switch करना पड़ता है
- FPGA की highest drive strength पर switch input rise time simulation में लगभग 400 ps है
- कुछ cm की PCB trace transmission line जैसी behave करती है, जिससे reflections होते हैं
- 50 ohm resistor और छोटे capacitor को series में रखी AC termination से DC level की समस्या के बिना reflections कम किए गए
- power supply में switching regulators, LDO और ferrite bead filters का combination है
- switching noise receiver thermal noise floor से कहीं ज़्यादा है, इसलिए strong filtering चाहिए
- calculation में worst-case condition पर लगभग 100 dB power filtering requirement आई
- 2-stage ferrite bead filter 1 MHz पर 100 dB attenuation हासिल करता है
- PCB में कुल 9 power rails हैं
- digital/FPGA के लिए 1.0 V, 1.8 V, 2.5 V, 3.3 V, DDR3 के लिए 1.35 V और 0.675 V
- analog के लिए low-noise 1.8 V, 3.3 V, 5.0 V में LDO और ferrite bead filters इस्तेमाल किए गए
हाई-स्पीड इंटरफेस और क्लॉक
- ADC, FPGA से 12-bit LVDS bus के जरिए जुड़ा है
- ADC samplerate 250 MHz है
- दो channels का data clock के rising और falling edge पर भेजा जाता है
- FPGA adjustable delay line का उपयोग करके capture timing को dynamically correct करता है
- DAC 500 MHz, 14-bit LVDS interface का उपयोग करता है
- इस FPGA में output delay line adjustment नहीं है, इसलिए PCB trace length matching महत्वपूर्ण है
- synthesis tool के अनुसार ±25 ps trace delay, यानी लगभग ±4 mm length difference के भीतर timing match की जा सकती है
- Ethernet PHY के लिए Realtek RTL8211F का उपयोग किया गया है
- चीन में standalone part $1 में मिल जाता था
- official datasheet NDA के अंतर्गत है, लेकिन चीनी reseller से “Confidential” marking वाला document मिल गया था
- Zynq FPGA का RGMII interface 3.3 V पर spec पूरा नहीं करता, इसलिए PS side power को 1.8 V पर set किया गया
- SD card और UART के लिए level shifter की जरूरत पड़ गई
- JTAG और debug UART को FTDI FT2232H से implement किया गया
- official Xilinx JTAG debugger की list price $270 है, इसलिए उसका उपयोग नहीं किया गया
- Xilinx के
program_ftditool से EEPROM configure करने पर Vivado इसे पहचान लेता है
- clock synchronization radar performance के लिए महत्वपूर्ण है
- ADC 250 MHz है
- DAC 500 MHz है
- FPGA logic को lower clock की जरूरत होती है
- FPGA internal PLL का 100 MHz clock jitter tool prediction के अनुसार 130 ps peak-to-peak है, जबकि external clock generator लगभग 4 ps peak-to-peak है
- PL side में CDCM6208 clock generator से 25 MHz crystal से कई 250 MHz और 500 MHz clocks generate किए जाते हैं
- ये clocks आपस में phase synchronized रहते हैं
- PS side अपना 33 MHz crystal उपयोग करता है, और power-on के बाद clock generator programming के लिए इसकी जरूरत होती है
- PS और PL के independent clock domains को उचित clock domain crossing से handle किया जाता है
manufacturing और board bring-up
- PCB को Chinese manufacturer से assembly सहित order किया गया
- 2 assembled boards और 3 blank PCBs मिले
- कुछ rare components assembly service में उपलब्ध नहीं थे, इसलिए उन्हें खुद order करके solder किया गया
- ADC, DAC, PLL जैसे महंगे parts इसी में शामिल थे
- FPGA assemble कराया जा सकता था, इसलिए 484-pin BGA को खुद solder करने से बच गए
- PCB quality कीमत के हिसाब से अच्छी थी, लेकिन 2 assembled boards में से 1 soldering issue के कारण तुरंत काम नहीं कर रहा था
- सस्ते $15 FPGA पर date और lot code छिपाए गए थे
- उसी series के development board के chip marking से यह अलग था
- आखिरकार यह काम कर गया, लेकिन source संदिग्ध ही रहा
- बाकी components को solder paste और hot air tool से खुद solder किया गया
- जिस board पर पहले से parts लगे हों, उस पर QFN package solder करने के लिए hot air tool चाहिए होता है
- double-sided assembly cost घटाने के लिए सभी components top side पर रखे गए
- bottom side पर जरूरत पड़ने पर extra decoupling capacitor लगाने की जगह ही छोड़ी गई, लेकिन वास्तव में इसकी जरूरत नहीं पड़ी
- FT2232H EEPROM programming के बाद Vivado hardware manager ने Zynq 7020 को recognize किया, और FPGA programming व debugging संभव हो गई
FPGA firmware और timing
- FPGA logic मुख्य रूप से data move करने का काम करता है
- ADC/DAC LVDS interfaces
- switches, PA, LNA आदि को सही समय पर on/off करने के लिए pulse timing
- PS से PL configure करने के लिए AXI registers
- ADC/DAC samples के लिए 2 DMA
- ADC, DAC, PLL, clock generator के लिए SPI interfaces
- अधिकांश signal processing PC पर की जाती है
- आगे चलकर FPGA में digital filtering और decimation करने से PC को भेजे जाने वाले data की मात्रा घटाई जा सकती है और framerate बढ़ाया जा सकता है
- LVDS receiver Xilinx appnote xapp1017 पर आधारित है
- हर LVDS lane में delay line और flip-flop जोड़े गए हैं
- state machine delay बदलकर data eye के center में sampling कराती है
- PCB routing और FPGA internal delay difference को dynamically correct करती है
- pulse timing circuit event-wise equality comparison वाले counter structure का है
- PS trigger करता है तो counter start होता है
- प्रत्येक subsystem और external chip को exact clock cycle पर control करता है
- कई pulses भेजने के लिए repeat interval को exact रखने वाला loop function है
- accurate burst timing speed measurement के लिए जरूरी है
- ADC या DAC trigger में 125 MHz clock का 1-cycle error हो जाए तो measured distance में 1.2 m error आता है
receiver noise और transmit power measurement
- antenna connector में matched load जोड़कर और transmitter बंद रखकर ADC output record किया गया, ताकि receiver noise check किया जा सके
- 33 ms, 80 लाख samples record किए गए
- average noise floor -139 dBFs था, जो expectation के करीब है
- कई interference signals दिखे, जिनमें सबसे बड़ा 25 MHz multiples पर था
- amplitude लगभग -100 dBFs था
- ADC input पर यह लगभग 15 µV RMS के बराबर है
- कारण PLL fractional spur है
- PLL output frequency को reference clock के integer multiple पर set करने से spur minimize हो जाता है
- PLL reference clock 250 MHz है, लेकिन phase detector में divide-by-2 के बाद 125 MHz उपयोग होता है
- 5.75 GHz setting पर spur लगभग गायब हो गया
- 5.875 GHz भी nearby multiple के कारण अच्छी तरह काम करता है
- DC/DC converter की switching frequency 2.5 MHz थी और output spectrum में दिखाई नहीं दी
- power filtering intended तरीके से काम कर रही है
- transmit power को PA built-in power detector से check किया गया
- DAC output को maximum amplitude के 85% पर set किया गया
- IQ modulator output लगभग +3 dBm होने की उम्मीद है
- PA gain 32 dB है, जो compression में जाने के लिए पर्याप्त है
- measured detector peak voltage 1.72 V था
- datasheet graph को linear extrapolate करने पर output power लगभग 33 dBm, यानी करीब 2 W स्तर की आती है
- यह PA के -1 dB compression point 34 dBm typical से मेल खाता है, इसलिए compression state लगती है
कैलिब्रेशन और pulse compression की गुणवत्ता
- matched load स्थिति में T/R switch के ज़रिए transmit leakage signal रिकॉर्ड किया गया
- transmit waveform 100 MHz bandwidth, 1 µs लंबाई वाला linear frequency sweep था
- DAC की maximum amplitude का 0.1 इस्तेमाल किया गया
- calibration से पहले received waveform में कई non-idealities दिखीं
- pulse से पहले ADC DC offset
- transmitter on होने पर spike
- transmitter LO leakage के कारण pulse DC offset
- ऊँची baseband frequencies पर ज़्यादा attenuation
- pulse के बाद ADC offset और ADC filter के high-pass operation के कारण DC level
- calibration से पहले pulse compression में sidelobe level -21 dBc था
- सबसे बड़ा कारण transmitter LO leakage था
- transmitter और receiver वही LO share करते हैं, इसलिए LO leakage receiver में DC में down-mix हो जाता है
- ADC DC offset को transmitter बंद स्थिति में receiver trigger करके मापा गया और बाद की measurements से घटाकर correct किया गया
- LO leakage को DAC से 0 output कराते हुए sweep trigger करके मापा गया
- ideally कोई transmission नहीं होना चाहिए, लेकिन LO leakage के कारण LO frequency signal transmit होता है
- transmit signal का DC level adjust करके ADC input को 0 बनाया गया, जिससे LO leakage cancel हो गया
- LO leakage calibration के बाद sidelobe level सुधरकर -36 dB हो गया
- यह ideal -42 dB से कुछ dB अधिक है
- AC coupling capacitor के high-pass operation के कारण एक लंबा -60 dB linear response बचा रहता है
- DC offset समस्या घटाने का एक और तरीका sweep को zero-centered के बजाय low-IF पर modulate करना है
- 50 MHz sweep पर 25 MHz offset इस्तेमाल करके 0~50 MHz तक sweep किया गया
- high-pass filter के कारण होने वाली DC offset समस्या खत्म हो गई
- drawback यह है कि zero-centered sweep की तुलना में अधिकतम usable bandwidth आधी रह जाती है
- transmit pulse पर Tukey window लगाने से दूर के sidelobe काफी घट जाते हैं
- α=0.1 पर pulse energy और receiver SNR में 0.8 dB की कमी आई
- 500 ns offset पर sidelobe level लगभग 20 dB घट गया
PA noise leakage समस्या
- receive mode पर switch करते समय T/R switch transmitter से receiver पर बदल जाता है, लेकिन अगर PA चालू रहता है तो PA output noise receiver में leak हो जाता है
- T/R switch लगभग 50 ns में बदल जाता है, लेकिन PA enable/disable में लगभग 10 µs लगते हैं
- single antenna इस्तेमाल करने पर इस लंबे PA switching time के कारण receiver noise बढ़ जाता है
- अगर PA input 50 ohm resistor का thermal noise है, तो यह -174 dBm/Hz होता है, और PA gain 32 dB तथा PA के अपने noise के बाद output noise floor लगभग -135 dBm/Hz हो जाता है
- T/R switch isolation के बाद LNA input पर PA noise लगभग -165 dBm/Hz अनुमानित है
- यह thermal noise floor -174 dBm/Hz से अधिक है, इसलिए PA बंद न करने पर receiver performance सीमित हो जाती है
- वास्तविक measurement में PA on स्थिति में T/R switch से जुड़े receiver का ADC noise floor, दूसरे port से जोड़ने की तुलना में 2.1 dB अधिक था
- calculated value की uncertainty को देखते हुए यह theory से अच्छी तरह मेल खाता है
- दो antennas इस्तेमाल करने पर दूसरे receive switch को RX2 पर switch किया जा सकता है और RX1 का LNA बंद किया जा सकता है, जिससे isolation इतना बेहतर हो जाता है कि PA leakage receiver noise को प्रभावित नहीं करता
detection और tracking software
- ADC samples से target detection पाने की pipeline इस प्रकार है
- हर receive pulse पर pulse compression करना
- pulse-count dimension में FFT करना
- range और Doppler velocity axes वाला range-Doppler map बनाना
- range-Doppler map के हर pixel की amplitude उस range-velocity bin की received power दर्शाती है
- target bin को CFAR algorithm से पहचाना जाता है
- fixed noise floor के बजाय आसपास के bins के average से local noise floor estimate किया जाता है
- अगर test किए जा रहे bin की amplitude, threshold × estimated noise floor से बड़ी हो, तो उसे target के रूप में mark किया जाता है
- noise floor समय, nearby target sidelobe, ground reflection जैसे clutter के अनुसार बदल सकता है
- बड़े target के sidelobe से होने वाली false detection को post-processing से हटाया जाता है
- अगर उसी row या column में बहुत बड़ा target हो, तो इसे sidelobe माना जाता है
- adjacent bins से amplitude बड़ी होनी चाहिए, इसलिए compressed pulse की peak position ही detect होती है
- target tracking के लिए Stonesoup Python library इस्तेमाल की गई
- हर target की position, velocity और uncertainty को Kalman filter से track किया गया
- implementation काफी हद तक StoneSoup tutorial पर आधारित है
- radar range और velocity मापता है, लेकिन angle जानकारी न होने से केवल 1D tracking संभव है
- transition model में constant acceleration इस्तेमाल किया गया
- Kalman filter measurement से acceleration estimate करता है और अगली position predict करता है
सड़क किनारे वास्तविक measurement के परिणाम
- सड़क के पास radar लगाकर vehicles को मापा गया
- pulse length: 2 µs
- bandwidth: 150 MHz
- pulse count: 1024
- RX length: 5 µs
- next pulse से पहले delay: 7 µs
- अलग-अलग TX/RX antennas, कुल 2 इस्तेमाल किए गए
- antenna खुद बनाया हुआ horn antenna था
- 150 MHz bandwidth 1 m range resolution के बराबर है
- resolution वह न्यूनतम दूरी है जिस पर दो point targets को अलग किया जा सके
- single target position accuracy, SNR के अनुसार resolution से बेहतर हो सकती है
- pulse interval 12 µs, 83 kHz pulse repetition frequency के बराबर है
- 5.8 GHz RF और 12 µs pulse repetition interval पर unambiguous velocity range -1077 m/s ~ +1077 m/s है
- यह speed of sound से 3 गुना से भी अधिक है, इसलिए car measurement में velocity ambiguity समस्या नहीं है
- Doppler velocity resolution 2155 m/s ÷ 1024 = 2.1 m/s है
- एक ही range पर दो targets को अलग करने के लिए इतना velocity difference चाहिए
- single target velocity accuracy, SNR के अनुसार और बेहतर हो जाती है
- Video 9 phone video और range-Doppler map को synchronize करने का result है
- CFAR detection लाल plus से दिखाए गए हैं
- Y-axis Doppler velocity है, negative value radar की ओर आने की direction है
- X-axis range है
- zero Doppler की बड़ी line stationary target reflection है
- पास की vehicles को camera video और radar detection से आसानी से match किया जा सका
- आगे की vehicle के अधिक दूर की objects को छिपाने वाली shadowing होती है
- camera में साफ न दिखने वाली objects को भी radar अच्छी तरह detect करता है
- road के मुड़ने से line of sight block होने से पहले तक लगभग 400 m range की vehicles detect हुईं
- DC offset के प्रभाव से range direction में बड़ा sidelobe दिखता है
- इससे बड़े target के पास छोटी objects detect करना मुश्किल होता है
- सबसे दूर की vehicle overlapping sidelobe के कारण CFAR में हमेशा detect नहीं होती
- Video 10 इसी measurement पर Kalman tracker लागू करने का result है
- tracker CFAR detection को unique ID वाले targets को assign करता है
- shadowing और sidelobe के कारण दूर के targets की detection कम होने पर track खो जाता है, और फिर से दिखने पर नई ID assign होती है
Low-IF पल्स और सिंगल एंटीना प्रयोग
- दूसरे सड़क प्रयोग में RF bandwidth 75 MHz और modulation frequency 38 MHz इस्तेमाल की गई
- frequency को 0.5 MHz से 75.5 MHz तक sweep किया गया
- बाकी parameters वैसे ही रखे गए
- उम्मीद के मुताबिक DC offset के कारण बहुत चौड़ा sidelobe दिखाई नहीं दिया
- range resolution पहले की तुलना में आधी यानी खराब हो गई, लेकिन वाहन tracking में कोई समस्या नहीं हुई
- वाहन बड़े होते हैं, इसलिए 2 m range resolution पर भी उन्हें अलग किया जा सकता है
- शुरुआत में गुजरते वाहनों का दूसरा reflection दोगुनी दूरी और दोगुनी गति पर दिखा
- signal का path वाहन, पास के signboard, फिर वाहन से होकर radar तक लौटने वाला था
- amplitude कमजोर और फैला हुआ था, इसलिए CFAR target के रूप में detect नहीं हुआ
- साइकिल target के रूप में detect नहीं हुई
- उसकी speed stationary targets से पर्याप्त रूप से अलग नहीं थी
- low-speed target के आसपास के stationary targets CFAR noise floor calculation में शामिल हो गए
- साइकिल का छोटा radar cross-section बढ़े हुए noise floor से पर्याप्त बड़ा नहीं था
- इस उपयोग के लिए ज्यादा RF frequency फायदेमंद है
- RF frequency को दोगुना करने पर Doppler velocity bin separation दोगुना हो जाता है
- maximum unambiguous Doppler velocity आधी रह जाती है
- पुलिस speed-measurement radar आम तौर पर 10~35 GHz band इस्तेमाल करते हैं
- detect किए गए objects का SNR इस दूरी पर अच्छा था
- 450 m दूरी पर maximum SNR लगभग 35 dB था
- 550 m के बाद line of sight नहीं थी, इसलिए detection नहीं हुआ
- दूरी दोगुनी होने पर SNR में 12 dB की कमी आनी चाहिए
- सिंगल एंटीना प्रयोग में low-IF measurement जैसे ही parameters इस्तेमाल किए गए, लेकिन pulse length को 2 µs से घटाकर 1 µs किया गया
- एक ही antenna को transmit/receive switching के साथ इस्तेमाल किया गया
- 1 µs में प्रकाश 300 m चलता है, लेकिन signal round-trip होता है, इसलिए full pulse receive करने की minimum range 150 m है
- 150 m से करीब targets भी partial pulse से detect किए जा सके
- pulse compression में केवल partial pulse इस्तेमाल करने पर range resolution और SNR कम हो जाते हैं
- इस setup में minimum detection range लगभग 40 m थी
लागत, सार्वजनिक सामग्री और अंतिम मूल्यांकन
- radar का Schematic सार्वजनिक किया गया है
- थोड़े बदलावों के साथ यह SDR के लिए भी उपयोगी हो सकता है
- FPGA की जरूरत वाले दूसरे applications के reference material के रूप में भी इस्तेमाल किया जा सकता है
- firmware और software फिलहाल सार्वजनिक नहीं हैं
- इन्हें सार्वजनिक करना है या नहीं, यह अभी तय नहीं किया गया है
- लागत इस प्रकार है
- PCB manufacturing और 2 boards की assembly: 330 USD
- खुद solder किए गए Digikey parts: 225 EUR, लगभग 240 USD
- कीमत में 24% VAT और shipping शामिल हैं
- माना जा सकता है कि इसी price range में इसी तरह का commercial pulse compression radar उपलब्ध नहीं है
- समान RF bandwidth वाले SDR भी काफी महंगे हैं
- तैयार radar की संरचना बुनियादी तौर पर आधुनिक बड़े radars जैसी है
- digital signal processing इस्तेमाल करता है
- arbitrary waveform support करता है
- high pulse repetition frequency के कारण maximum unambiguous Doppler velocity बड़ी है
- output power और antenna size छोटे होने के कारण maximum range बड़े radars की तुलना में कम है
2 टिप्पणियां
Hacker News की रायें
उसी साइट का पुराना लेख https://hforsten.com/heartbeat-detection-with-radar.html याद आ गया
Amazon से सस्ते 10GHz/24GHz Doppler radar modules खरीदकर उनसे प्रयोग किया था, और सिर्फ spectrogram देखकर भी heartbeat और breathing साफ़-साफ़ पकड़ी जा सकती थी
उस समय के samples में ceiling fan की ओर apunt किया गया 10GHz video https://www.youtube.com/watch?v=tIiFvByf1CQ, सिक्का उछालकर गिराई गई surface के नीचे से ऊपर की ओर लिया गया video https://www.youtube.com/watch?v=8riretP8ylE, और surface पर घूमते सिक्के की ओर लिया गया video https://www.youtube.com/watch?v=5lnYvJoxRak हैं
rotating surface से बनने वाली comb filtering सच में शानदार है, और इस्तेमाल किया गया 10GHz module https://www.amazon.com/HiLetgo-Microwave-Detector-Wireless-1... था
बढ़िया। अब suburban missile guidance system का आखिरी टुकड़ा भी पूरा हो गया, और लगता है Jones परिवार के लिए इस साल block party पार करना मुश्किल होगा
अगली बार phased array radar भी cover करें तो अच्छा होगा। कुछ पड़ोसी अपने कुत्ते की गंदगी नहीं उठाते, इसलिए ज्यादा precision चाहिए
हालांकि firmware/software से radar-related elements हटाने पड़े थे, शायद ITAR की वजह से: https://forum.krakenrf.com/t/where-has-the-passive-radar-cod...
Tactical and Strategic Missile Guidance, Seventh Edition https://www.amazon.com/Tactical-Strategic-Missile-Guidance-S...
Tactical missile warheads https://www.amazon.com/Tactical-Warheads-Progress-Astronauti...
http://www.interestingprojects.com/cruisemissile/
इसमें बहुत कम modifications चाहिए और antenna gain भी बढ़ाया जा सकता है। ज्यादातर काम physical fabrication का है, इसलिए hobby level पर भी approachable लगता है
https://www.radartutorial.eu/06.antennas/Phased%20Array%20An...
कमाल का काम है। हैरानी की बात है कि एक व्यक्ति ने यह कर दिखाया, और इसे rotating mount पर रख दें तो यह planar radar detector बन जाता है
इसमें tilt भी जोड़ दें तो यह aircraft/weather radar से बहुत अलग नहीं लगता। local currency के हिसाब से cost कम नहीं है और दूसरे comment के मुताबिक 570 dollars है, लेकिन लगे हुए समय को देखते हुए समझ आता है
पर्याप्त budget हो तो शायद कोई सीमा नहीं। अगर civilian-made 6GHz radar से military aircraft track हो जाए तो वे इसे कैसे interpret करेंगे, यह जानना दिलचस्प होगा। अनुमानित max range 1200m बताई गई है, लेकिन अगर बड़े antenna वगैरह से इसे 10x बढ़ा दिया जाए तो क्या होगा
पहले, aircraft radar में receivers होते हैं और वे दूसरे radars द्वारा transmit किए गए pulses भी receive करते हैं। असल में radar jamming भी इसी तरह काम करती है: same band/wavelength पर बहुत ज्यादा power डालकर screen को clutter से भर देती है
radar की frequency, pulse repetition frequency (PRF), waveform जैसी characteristics होती हैं, इसलिए उसे identify करना comparatively आसान होता है। radar जिन bands में operate करता है वे regulated होते हैं, और military व civilian कई agencies radar transmissions को detect करती हैं
ऐसा छोटा DIY project बड़ा threat नहीं है, लेकिन radar facilities के पास, खासकर military facilities के पास transmit करने पर बहुत जल्दी परेशानी हो सकती है
Finland के बारे में नहीं जानता, लेकिन जहाँ मैं रहता हूँ वहाँ civilians को military radar की fingerprinting करना या fingerprint database बनाना allowed नहीं है। practically यह सिर्फ military कर सकती है
output power बढ़ाते ही ऐसी चीज़ जल्दी DIY scope से बाहर चली जाती है। मैं इस व्यक्ति को phased array radar बनाते देखना भी चाहूँगा। source: radar से जुड़ा काम किया है
military threat warning receivers expected operational threat environment के हिसाब से highly tuned systems होते हैं
फिनलैंड के लोगों ने फिर कर दिखाया। वे जिस विशेषज्ञ क्षेत्र को संभाल रहे हैं, उसकी गहराई और दायरा यकीन करना मुश्किल है
पूरा प्लान बनाया, चीन में बनवाया, और लगता है बोर्ड का आधा हिस्सा सच में चल पड़ा। यह कुछ वैसा है जैसे किसी startup में एक महीने तक backend+frontend ऐप बनाकर “भगवान करे चल जाए” वाली फीलिंग
लेख में “शक पैदा करने जितना सस्ता 15 डॉलर वाला FPGA, जिसके date और lot code भी संदिग्ध रूप से ढके हुए थे” वाले हिस्से पर, मैंने कभी GoPro के operations वाले एक व्यक्ति से पूछा था कि 400 डॉलर के असली जैसे दिखने वाले चीनी नकली प्रोडक्ट 40 डॉलर में कैसे संभव हैं
जवाब था कि वे सचमुच scrap yard से chips लेते हैं। उदाहरण के लिए, वे memory chips का batch खरीदते हैं जो test पास नहीं कर पाया, और हो सकता है कि वे सिर्फ़ किसी खास temperature range में ही काम करें
उन्होंने कहा कि दूसरे parts भी अक्सर इस तरह spec के हिसाब से चुने जाते हैं कि वे औसतन 6 साल नहीं, बल्कि करीब 6 महीने चलें। क्योंकि उन्हें पता है कि ऐसे “gadget” products ज़्यादातर weekend पर थोड़ा इस्तेमाल होते हैं और फिर cupboard में रख दिए जाते हैं
ऐसे R&D projects के लिए यह ठीक हो सकता है, लेकिन commercial product बनाते समय सावधान रहना चाहिए। राजनीतिक पहलू भी हैं, और हो सकता है इसमें थोड़ी paranoia भी हो, लेकिन कुछ markets के लिए products में चीनी silicon components के इस्तेमाल को रोकने वाले bills भी आ रहे हैं
अच्छा उदाहरण 45 डॉलर वाला AlienTek DP100 100W USB-C micro lab power supply है: https://www.youtube.com/watch?v=Pd6LG7iP2GQ
इसी तरह की चीज़ पर Digilent logo लगा हो तो शायद करीब 500 डॉलर की होगी
और genuine GoPro में भी average से ज़्यादा failure rate है, और 4K recording पर वह खुद overheat हो जाता है या मनमाने ढंग से बंद हो जाता है
वाकई कमाल है
पुराने लेख https://hforsten.com/radar-phase-measurements.html और https://hforsten.com/6-ghz-frequency-modulated-radar.html ने मेरे sonar system के काम में बहुत मदद की थी
यह लेख भी एक जटिल विषय को बहुत अच्छे से समझाता है। संबंधित काम का उदाहरण https://twitter.com/alextoussss/status/1756371553460121766 पर है
खूबसूरत काम है। Henrik लंबे समय से ऐसे radar और RF data acquisition projects कर रहे हैं जिनका स्तर public documentation में आम तौर पर कम ही दिखता है, और documentation की quality भी बहुत ऊंची है
जबरदस्त काम है। RF, hardware, firmware, software—पूरे stack में ऐसी technical depth दिखना दुर्लभ है
लेख पढ़ते-पढ़ते और बेहतर लगता जाता है
मैं सोच रहा हूं कि ground plane को layer 1 और 6 के बजाय layer 2 और 6 पर क्यों रखा गया
high-frequency PCB design का experience न होने के नाते मुझे लगता कि ground से shielding बनाई जाती और power plane को layer 3 या 4 पर रखा जाता। निश्चित रूप से कोई अच्छा कारण होगा, पर साफ़ दिख नहीं रहा
सभी chips के आसपास ground plane को काटना पड़ता है, और high-speed signals को सच में continuous ground plane चाहिए। खासकर RF IC को ground तक छोटा access चाहिए
IC और ground plane के बीच दूरी को minimum करना हो तो layer 2 सबसे अच्छी layer है
किसी खास characteristic impedance को maintain करने के लिए, किसी खास width की trace से तय दूरी पर plane (GND) चाहिए। signal के ऊपर-नीचे plane न हो तो desired impedance value नहीं मिल सकती
top और bottom layers को extra fill भी किया जा सकता है, पर impedance पर उसका असर थोड़ा ही होता है
image में signals layer 1 (red), layer 3 (orange), layer 6 (blue) पर दिखते हैं, ground layer 2 (green) और 5 (pink) पर, और power layer 4 (cyan) जैसी दिखती है
कुछ vias मिलाकर देखने पर layer 2 और 5 पक्का connected हैं
यह भी दिखता है कि उसके आसपास भी fill नहीं है। figure का order पक्का नहीं है, पर 123/654 जैसा दिखता था, फिर लगता है body गलत है और 123/456 में layer 2 और 4 GND हैं
अंदर के low-speed digital signals ground/power, सुधारें तो ground/ground planes के बीच फंसे हुए लगते हैं; दूसरे PCB से अलग रखें तो वे आम तौर पर सबसे बड़े noise source होते हैं, इसलिए यह अच्छा choice हो सकता है
power/ground planes को एकदम पास होना चाहिए। इस frequency पर bypass capacitors लगभग अपना काम नहीं कर पाते
radar की बात निकली है तो, अब usable radar सिर्फ़ 34 cents का मिलता है: https://www.aliexpress.com/item/1005006240906322.html
वह chip असल में इस use के लिए design भी नहीं हुई थी, बल्कि PIR sensor chip को repurpose किया गया है
radar का core बस PCB के left half के बीच में लगा एक single multi-GHz transistor है, और copper pattern से बना एक बेहद clever feedback circuit है जिसे शायद किसी ने कई सालों तक design और refine किया होगा
कल्पना से भी परे की पागल इंजीनियरिंग...
यह उस तरह के engineer के बहुत करीब है, जैसा मैं धुंधले तौर पर कल्पना किया करता था.