FFT로 주파수 보기
시간 영역 신호를 주파수 성분으로 바꿔 진동과 노이즈가 어느 주파수에 몰려 있는지 봅니다. MCU에서 FFT를 쓰는 방법.
FFT가 주는 것
N개의 샘플을 넣으면 0부터 fs/2까지 N/2개 주파수 칸(bin)의 크기와 위상이 나옵니다.
- 주파수 분해능 = fs / N
- 예) fs = 1kHz, N = 1024 → 칸 하나가 약 1Hz
임베디드 활용
- 진동 진단: 모터 베어링 불량, 불균형은 특정 주파수에 피크로 나타남
- 노이즈 원인 찾기: ADC 값에 섞인 노이즈가 PWM 주파수인지, 전원 리플인지 구분
- 제어 튜닝: 공진 주파수를 찾아 노치 필터 설계
- 오디오: 음정 검출, 스펙트럼 표시
구현
arm_rfft_fast_instance_f32 S;
arm_rfft_fast_init_f32(&S, 1024);
arm_rfft_fast_f32(&S, in, out, 0);
arm_cmplx_mag_f32(out, mag, 512);
CMSIS-DSP를 쓰면 Cortex-M4에서 1024점 FFT가 1ms 안팎입니다.
무료 전자책이 주제를 한 권으로 이어 읽기 (PDF 3권)→창 함수
샘플 구간의 시작과 끝이 이어지지 않으면 주파수가 퍼져 보입니다(누설). 해닝 같은 창 함수를 곱한 뒤 FFT합니다.
먼저 PC에서
데이터를 로그로 모아 Python(numpy)으로 FFT를 해 보면 무엇을 봐야 할지 빨리 알 수 있습니다. 그 뒤에 MCU 실시간 처리가 필요한지 판단합니다.
영상으로 이어 보기제품은 어떻게 동작할까 시리즈 8편하늘 위 떠다니는 드론은 어떻게 동작할까? 프로펠러 4개로 뜨고 기우는 원리부터 비행 제어기 · PID · 센서 퓨전까지PROJECT COURSE칼만 필터로 로봇의 기울기를 구해 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →