FMCW Software
1 Basic radar parameters
| Parameter | Value | Unit | Comment | 
|---|---|---|---|
| C | 3*108 | m/s | Speed of light | 
| sweep_time | 0.0005 | s | Sweep time | 
| Sweep Frequency | 2~4 or 5.2~8.2 | GHz | |
| B | 2 or 3 | GHz | Bandwidth | 
| S | S = B / sweep_time | ||
| IF | 1 | MHz | adc sample,IF frequency | 
| maximum range | m | IF / 2 * c / (2 * S), according to the Nyquist theorem,so IF / 2 | |
| if_offset | KHz | Zero point estimation, due to the influence of signal cable length | 
2 Operations before power-on
- The transmitter antenna and receiver antenna are connected to the corresponding ports of the device.
 - The transmitter must not be empty before powered on.
 - Check whether the control bus is connected.
 - Check whether the synchronization signal cable is connected.
 - Check whether the IF signal line is connected.
 - Check whether the VGA voltage control is connected.
 - Power on FPGA(must be power on before radar, because the output VGA voltage is unstable when it is just powered on).
 - Power on Radar.
 - Use the Ethernet cables to connect FPGA with computer.
 
3 Packet Parsing
Each frame contains flag、tx no、rx no、frame no adc data.
| No | field | data type | packet size | description | 
|---|---|---|---|---|
| 1 | packet flag | 12 | The flag of each packet | |
| 2 | timestamp | unsigned long long | 8 | The timestamp,if you parse packet from a file,otherwise,the field is None | 
| 3 | tx | unsigned short | 2 | The transmitter antenna No | 
| 4 | rx | unsigned short | 2 | The receiver antenna No | 
| 5 | frame no | unsigned long | 4 | The frame No | 
| 6 | adc data | unsigned char | 1 | adc data | 
4 Process Parameters
| Parameter | Value | Unit | Comment | 
|---|---|---|---|
| num_tx | the number of tx | ||
| num_rx | the number of rx | ||
| loop_size | data size after traversing each antenna | ||
| num_loop_per_frame | the number of loops each frame | ||
| frame_size | the data length of each processing window | ||
| num_range_nfft | 512 | the number of points of range fft | |
| num_doppler_nfft | 64 | the number of points of doppler fft | |
| num_angle_nfft | 180 | the number of points of angle fft | 
5 About the repository
5.1 Install Dependencies
   pip install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/
  5.2 Changing the IP Address
- The FPGA default IP address is "192.168.0.2",default port is 5000;By default ,it send to the IP address "192.168.0.3" and port 6000.
 - So modify the localhost IP address to "192.168.0.3".
 
5.3 Select the antenna number you want to use by modifying txs list and rxs list
   local_udp_ip = "192.168.0.3"
   local_udp_port = 6000
   fpga_udp_ip = "192.168.0.2"
   fpga_udp_port = 5000
   
   # FPGA use antenna no
   txs = [3,4]
   rxs = [1,2,3,4,5,6,7,8,9,10]
   
   r = Receive(local_udp_ip,local_udp_port,fpga_udp_ip,fpga_udp_port)
   msg,result = r.setting(txs,rxs)
  5.4 Plot data real time
   python plot_data_real_time.py
  5.5 Save raw data to file,
-  
You can run the following script if you want to save the data locally,and the file will be saved in ‘./data/'.
python receiving_data_and_save.py -  
This script saves the local time for easy time synchronization.
 
5.6 Plot data from file
   python plot_data_from_file.py
  6 Algorithm processing flow
- Range FFT
 - Remove DC
 - Doppler FFT
 - Angle FFT
 - Find the target
 - Point cloud
 - Point cloud clustering
 
7 FQA
-  
How does the antenna switch work?
If the working tx antennas is [1,2],rx antennas is [1,2,3,4,5], and the switching order is:tx1,rx1,rx2,rx3,rx4,rx5,tx2,rx1,rx2,rx3,rx4,rx5.