FMAC 디지털 필터 구현 방법 (with the STM32 G4 MCU Package)(2) - FIR adaptive

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

<계속>