Code/Review

K-Radar Radar preprocess (matlab code)

Shy_un 2023. 12. 13. 14:18

gen.m

main 함수와 같은 역할을 하는 파일

다음과 같은 step으로 되어있다.

 

1. Default & Hyper-parameters

2. Tesseract Generation

3. ZYX Cube Generation

4. BEV Image Generation

5. Point Cloud Image Generation

1. gen_1_load_data.m

레이더와 라이다 데이터를 처리하기 위한 초기 설정과 파라미터를 정의

레이더나 라이다를 공간적으로 매핑하는데 필요한 기초적인 설정

 

경로설정

파일 이름 및 확장자 지정 : Radar=bin, LiDAR=baginfo_label.mat에서 Range, Azimuth, Elevation 정보 가져옴하이퍼 파라미터 설정(각 축의 최소값, 최대값, 그리고 단위당 거리가 설정)

 

 

 

2. gen_2_get_tesseract.m

레이더 데이터를 처리하여 4차원 배열(tesseract)을 생성하는 과정

 

1. 초기 설정 및 경로 구성

현재 작업 디렉토리를 경로에 추가

사용자 정의 매개변수 및 레이더 관련 매개변수 설정 함수(setUserDefinedParamssetRadarParams)를 호출

하드웨어(hwCfg), 레이더(radarCfg), 도착 각(aoaCfg) config를 사용하여 레이더 시스템을 초기화

 

2. 파일 처리 및 프레임 크기 계산

레이더 바이너리 데이터에 대한 파일 경로와 이름을 구성

서로 다른 칩들 중 최소 파일 크기를 찾아 프레임당 바이트 크기를 기반으로 프레임 수(numFrames)를 결정

 

3. 레이더 큐브 초기화

레이더 데이터를 저장하기 위해 5차원 배열(radarCube)을 초기화합니다.

[num ADC Samples, num RxAntena per Chip, num Chirps per Loop, num ChirpLoops, num Chips]

 

4. 데이터 처리 루프

각 프레임에 대해 반복하며 각 칩마다 ADC 데이터를 읽고 레이더 큐브에 재구성 (for frame -> for chip -> adcData read)

radarCube(:, :, :, :, chipIdx) = (ADC 데이터, cfg)

 

모든 칩에 대한 ADC 데이터가 포함된 레이더 큐브 데이터 보정 (calibration)

범위 및 도플러 처리를 위해 고속 푸리에 변환(FFT)을 수행

처리된 레이더 데이터를 4차원 형태로 나타내는 배열 arrDREA [Doppler - Range - Elevation - Azimuth] 초기화

 

5. Angle of Arrival(AoA) 입력 데이터 추출

dopplerFFTout 배열에서 특정 도플러 및 거리 인덱스에 해당하는 데이터를 추출

srsAmanda()함수를 통해 AoA 입력 데이터 분석 (DBF: 디지털 빔 포밍 옵션 사용) -> 원하는 방향으로의 신호는 강화되고, 원치 않는 방향으로의 신호나 잡음은 억제

각 Doppler와 Range에 따른 azimuth, elevation 데이터를 DBF를 거쳐 얻음