Example 1: FIR adaptive filter
STM32CubeG4 MCU 패키지는 Arm® Cortex®-M 프로세서를 기반으로 하는 STM32G4에서 실행됩니다.
적응형 필터(Adaptive Filter)는 입력 신호의 다양한 특성에 따라 임펄스 응답을 변경하는 필터입니다.
이러한 필터는 종종 통신 채널에서 포착된 원치 않는 간섭을 제거하는 데 사용됩니다. Adaptive 알고리즘은 예를 들어 간섭자의 주파수 성분을 검출하고 필터의 계수를 조정하여 필터 주파수 응답의 적절한 지점에 노치(Notch)를 생성할 수 있습니다. 그 후엔 수신된 신호가 필터를 통과할 때 원하지 않는 요소가 제거됩니다.
이러한 알고리즘이 여러 개 존재하며 적응형 알고리즘에 대한 자세한 내용은 여기에서 설명하지 않습니다. 이번 예에서는 자동 회귀 알고리즘이 사용됩니다.
알고리즘의 출력은 FIR 필터를 구성하는 계수 세트입니다. 계수는 신호, 채널 및 간섭의 특성에 따라 다소 자주 업데이트됩니다. 따라서 계수 계산은 프로세서가 높은 우선 순위 작업을 수행하지 않을 때 소프트웨어적으로 수행되는 경우가 많습니다.
반면에 필터는 입력 신호에 지속적으로 적용되어야 하며 신호 처리 체인의 실시간 처리 제약을 받게 됩니다(한마디로 실시간 처리를 해야 함). 따라서 FMAC로의 오프로딩을 위한 이상적인 후보입니다.
이 예에서 입력 신호는 2048개 샘플의 블록 또는 프레임으로 MCU 메모리에 샘플링, 디지털화 및 저장되는 것으로 가정합니다. 새 프레임이 준비될 때마다 DMA가 트리거되어 이를 FMAC로 전송하고 샘플별로 필터링합니다. 필터링된 데이터는 DMA에 의해 메모리로 다시 전송됩니다.
각 프레임 사이에는 필터 계수를 업데이트할 기회가 있습니다.
Adaptive filtering example (frame 1)
그림 1의 입력 신호 스펙트럼은 2개의 협대역 톤이 추가된 가우시안 또는 '백색' 노이즈로 구성됩니다. 톤은 8kHz 및 16kHz에서 명확하게 볼 수 있습니다. 샘플 주파수는 48kHz입니다.
그림 1
그림 2. 적응형 노이즈 필터의 주파수 응답(프레임 1)은 FIR 필터의 주파수 응답을 보여줍니다. 두 개의 '노치'는 주파수와 진폭이 톤에 맞춰 정렬됩니다.
그림 2
그림 3. '백색' 노이즈(프레임 1)는 입력 신호를 필터링한 결과를 보여줍니다. 톤은 노이즈와 거의 동일한 수준으로 감쇠됩니다.
그림 3
Adaptive filtering example (frame 2)
그림 4에서 세 번째 간섭 톤은 12kHz에서 나타납니다. Adaptive 알고리즘은 새로운 FIR 계수 세트를 생성하기 위해 다시 실행되어 새로운 톤 주파수에 세 번째 노치를 추가합니다.
다시 한 번, 새로운 필터 계수로 입력 신호를 필터링한 결과는 그림 6에서 볼 수 있습니다. '화이트닝된' 노이즈(프레임 2) .
그림 4
그림 5 Adaptive 노이즈 필터의 주파수 응답(프레임 2)
그림 6
<계속>