Github Page

2/04/2026

BLE Channel Sounding (정리 중, 추후 보완)

1. BLE CS(Channel Sounding) 

글을 작성한지 너무 오래되었는데, 일단 게시 후 추후 아래 순서 및 글도 전부 수정

Channel Sounding 이해 하기 위해서 간단히 관련 부분 자료를 링크 

RF Mixer 와 I/Q Mixer 이해 
RF Mixer 동작원리 

RF RTLS 의 기본개념 과 TI BLE CS(Channel Sounding) Demo 분석 
TI BLE CS Demo 분석이며, TI 문서가 좋음 

Nordic BLE CS(Channel Sounding) Demo 분석


1.1 BLE 와 WIFI 차이 

BLE는 WIFI 처럼 기본적으로 OFDM을 사용하지 않으며, 대신에 Channel Hopping 을 하여 이를 해결한다. 
간단히 말해 FDM 대신에 TDM(Time Division Multiplexing) 방식으로 Time Slot으로 이를 해결한다는 것이다. 

BLE의 경우, 
자체가 전력소비를 최대한 줄이기 위해서 IFFT / FFT를 사용하지 않기 위해서 라고도 한다. 
참고로 WIFI 는 OFDM 기반으로 IFFT/FFT 사용함

구분 Wi-Fi BLE
Channel 구조 ✓ OFDM 사용 (Multiplexing) (
(QAM/등)
✕ OFDM 미사용 (Channel Hopping)
(GFSK / ASK 기반)
Channel Bandwidth 1 Channel
(20 / 40 / 80 MHz)
1 MHz Channel 단위
FFT / IFFT ✓ 필수사용 ✕ 사용없음 (저전력 위해)
Channel 정보 CSI를 통해
주파수 응답을 한 번에 획득
Channel Hopping +
시간 누적을 통해 정보 구성



1.3 BLE CS Range Resolution 확인


  • FMCW Radar 의 기본이해 
1.2  Range Max (Maximum Range) 
1.3 Range Resolution 
Radar 기본원리를 이해하면, 쉽게 이해가능
Range Resolution 까지만이라도 이해하고 오자.

  • BLE CS Range(Distance) 의 Max 
9.2. Distance estimation based on phase and amplitude information
https://www.bluetooth.com/wp-content/uploads/Files/Specification/HTML/Core-60/out/en/architecture,-change-history,-and-conventions/architecture.html#UUID-a8d03618-5fcf-3043-2198-559653272b1b

Distance Estimation Based on Phase-Based Ranging (PBR)
BLE CS Channel 확인 
0~78ch까지 존재  Min:15 Ch, Max: 72 Ch (1MHz)

BLE CS Channel 확인 
 상위 공식들이 너무 어려울 거 같아 아래와 같이 Radar 와 같이 비교해서 쉽게 이해해보도록 하자. 

  • FMCW Radar Max 과  BLE CS Range Max 비교 
ΔR = c / (2 * B)       // 2는 RTT 즉 왕복  
     c = 3×10⁸,3e8 m/s (빛의 속도)
     B = 1MHz (Bandwidth of BLE CS)

즉 상위 공식대로 보면, 1 Ch 는 측정 왕복한계거리(왕복최대거리)이며,  150m이며, 이 거리가 넘어가면, 10m 인지 160m 인지 측정이 모호 해진다.
Radar 의 경우,  Sample 의 갯수 기반으로 FFT SIZE가 정해져, 각 단위가 정해진다.

 
상위 BLE CS 9.2 공식과 Radar Range Resolution 공식 동일하다. 
다만, Radar는 Sweep bandwidth 중요, BLE CS 통신이므로 Bandwidth 

  • BLE CS Range Resolution 
각 Bandwidth 별 Range(Distance) Resolution 
  1. 1 Ch   = 1MHz    = 150m        =  150m
  2. 2 Ch   = 2MHz    = 150/2m     =  75 m 
  3. 3 Ch   = 4MHz    = 150/4m     =  37.5m
  4. 72 Ch = 72MHz  = 150/72m   =  2.08m 

상위와 같이 계산을 해봐도, 이미 거리 해상도 정밀도는 정해져 있다고 본다.
하지만, 이제 이걸 어떻게 더 향상을 시키는 지에 대해 알아보자. 
어떻게 보면 이게 핵심 기술이다.


1.4 Range(Distance) 측정보완   

BLE CS 에서 주파수 hopping 해서 사용한다고해도 Max 72ch 이므로, 최대 거리 해상도는 정해져 있다.  
Bandwidth 2MHz로 변경해도, 이미 BLE Sweep bandwidth 는 정해져 있어서 별 차이가 없다. 

  • 거리해상도(Range Resolution)  보완 측정 
  1. BLE CS RTT 이용 
  2. MUSIC 알고리즘 

상위에 부족한 Range Resoution을 상위 2개를 더해서 보완해서 15cm~ 10cm 까지 향상을 시키는 걸로 알고 있다. 
이외 더 있다면, 그 부분은 더 알아 보도록 하겠다. 


WIFI Sensing Array 
ESP32 1개 를 총 8개 Array 로 MUSIC 알고리즘 적용 
나도 아직 완벽히 이해를 못했지만, 각 공분산 형태로 계산을 해서 보정을 해나가는 것로 알고 있음 

  • RTT(Round Trip Time) 측정 
Channel Sounding Packet Format

CS_SYNC 의 기반으로 계산 


Distance Estimation Based on Round-Trip Time (RTT)
RTT는 간단히 생각해서 아래 Time r을 버리고 ToF 2개를 구하는 것임 
https://docs.silabs.com/rtl-lib/latest/rtl-lib-channel-sounding-fundamentals/#distance-estimation-based-on-round-trip-time-rtt

 
  • MUSIC 알고리즘 확인 
TI 문서를 보면, BLE CS 에서 MUSIC 알고리즘을 사용 
 https://www.ti.com/lit/an/swra791/swra791.pdf


  
2. BLE CS 구조 사용 


FSK(GFSK)

ASK


BLE CS Block Modulation Role
CS_SYNC GFSK Time / Frequency Synchronization
CS_TONE ASK Phase Measurement


  • BLE CS Procedure
Ini
https://docs.silabs.com/rtl-lib/latest/rtl-lib-channel-sounding-fundamentals/#bluetooth-channel-sounding-procedure


BLE CS Packet Format 
  

CS Packet 

Not OFDM , 이거 대신 주파수 Hopping 즉 TDM 


BLE CS 소개 

BLE CS 토론 및 설명 

BLE Spec 

BLE 의 LO Phase 차이 보정 


2.1 BLE CS PBR(Phase-based Ranging) 이해 

FMCW의 1 Chirp 
FM기반의 Ramp 신호 1 Chirp 

Radar의 FM Chirp하고 개념은 거의 비슷하며, 
즉 Phase 기반으로 시간을 Ramp 신호에 반영을 CS Tone으로 만들어 내는 것이다. 

  • FMCW Radar 와 BLE CS Tone 비교  
  1. PBR Tone 의 Ramp (Phase 기반)
  2. FMCW 의 1 Chirp ( Frequency 기반)


CH   Tone         Frequency     Phase 변화 
Ch1  Tone1       f                      
Ch2  Tone2       f
Ch3  Tone3       f
Ch4  Tone4       f 

72 ch 가능 
1MHz 까지 가능

다만, WIFI 처럼 OFDM을 사용하지 않고, CS SYNC 와 CS TONE(ASK)로 보낸다고 한다.
즉, Sweep Frequency 에서 각 주파수 시작 위치 Frequency hopping(TDM)해서 각 채널을 만들어 보내는 것이다. 

72MHz bandwith로 한계 이를 어떻게 극복하나 

TI RF Switch (Antenna Switch)
아래와 같이 θ(theta)는 2개의 Phase 차이 이며, 이를 시간의 Delay 생각하면 
BLE CS에서는  Channel Hopping으로 하므로, Antenna Switch는 반드시 θ(theta)보다 빨라야 한다. 
https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AQ0TYkLXd7cPWtNUtMqjSw__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST



1.4 BLE CS(Channel Sounding) MODE 

TI BLE Channel Sounding 
- MODE1/2/3/4





QAM 대신 BPSK 사용  (TI BPM과 비슷)
즉 QAM은 시간에 따라 정확한 Phase를 하기가 힘든 구조이며, QPSK는 가능은 하나 복잡함 
그래서 BPSK 즉 180도 기반으로 사용 

TI BLE Channel Sounding 
-  Appendix A 


3.3  BLE AoA 

sin(theta)로 하지만, 동일한 CS TONE을 RX에서 받아 2 개의 Phae 차이를 구분해서 한다.
하지만, 여기에 차이가 있다. 

BLE Antenna는 Switch 하는데, 이게 Radar 같으려면, theta 보다 더 빨리 Switch 해야 한다.
Radar Switch를 안하겠지만, BLE는 Tranceiver는 Switch를 하므로 이 부분 추후 

Real Time Localization System (RTLS) based on Bluetooth® Low Energy

Antenna Switching in Channel Sounding

각 Antenna 의 Phase 차이로 Spatial Frequency 파악 가능 

1/02/2026

Github Pages/Mkdocs/ReadMe 정리2

1. Mkdocs 와 Github 문서정리 

아무리 생각을 해보도 Github Pages로는 Mkdocs가 가장 적절한 것으로 판단이 되어진다.
여러 개를 써봤지만, 이렇게 깔끔하게 내 취향을 좋게 맞춰주는게 많지 않을 듯하다.

Why
Markdown 문서 기반으로 Web hosting이 쉽게 해주기 때문이다.

Limitations
다만 기술 문서 관점에서 다시 평가하면,
reStructuredText(.rst) 중심의 Sphinx가 더 적합한 선택으로 보인다 (Sphinx도 Markdown 지원함)
Doxygen + Breathe + Exhale 의 조합이 가장 낫을 듯하다. 
여기에 Call Flow도 넣으면 더 좋고 (이외에 PDF, ePUB 등) 

  • Github 와 Mkdocs
현재 Github의 Markdown과 Mkdocs가 가장 적절하게 운영할 수 있는 것 같으며, 최근 변화에도 그런 것 같다.   

  • ReadTheDoc 사용 (Sphinx 와 mkdocs)
현재도 ReadTheDoc를 무료로 사용하고 있으며, 이 사이트는 Sphinx 와 Mkdocs 둘 다 지원

  • Readme 와 ReadtheDocs 가격비교 
ReadTheDoc 괜찮지만, 아래의 Readme도 한번 사용해봐야 겠다. 무료로 써 본 다음에 결정 

Readme 가격 
무료로 쓰려고 했으나, 실패

ReadtheDocs 가격 
현재도 사용중이며, 다만 서버가 간혹 문제가 발생하는 경우가 발생하지만 무료로 이것만으로도 만족^^



1.1  Mkdocs 의 설치 

mkdocs는 구글로 검색을 하면 쉽게 다 알 수 있으며, 작성 방법도 너무 쉬우므로, 
아래와 같이 각 Link만 연결하도록 한다. 

Mkdocs 관련설명


  • Mkdocs 의 Plugin (Mkdocs 문서 to PDF)

  • Mkdoc 의 기본 Manual 
mkdocs의 기본 Manaul 이므로 당연히 필독!

  • Mkdocs Material Manual
Material 세련되게 사용하고 싶다면, 아래의 사이트는 전체 다 세부적으로 읽어보는 것을 추천 
다만, 일반 Markdown 방식과 호환 안되는 경우가 있으므로 Material Theme 용으로만 사용. 
Material Convention (Symbol) 알아두고, 각 아이콘을 기억 
Github Action 기반의 Github Pages 설정 (개선을 하시면 더 좋고)
세부설정-Material Setup 부분 반드시 확인 
(색상/Fonts/Lanuage/logo, Google Analytics 등 )
세부설정-Icon 과 좀 더 세련된 박스 제공 
세부설정-markdown table도 더 세련되게 
세부설정-icon/emoji도 좀 더 세련되게 
세부설정-Material Plugins 기능들 (다양함, Blogs처럼 사용가능)

  • Python 기본설치 
Python 기반으로 기본설치 
$ pip install mkdocs                           // Python mkdocs 설치 
$ pip install pymdown-extensions               // markdown extension 


Mkdocs 설정관련내용 (Python 설치 및 설정)
쉽게 설명을 해주고, 자주 업데이트 해주셔서 감사하다. 

  • mkdocs theme 설치 
$ pip install mkdocs-material                  // mkdocs theme
$ pip install mkdocs-material-extensions       // mkdocs theme
$ pip install mkdocs-rtd-dropdown              // mkdocs theme 

  • Mkdocs 의 Themes
상위 이외에 다양한 Themes 이 존재하므로 설치해서 사용 
현재 material만 꾸준히 Update되고 있으며, 이것을 사용하는게 맞을 것 같지만, 이상하게 더 readthedocs가 더 끌린다. 

  • 기타 Plug 설치 
$ pip install mkdocs-mermaid2-plugin           // mermaid2 
$ pip install mkdocs-with-pdf                  // mkdoc to pdf

PDF의 경우, 현재 한글이 완벽히 지원되지 않음 주의! 
PDF의 경우, 현재 Browser에서 직접 인쇄를 이용하여 인쇄하는게 가장 낫을 듯 싶다. 

1.2  mkdocs File 구성 

Github 쉽게 공유되어지며, 아래와 같이 구성한다. 

$ tree
docs
└── index.md    


1.3  mkdocs 관련설정 

참고만 하고, 실제는 좀 더 세련되게~~ 사용해야지 (Google Analytics도 사용하고)

mkdocs.yml (theme: marterial)




mkdocs 의 material mkdocs.yml 예제 

mkdocs 의 material의 세부변경사항 이해 


mkdocs 의 theme 
readthedocs 와 rtd-dropdown 
  
mkdocs 의 theme 종류 

  • mkdocs 의 Chart/Images, Tables, and Graph 
MkDocs GLightbox 
plantuml-markdown
mermaid2 
charts 
Markdown blockdiag 
drawio-exporter 

mkdocs 의 pdf 와 epub

docgen 


2. GitHub Pages 자동연동 

Github Action 으로 쉽게 Github Pages에 연동이 가능하므로, 다양하게 사용이 가능하다.
Google Analytics 본인 직접 설정도 가능하다.
언어도 2개 이상도 다 지원가능하며, 다양하게 사용가능하다.
다만 언어를 2개 사용하면, 골치 아픈게 2개의 언어로 다 따로 작성을 해야해서~ 

  • 나만의 Profile 완성 
세부내용은 상위와 많이 다르나, Marterial Manual을 보면서 수정을 하면, 쉽게 할 수 있다고 생각한다.

12/02/2025

PHY 의 이해와 DSP 관점 이해

1. PHY 의 이해 

Transceiver라고도 말하며, PHY라고도 말을 하기도 한다. 
SoC/MPU/AP에서 Digital Data를 PHY에게 보내면, 이를 재 가공(Encoding)해서, 물리적으로 전송을 하는 Layer라고 생각을 하면 된다. 
물리적 계층에서 최종 데이터의 전송을 담당하기에 각 PHY/Transeiver 마다 각 Encoding 방식은 다르다. 

RF에서도 Transceiver가 존재하며, 각 Encoding이 Analog 라고 봐야할 듯하다. 
좀 더 넓게 생각해보면, 유선과무선(RF)으로 볼 수 있고, 각 부분들을 간단히 알고 이해해보도록 하자. 

PCIe PHY
PCIe 이해 와 USB 의 비교 
2.3. Physical Layer (PCS/PMA)

MIPI PHY
MIPI PHY (D-PHY)

Ethernet PHY 
MII(Media Idependent Interface) MAC과 PHY

RS-485 Transceiver
RS232 와 RS485 Tranceiver 


1.1  PHY 의 Encoding/Decoding 방식 


PCIe PHY
PCIe PHY 구조 

  • PCIe PHY Interface Spec
PCIe PHY/USB PHY/USB4 PHY/SATA PHY 관련 비교 설명 
  1. 2.1 PCIe PHY Layer
  2. 8.1.1 Clocking Topologies    (PLL 부분)
  3. 8.3.1 Power Management – PCIe Mode
  4. 8.15 Error Detection
  5. 9.10 Message Bus: Equalization   ( CDR 부분?)
  6. 10 Multi-Lane PIPE – PCIe Mode

1.2  Phase Detection 

  • Mixer 의 Phase Detection 이해 
Mixer/Phase Detector 관련 설명 (별도 추가)
PHY 를 DSP관점으로 이해하기 위해서 아래 설명을 별도로 먼저 추가함 

PHY에서 가장 중요하게 생각해야 할 것이 Phase 일 것으로 생각되어진다. 
특히, 고속 I/O Interface로 갈 수로 Phase Detect를 하고 이를 Calibration을 하고 각 Error 상태 확인하고, 
각 에러 특징에 따라 상태변경을 해야 하기 때문이다.

이 생각을 하다가, 
RF Mixer/Phase Detector가 생각이 나서, 이 부분을 DSP 관점으로 변경해서 생각해보기로 했다.
원래는 PCIe 와 CXL 부분을 하다가 갑자기 생각이 나서 간단히 만 정리한다. 


2. 고속 Serial PHY 의 DSP 관점 이해  

PHY는 DSP 사용하지 않으며, 전부 H/W 동작 되는 게 맞을 것 같으며, 아래는 개인적인 생각이다.
다만, H/W관점에서 PHY를 DSP 관점을 바꾸어서 이해하기 위해서 생각해보자. 

  • CTLE(Continuous-Time Linear Equalizer)/DFE DSP 관점 
Digital RX FIR Equalization
Digital RX FIR & DFE Equalization Example
Link with Equalization  (TX FIR Equalization ->  RX CTLE+DFE)
DFE with IIR Feedback
DFE with IIR Feedback RX Architecture
나만 이렇게 DSP관점에서 생각한 것은 아닌 듯하며, 기존에도 사용을 하는 듯하다. 
아래 문서를 좀 자세히 보면 , TX / RX 를 분리해서 관리하며 맞을 것 같으며, 아직 완벽히 이해가 되지 않음 


Simulink
  https://kr.mathworks.com/help/serdes/ref/ctle.html  

개인생각으로는 
DSP에서 동작을 시킨다는 관점에서 생각하면, 더 쉽게 이해하지 않을까 쉽다.
아래 내용이 다 틀리 수 있으므로, 개인생각이라 주의해야 한다. 

  1. HW-Analog Front-End 
  2. DSP-FIR Equalization : Channel Equalization 
    1. H/W 여러 요소들을  통계 평준화/보정  
    2. DSP의 예로 들면, Camera ISP의 White Balance 느낌 
  3. DSP-IIR Correction:  Adaptive EQ (DFE)
    1. 상위에서 얻은 것들을 지속적으로 보정 
    2. DSP의 예로 들면, Radar의 IIR인 Kalman Filter 느낌
  4. DSP-Digital Control (FSM/LTSSM 설계) 
    1. 각 상태도 들을 만들어 설계 후 이에 맞게 행동 
    2. 상태도 기반의 제어 (State Machine)

  • DSP 관점 쉽게 이해   
HW --> PD --> LPF --> ADC --> FIR Filter 문제확인 --> IIR 지속적인 적응 보정  --> FSM 상태 제어 
추후 시간이 더 되면 진행 


  • DSP 관점에서 생각 

FIR / IIR / FSM Functional Mapping in High-Speed Interfaces
블록 DSP 관점 역할 DSP 관점 생각 PHY 설명
FIR Analyzer H/W Channel 각 요소 왜곡된 정보들
FIR 기반 추정/탐색 후 초기보정
FIR 필터 응답으로 각 요소파악
평준화(Equlization)
CTLE/FFE 기반으로 ISI, BER, Eye margin 등 측정
IIR Loop (Adaptive EQ) FIR 분석 결과 누적 보정 IIR Feedback DFE.AdativeEQ 계수, 온도,전압 변화 계수 갱신하여 제어
FSM / LTSSM FIR/IIR 루프의 제어기 상태 제어기(State Machine) Polling, Recovery, L0 등 상태 전환 제어


  • DSP 관점 에서 FIR /IIR /FSM 의 역할  

Interfaces vs. FIR/IIR Roles and Control FSM
인터페이스 FIR 역할 IIR 역할 FSM 제어기
PCIe / USB Channel Observation Adaptive EQ (CTLE/DFE) LTSSM
Ethernet KR / PAM4 Eye Margin Monitor Coefficient Update Link Training FSM
DisplayPort / HDMI (FRL) Training Pattern Measure Equalizer Tune LTTPR FSM
MIPI (M-PHY) Gear Training Measure Feedback Adaptation LSS / Power FSM





12/01/2025

RF Mixer 이해 와 I/Q 시그널

1. Mixer 의 이해 


RF H/W 엔지니어가 아니기때문에, 관련부분의 이해 목적으로 각 부분 요약으로만 정리하며 기술한다.
틀린 부분이 있을 수 있으며, 추후 발견을 하면 수정을 하도록 하겠다. 


  • Audio Mixer 와  RF Mixer 차이
구분 Audio Mixer RF Mixer
동작 방식 덧셈 (Summation) 곱셈 (Multiplication)
대표 수식 Vout = V1 + V2 xout(t) = xRF(t) · xLO(t)
주파수 관계 주파수 변환 없음 fIF = fRF ± fLO (Difference / Sum)
입력 신호 여러 오디오 신호  RF 신호 + LO(Local Oscillator)
출력 신호 합쳐진 오디오 신호 1.IF(Frequency/Phase Difference)
2.HF(Frequency/Phase Sum) (LPF제거)
출력 신호의 의미 음량·채널 조정, 믹스된 오디오 통신·레이더용 주파수 변환 결과
I/Q 개념 필요 여부 × 필요 없음 ✓ 필요 (QAM, FMCW, AoA 등)


  • RF Mixer 사용
Component Frequency Term Phase Term Usage
IF (Difference) Δf = ω1 − ω2 Δφ = φ1 − φ2 ✔ Radar / RF Mixer Used
HF (Sum) Δf = ω1 + ω2 Δφ = φ1 + φ2 ✖ Removed by LPF

HF(Sum)은 LPF(Low Pass Filter)제거 하고 사용 

  • RF Mixer Input/Output 의 Frequency 비교 
  1. Input Signal(100KHz,120KHz) 
  2. Output Signal 
    1. Frequency Difference: 20KHz, Sum: 22KHz 확인
https://github.com/JeonghunLee/phy_simulation/blob/main/notebooks/mixer_compare.ipynb

  • RF Mixer Output 의 Frequncy LPF 분리 
  1. RF Mixer Ouput 후  LPF(Low Pass Filter) 이용하여 Sum 제거  
    1. Frequency Difference : 20KHz 만 파악 가능  
https://github.com/JeonghunLee/phy_simulation/blob/main/notebooks/mixer_compare.ipynb


  • RF Mixer Output 의 Phase 비교  
복소 평면(Complex Plane) 쉽게 2개의 Diffrence 와 Sum 을 확인 가능  

https://github.com/JeonghunLee/phy_simulation/blob/main/notebooks/mixer_compare.ipynb


  • Audio Mixer 와  RF Mixer 차이
Notebook(Python) 으로 간단하게 Python으로 작성하여 아래와 같이 정리를 하였다. 
Audio Mixer vs RF Mixer 
RF Mixer 와 FIR Filter

  • Notebook(Python)으로 다양한 테스트 진행 
추후 시간이 되면 아래에 더 보강해서 넣도록 하겠음 


1.1 I/Q Mixer 이해 

처음에 왜 필요한지를 인식을 못했으며, SDR(Soft Defined Radio)하면서 아래 부분의 필요성을 알게되었다. 
I Mixer만으로는 0와 180의 위상 차이만 명확하게 감지가능하다. 
이유 아래와같이 I 가 1D 기준이기 때문이다. 
0~ 360 위상 정보를 정확하게 얻을 수 없기 때문에 I/Q Mixer가 필요하다. 
I Mixer 만 사용할 경우, I Amp도 정확성 떨어진다.
간단히 생각해서 I/Q로 2D를 만든다고 생각하면 되겠다. 
 
  • I/Q Signal 
  1. I (In-Phase) 신호  : Real 실수  =  Cos(thetha)
  2. Q(Quadrature(= 90° shift)) 신호 : Image 허수 =  Sin(theta)
  3. I+Q = 1 = arctan(Q/I)
고등학교때 배운 Sin/Cos 복소수 평면 그리는 것을 생각하면 될 듯하다. 



Sine and cosine - Wikipedia



  • I/Q Modulation 
I+Q Amp vs I/Q  Amp  비교해서 이해하도록 하자  

https://en.wikipedia.org/wiki/In-phase_and_quadrature_components#/media/File:IQ_phasor_diagram.svg


  • I+Q Amp vs I/Q Amp 비교 

  • IQ Modulation 관련 이해 
아래의 그림을 보면 쉽게 이해가 가며, Wiki에 자세히 설명이 나와 있다. 
  https://en.wikipedia.org/wiki/In-phase_and_quadrature_components#/media/File:IQ_phasor_diagram.svg


  • IQ Imbalance 문제
I/Q 의 신호가 이론적으로 정확히 맞아야 한다 ( Sin/Cos, 90도 위상차이)
하지만, 모든 것이 이론적으로 만 되지 않기 때문에 맞지 않는 경우가 발생한다. 


1.2 RF Radar/RF Comm. 

RF Radar의 경우, Mixer 사용 후에 LPF 사용하기 때문에 
아래 와 같이 Frequency, Phase Diffrence 로 Phase Detect 와 위치가 파악 가능하다  

  • RF Radar TI 문서를 보면 아래와 같이 쉽게 설명 
X1 과 X2 신호의 Frequency, Phase Diffrence  즉 LPF 후 사용 
Frequency/Phase Difference(차이)로 쉽게 Phase Detect 가능
https://www.ti.com/content/dam/videos/external-videos/ko-kr/2/3816841626001/5415203482001.mp4/subassets/mmwaveSensing-FMCW-offlineviewing_0.pdf

처음에 Radar는 I Mixer 만 사용하는 줄 알았으나, AoA를 정확하게 하려면, 
어쩔 수 없이 I/Q Mixer기반으로 정확한 Phase 구한 것 같다. 
생각을 해보면, Amp 정확성을 위해서라도 I/Q Mixer를 사용하는게 맞는 듯하다. 


  • TI Radar I/Q Mixer 사용 
처음에는 I만 사용하는 줄 알았으나, I/Q Mixer를 사용한다고 한다. 
하지만, I만 실수만 가지고도 AoA까지는 힘들지 몰라도 일반적인 Range Radar 기능은 가능하다. 


TI Complex-baseband implementation

https://www.ti.com/solution/radar

Complex baseband architecture using TI mmWave

  • WIFI/SDR(Soft Defined Radio)
WIFI의 경우를 생각해보면, I/Q Mixer는 당연히 사용해야 한다 (QAM방식과 OFDM)
SDR(Soft Defined Radio)는 WIFI Sensing 때문에 오래전부터 계속 봤는데, 이 부분도 정리를 해야 할 듯 하다. 
WIFI CSI (I/Q) Signal 확인가능  



2. RF Mixer 의 확장 이해 

Mixer 의 Phase Detect 이용하여 각 기능을 좀 더 생각을 확장적으로 할 수 있어진 것 같다. 
  1. PLL 도 쉽게 이해 
  2. I/Q Mixer (Phase 차이) Splitter/Combiner  이해 
  3. 고속 Serial PHY 칩도 비슷할 것이라 추측 (개인적 추측)
    1. 이 부분 DSP 관점에 추후 다시 설명 

1/2번까지만 이곳에서 정리하고, 3번은 다음 블로그


2.1 PLL 의 이해 

  • PLL(Phase Locked Loop) 목적 
Phase Locked Loop가 Phase 차이에 따라 Loop를 돌면서 각 변화에 따라 Lock하여 동일한 주파수를 내는 것 인것 같다.

  • PLL(Phase Locked Loop) 동작정리 
RFDH 설명이 너무 멋져서 쉽게 이해했으며, 간단히 이해 한 것만 정리  
PD -> Phase 차이 -> Pulse 생성(+/-) -> Charge Pump -> LPF -> Voltage 변환 -> Divide(Count) 변경 
개인적으로 멋진 것은 Charge Pump 와 LPF의 평준화 인것 같음(Voltage 안정, AC 제거) 

PLL(Phased-Locked Loop)


2.2 Phase Detector vs Mixer(Frequency)

  • Phase Detector 와 RF Mixer 의 차이 
  1. RF Mixer는 상위와 같이 Analog 
  2. Phase Detector는 상위 PLL 보면 Pulse로 되는 것을 보면 Digital .

Phase Detector 
Phase 차이를 Digital Pulse 길이 와 +/-으로 구분하여 쉽게 인식 
(현재 이해하길, PFD 좀 더 봐야 할듯)

Frequency Mixer 
Analog 기반의 Phase 차이 와 합 

  • PLL 과 DLL 
나의 경우, 항상 PLL 과 DLL 여러번 봤지만, PLL의 경우는 매번 PD까지는 제대로 이해하지 못한 것 같다.
DLL의 경우는 항상 DRAM에서 Timing 보정용으로 사용했다 

DLL(Delay-Locked Loop)

DLL 의 DRAM의 Trace length Timing 보정 
DLL의 경우는, DRAM에서 Clock 보정으로 사용 


2.3 I/Q Mixer 의 Splitter/Combiner

Clock/Power Splitter 관련있을 거며, 이것을 보다가 Splitter 의 기능 때문에 
고속 Serial PHY도 PD기반으로 DSP 관점으로 확장하여 생각하게 되어짐

좀 더 생각을 해보면, Analog 신호의 Splitter와 Power도 좀 더 생각을 하다가, 
이 부분은 너무 더 나아가는 것 같어서 일단 생각 중지 

예전에, DVR을 DM355+FPGA기반으로 직접 국내 최초 개발해봤기때문에, 
NTSC의 Combiner도 생각을 했으나, 머리가 너무 복잡해셔서 이 부분도 나중에~


TI Cacade Radar 구조 (Splitter 예제 )
1.2 TI Cascade Radar Clock Sync (Clock Splitter)

11/23/2025

Window 11에서 Disk 관리 (Disk Clone 과 Partition 분할)

1. Window 11의 Disk 관리방법 

  • My Laptop 의 History 
기존에 Linux/Window11 OS 2개를 동시 사용 중이었으나, Window 11 Partition의 용량 부족으로
Window 11을 나의 Laptop 재 설치하기로 결정하였다. 
참고로, Window 11 재설치시 시디키 가 필요 없다는 것을 나중에 알게되어짐

Latop Linux 설치 와 Window/Ubuntu 동시 설치 
Latop 기반에서 Window /Ubuntu 동시 설치방법 과 BIOS 관련사항 

USB Booting Disk 만들기
USB 기반의 시동 Disk 만드는 방법으로 Ubuntu/Window 에서 다 설명 
PC의 BIOS 와 UEFI 기본이해 와 MBR GPT 차이 

  • Window 11 용량부족 이유는 
VS Code 와 좀 잡다한 Tools(Canva,Wireshark) 여러 개들 설치하니 Window 11 용량이 너무 부족하며, 
이를 Window Partition 조금 확장했으나 HDD 소음이 많이 커지는 것을 우연히 발견을 하였다. 
아이러니하게, Laptop Pan 소음 보다 HDD 소음이 더 커지는 것이다. (좀 사실 소음이 짜증난다)
이 문제로 Window 11 재설치하면서, Linux를 완전히 제거 하기로 결정했다. 

  • Window 11 재설치 중 문제사항 
Window 11 재설치 도중, 모르고 NVMe에 Window 설치해야 했으나, HDD기반으로 Window 11 설치를 했다.  
그래서 Window 11 다시 설치를 해야하는 일이 발생하여, Disk Clone 하기로 결정 

  • Window 11 Disk Clon 결정 (1번째 문제)
HDD에 Window 11 설치한 나의 잘못이며, HDD사용하면 소리가 너무 거슬려서 이를 해결하기로 결정  
  1. DISK0 : HDD  (Window 11 재설치완료)
  2. DISK1: NVMe 
    1. 삭제완료 후 Disk0 Clone 

  • Window 11 Disk Partition 분할 (2번째 문제)
NVMe으로만 1Tera Byte 나누어서 사용하기로 결정 
  1. DISK1: NVMe 
    1. WIN_NVM : 이 Partition 줄이고, DATA_NVM 별도 분리시도   


2. Window 11 의 Disk Clone 방법 

  • 1번째 문제 Disk Clone
원래 처음 나의 생각은 Linux 기반으로 dd로 Disk끼리 Clone 할 생각가지고 있었다. 
하지만, 다행히 아래와 같이 Window 무료 Tool을 발견하였으며,  Window 11  쉽게 Clone 가능하였다. 

dd 와 hd/hexdump 사용법
Linux에서 dd 기본 사용법

  • Macrium Reflect 8 설치 
v8.0.7783_reflect_setup_free_x64
설치 후 Disk Clone 후 각 문제사항들을 해결해야함 

  • Disk Clon 복제 진행 과 완료 
  1. DISK0 : HDD
  2. DISK1: NVMe  

  • Disk Clone(복제) 후, HDD 내용을 삭제하기전 확인사항 
  1. NVMe Partition 정보 재확인 과 Data 확인 및 비교 와 재확인 
  2. Window USB 시동 디스크 준비 (반드시 준비)

Window USB 시동디스크 설치방법
3.1 Window 10 Pro 설치 
ESD-USB 확인 


  • Disk Clone 복제 후 여러 문제사항 간단히 정리
  1. Disk Clone 후, NVMe  EFI Partition 도 깨지는 문제가 발생
    1. Window USB Boot로 Booting하여, EFI Partition 삭제 후 재 설정으로 이를 해결함 
  2. 이외 좀 잡답한 문제들?
    1. EFI Partition 자동으로 잡히는 문제 
    2. 이외 System에서 이전 Disk 기록 문제 
각 개별 문제사항 들이 각 사항에 맞게 방법을 찾아서 해결하자. 


  • Macrium Reflect 8 최종확인 
아래는 Clone 후 다시 Partition 나누기를 한 최종화면이다.  
원래는 해결과정을 기록에 있어야 하나, 기록으로 남기지 못함  




3. Window 11 Disk Partition 축소(나누기) 

  • 2번째 문제 Disk Partition 분할
Window 11에서 Window Disk 관리자에서, Partion을 분할하기 위해서 아무리 해도 Partition Size를 못 줄일 경우가 발생한다.
이 경우 외부 Window Tool들을 사용을 하거나, 어쩔수 없이 Linux 기반으로 수정해야 할 듯하다.
외부 Window Tool 들은 다 유료인 것 같아, 나는 그냥 Linux 방법으로 하기로 결정하였다. 

  • Window Disk 관리자 (Partition 나누기,축소)
  1. Disk 0:  HDD Disk라서 안쓰기로 결정 (Pan 소리가 너무 큼)
  2. Disk 1NVMe 1T로 이것을 나누어서 사용하기로 결정함 (GPT, MBR아님)
    1. WIN_NVM: Size 나누려고 했으나, 제대로 동작되지 않아 아래에서 진행 
    2. DISK1 의 WIN_NVM을 여러번 축소를 하려고 했으나,결론은 안되는 경우가 발생 


만약, 상위에서 Partition이 축소가 잘된다면, 나처럼 복잡하게 안해도 된다.
다만 나의 경우, 별 짓을 다했으나 Partition 축소가 내가 원하는 만큼 되지않아 각 방법을 찾다가, Linux 기반으로 다시 시도하게됨 

  • Window 11 Disk Parittion 분할/축소 문제 해결방법 
  1. 상용 Window Partition Tool 사용(유료)
  2. Linux 기반해결 (무료)
    1. Gparted Live Booting  --> 어쩔 수 없는 선택 2
    2. Linux의  Gparted 이용   --> 기존 Linux 를 좀 전에, 지워서 바로 포기 (선택 1) 

  • Linux의  Gparted 이용 (선택 1)  
나의 경우, 기존 Laptop을  1T: NVMe 와 1T:HDD 사용하여 2개의 OS를 여러번 설치했다.
요즘 나의 경우, Linux 거의 필요 없는 듯하고, 더불어 HDD Pan소리가 너무 커서 제거함 
먄약 Linux에서 한다면 아래참조하고, Window WSL의 Ubutu 에서는 절대 하시지 마시길 

  • Linux 기반해결 (무료)
    • Linux 의 GParted 사용법 --> (선택 2)
나의 경우, 상위에서 여러 Window Tools을 다 사용해봤으나, 다 실패했으며, 
어쩔 수 없이 Linux 기반으로 GParted Live를 이용하기로 결정 
이전에 Linux 만 있었어도, 이 고생을 안하는데, 어쨋든 삽질을 제대로 함 

Linux GParted Live 
Linux 의 GParted 만을 별도의 Boot 와 함께 GUI 제공 


3.1 USB GParted Live Booting 준비 

USB Booting Disk 준비하는데, 이번에는 Linux가 아니라 GParted Live  준비하자. 

Rufus download
Rufus를 이용하여 아래의 Gparted-live.iso기반으로 USB Booting Disk 만들자. 

gparted-live-1.7.0.xxx.iso download


  • USB Booting 준비 (GParted Live) 
아래와 같이 Rufus 를 이용하여 GParted Live 를 USB Booting 준비 



  • Window에서 USB Booting (Gparted Live) 생성확인 
상위에서 Rufus를 이용하여 USB Booting Gparted Live 준비완료 


3.2  BIOS의 EFI USB Boot 순서 

F2를 눌러서, BIOS에서 다시 Booting 순서를 아래와 같이 변경 





3.3 USB 기반 Gparted Live만 실행  

USB 부팅으로 GPated Live 가 GUI 로 동작이 되며, 별도의 Linux가 필요가 없다. 
만약, Linux가 있다면 GParted 를 이용해도 좋다. 

  • GParted Live (default setting) 선택 
별도의 Linux 설치 없이 USB Boot에서 바로 실행해서 GParted 이용하자 


  • GParted Live (default setting) 진행순서  
  1. Don't touch Keymap
  2. Which Language do you prefer
    1. 33: US English 
  3. Which mode do you prefer?
    1. (0) Continue to Start x to use Gparted Automatically 


  • 주의사항  
BIOS 따라 약간의 문제들이 발생하지만, 그냥 각자 해결하고 넘어가자.


3.4 GParted Disk 관리자 

Window의 Disk 관리자와 거의 비슷하다고 생각하면 될 듯하다. 

  • GParted 의 Disk 관리자 
  1. /dev/nvme0nlp3 만 조절 
    1. Resize/Move 사이즈 조절 

  1. /dev/nvme0nlp3 만 조절 
    1. Resize/Move 조절 완료 후 상위 Apply 적용 

상위를 최종 조절 후, Booting 하여 Window에서 다시 해결하자.


3.5  Window 11 Disk 관리자 최종정리 

  • Window 11 Disk 관리자 
최종으로 Window 11로 재부팅하여, 아래와 같이 Disk 관리자에서 다시 조절을 하자.
각 문제사항이 있다면, 세부사항도 다 점검하시길 ~ 



4. Window 11 Disk Clone/Partition 분할 최종 결론  

나의 경우는 성공적으로 잘 되었으며, 현재까지 문제없이 잘 동작하고 있다. 
역시 Linux에서 하면 Window에서 안되는 것도 잘 된다 

너무 한정적(제한적)으로 생각하지 마시길, 항상 다른 방법이 있을테니 
어떻게 보면, 좀 무식하게 해결한것이니, 문제가 많이 발생하므로 추천까지는 하지 않는다. 

  • Lenova Laptop 참고사항 
참고로, Laptop Lenova Legion 모델 보다는 좀 더 비싼모델을 사시길~
값싼 Lenova 의 Legion 모델의 경우, BIOS에서 HDD Disable 이 되지 않는다. 
나의 경우, BIOS도 여러번 Update 했는데, 결론은 HDD 제어(on/off)가 되지 않는다 
해결방법은 직접 본인 HDD미사용하거나, HDD Disconnect 방법 뿐이다. 
나의 경우 HDD 미사용으로 결정 

  • Laptop 많은 용량 필요 이유 
참고로 2개 OS에, Yocto 때문에 NVMe/HDD 2T되는 많은 NVMe/HDD 2개 와 많은 용량이 필요했다
더불어, 이전에 Transfer learning 때문에 Memory도 많이 올렸다. 
깔끔하게, Linux 와 Yocto도 다 포기하고, Traning 도 다 포기하였다. 

Linux Yocto 


  • Lenova Laptop 분해시도  
노트북까지 분해까지 시도 했으나, Laptop 분해는 중도에 포기를 하였으며,그냥 일단 현재는 HDD 미사용 방법으로만 결정 
이유는 Laptop 을 분해 도중에, Laptop 이 왠지 중간에 손상이 갈 것 같아 포기하였다. 
Laptop 나사 푸는 게 문제가 아니라, 핸드폰 분해처럼 힌지도 있어야 할 듯하다. 
힌지 대신에, 얇은 명함으로도 해보고, 다른 쇠자로도 해봤는데 좀 위험해서 깔끔하게 포기함. 

  • Window DISK 관리 결론
현재 큰 문제 없이 동작하며, 설정도 왠만큼 거의 다 되어 큰 문제가 없는 듯 하다. 
만약 Window에서 Disk 관리가 문제가 발생한다면, Linux 기준으로 설정변경을 생각을 하셔도 될 듯하다. 
다만, 다시한번 말하지만 Window WSL 기반의 Linux 는 안되는 것으로 생각하자. 

10/29/2025

Nordic BLE Channel Sounding

1. Nordic BLE Channel Sounding 

RF-RTLS(TI Channel Sounding)
RTLS의 이해 필요 와 이전 TI BLE Channel Sounding 참고 (아참 Beacon 기반이 아님,주의)
각 Chip 제조사 별로 나중에 각 비교를 해보자. 

RF Radar 와 RF Communication 비교 
Range 측정은 Radar 1개 가능하지만, RF Communication 최소 2개 이상 필요 



  • BLE 6.0 BLE Channel Sounding 소개 
글을 읽어보면, BLE 6.0 Key Feature이며, PBR을 이용하여 거리 감지 가능하다. 
처음에는 자료가 못 구해서, 이게 Beacon 기반인 줄 착각했다. (Beacon 암호화 <-이곳에 꽂혀서)
쉽게 설명하면, BLE Channel을 생성하여, Sound 즉 일종의 Tone(PBR) 신호를 보내서 Radar처럼 거리를 감지하는 기술이다.  
물론 좀 확장되면, Radar 처럼 AoA도 가능할 것이지만, 매번 BLE Demo에는 빠져있다. 
RF 통신 기반이므로, 당연히 기기는 2개 이어야 가능하다. 

  • BLE 의 Nordic Channel Sounding Demo
아래 Nordic Demo를 보면, AoA까지는 안되는 듯하며, Range만 즉 거리만 가능한 것 같다.  


  • Nordic BLE Channel Sounding 
BT/BLE를 개발을 해본 사람이라면, 모르는 회사는 아닐 듯하다.
저번에 TI BLE Channel Sounding 데모를 보고, AoA 언급을 한 것 같은데, Noridc도 아직 AoA는  안될 듯하다.



  • Nordic 3rd Party Product 
관련 제품 군들을 나중에 이곳에서 찾아 보자 


  • Nordic BLE Channel Sounding 
  1. BLE Chip 정보 와 EVM 확인 
  2. 내가 가지고 있는 nRF7002DK는 안됨 
아래는 Initiator /Reflector 이며, 아래 이해하려면 우선 상위 이전 RTLS의 TI BLE Channel Sounding부터 이해하고 각 역할을 좀 더 보도록하자.

Initiator 

Reflector 
  https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/bluetooth/channel_sounding_ras_reflector/README.html

  • Nordic 의 BLE Channel Sounding
  1. Ranging Service Specification  각 확인 
  2. Ranging Profile Specification  각 확인 
  3. IFFT SIZE 즉 Sampe 갯 수 확인 
    1. Inverse 사용하는 이유는 보통 신호복구 


  • Nordic BLE Channel Sounding TEST Result
Anthena 4개이면, AoA도 될 듯한데, 언급이 없으며, 문서를 좀 자세히 읽어 보면, 각 Anthena를 Switch를 진행을 한다.
아직 AoA / AoD에 대한 언급 아직 없다. 



2. Nordic BT/BLE Tools

BLE를 다시 개발하면, 그 때 다시 사용해보도록 하겠으며, 항상 Nordic Tool들은 추천한다. 

보통 nRF Connect Tool 가장 많이 이용하지 않나 싶다. 
관련 BLE Profile 분석 확인 
ESP32로 BLE 개발을 해도, 필요하다. 

  • Mobile 용 BT/BLE Tools
  1. nRF Connect Device Manager : 각 Profile 분석/ Scan 기능 부터 다양하게 제공 
  2. nRF Edge Impuse 지원: Edge AI(TinyML)
https://docs.nordicsemi.com/category/nrf-tools


   

  • Nordic BT/BLE Tools
개인적으로 너무 좋으며, 이외 다양하게 최근에 다양하게 제공을 해주는 듯하다. 
나도 나중에 다시 개발을 할 경우, 다시 써보고 나서 말을 하는 것이 좋겠다. 
  1. nRF Sniffer의 경우, 나중에 Wireshark와 연결되는 지 확인 
    1. 왠지 Wireshark과 될 듯하다. 
https://docs.nordicsemi.com/category/nrf-tools



nRF 관련 Tool 
이게 더 Mobile 과 Desktop 같이 나오니 더 편하게 Download 가능할 듯하다.

BLE Sniffer 
나중에 이 부분은 가능하다면, 비교를 해보도록 하겠다. 
  https://novelbits.io/bluetooth-low-energy-ble-sniffer-tutorial/


2.1 BLE Sniffer 과 Wireshark

Wireshark는 Ethernet /USB/ WIFI 비롯하여 거의 pCap만 되면, 거의 된다.
꼼수로 기존 것을 이용해서 본인이 만들어도 좋다. 

  • ESP32 BLE Sniffer
참고로, WIFI Sniffer도 별도로 만드는 것도 가능 한듯하다. (별도로 테스트를 안 해봄) 


2.2 WIFI Sniffer 와 Wireshark

WIFI와 BLE는 항상 거의 같이부터 다니므로, 이 부분도 같이 기술을 하도록 한다. 

  • ESP32 Wireshark(WIFI)
EspressIF Manual은 전제는 PC의 WIFI가 monitor 모드가 지원될 경우이다. (착각하시지 마시길)
PC의 WIFI의 경우, Driver에 따라 동작 모드가 제한이 있으므로 반드시 확인하시길 
특히, Broadcom WIFI는 제공을 안 하며, 제공하지 않는 칩 제조사도 많다. 


WLAN
참고로, 상위내용을 더 설명하면, 각 WIFI의 경우, MLME로  걸쳐서, Ethernet2로 나오는 경우가 많다.
각 세부 사항을 알고 싶다면, WIFI Driver 내부까지 알아야 하며, 각 칩 제조사의 WIFI Driver는 대충알아야 할 듯하다. 
(요즘 WIFI Driver 직접 개발하지 않아 잘 모르겠으나, 예전에는 다 달랐으며, 아래참조)


  • ESP32 WIFI Sniffer
본인이 ESP32에서 Sniffer 직접 만들어서, tcpdump를 이용해서 적용 하는 방법도 존재한다. 
ESP32 WIFI 의 경우, 거의 모든 WIFI 기능을 마음대로 제공해서, 최적의 Sniffer가 아닐지 생각이 쉽다. 
(솔직히 이렇게 WIFI를 마음대로 Control하게 해주는 곳은 Chip 제조사 거의 본 적이 없는 듯하다)
나중에 시간이 되면, 이것을 만들도록 하겠다.