산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

내장 마이크로컨트롤러를 사용한 디지털 필터링 이해

PowerQuad 장치의 Dual Biquad IIR 엔진을 자세히 살펴 보면서 시간 영역에서 데이터 샘플을 필터링 및 처리하는 데 널리 사용되는 방법에 대해 알아보십시오. LPC55S69 MCU에서.

시간이 지남에 따라 또는 시간 영역에서 수집된 데이터 샘플을 처리할 때 가장 기본적인 작업 중 하나는 데이터를 "필터링"하는 것입니다. 특히 임베디드 마이크로컨트롤러와 관련하여 최상의 결과를 달성하고 CPU가 다른 작업을 수행할 수 있도록 데이터를 디지털 방식으로 필터링할 수 있는 일반적인 방법을 이해하는 것이 중요합니다.

이 기사에서는 시간 영역에서 데이터 샘플을 필터링하고 처리하는 데 널리 사용되는 방법에 대해 알아봅니다. 또한 LPC55S69 MCU에 있는 PowerQuad 장치의 Dual Biquad IIR 엔진을 자세히 살펴보십시오. 이는 많은 필터링 사용 사례에 유용한 다목적 DSP 빌딩 블록입니다.

지속적으로 샘플링된 데이터에 대한 공통 필터

시간 영역에서 데이터를 샘플링할 때 알려진 고정 속도로 데이터가 지속적으로 수집됩니다. 시간 영역 필터는 이 데이터를 입력으로 받아들이고 어떤 식으로든 수정된 새 신호를 출력합니다. 필터의 출력은 추가로 처리되거나 DAC(디지털-아날로그 변환기)로 전송될 수 있는 또 다른 시간 영역 신호입니다.

우리는 일반적으로 사인파에 응답하는 방식으로 필터에 접근합니다. 입력 신호를 단순한 사인파로 간주하면 필터는 입력의 진폭과 위상을 조정할 수 있습니다. 필터에 복잡한 신호를 적용하면 신호의 사인파 성분의 진폭과 위상이 조정됩니다. 필터가 주파수 범위에서 작동하는 방식을 주파수 응답이라고 합니다.

시간 영역의 표준 작업은 FIR(Finite Impulse Response) 필터에 의해 수행되며, 이 필터는 가장 최근의 데이터 샘플과 이전에 수집된 요소를 혼합하여 다음 출력 샘플을 얻습니다.

그림 1. 입력의 히스토리를 사용하여 샘플 필터 처리별로 샘플링합니다.

이러한 필터를 구현하는 한 가지 방법은 이전 샘플을 배열에 저장하고 간단한 방정식을 사용하여 결합하는 것입니다.

x[n] // 가장 최근 입력
x[n-1], x[n-2] // 두 개의 이전 입력 샘플
y[n] // 다음 출력 샘플

y[n] =b0 * x[n] + b1 * x[n-1] + b2 * x[n-2]

이 특정 의사 코드 조각은 가장 최근의 샘플과 두 개의 이전 데이터 샘플을 결합합니다. 다음 출력 샘플을 얻기 위해 결과를 합산하기 전에 각 데이터 샘플에 별도의 상수 계수를 곱합니다. 요약하면, 이것은 상수 계수와 히스토리의 길이가 필터의 주파수 응답을 제어하는 ​​단순한 곱셈 및 누적 연산을 나타냅니다.

계수에 적절한 값을 선택하여 다양한 유형의 필터를 구성할 수 있습니다. 필터가 고주파수를 감쇠하면 저역 통과 필터 역할을 합니다. 저주파를 감쇠함으로써 결과 필터는 고역 통과 필터로 작동합니다. 두 가지 접근 방식을 결합하여 대역 통과 필터를 생성하는 것도 가능합니다.

FIR 필터는 개념적으로 간단하지만 주파수 응답을 정밀하게 제어하려면 이전 데이터 샘플이 상당히 필요할 수 있습니다. 이 필터는 이해하고 구현하기 쉽지만 기존 CPU에서 실행하는 것은 특히 중간 크기의 히스토리에서 번거로울 수 있습니다. 이는 모든 샘플이 출력을 결정하기 위해 많은 곱셈 및 덧셈 연산을 필요로 하기 때문입니다.

필요한 히스토리 양을 줄이는 한 가지 방법은 다음 출력 샘플을 계산할 때 이전에 결정된 필터 출력을 사용하는 것입니다. 이것은 무한 임펄스 응답 필터(IIR)라고 하는 또 다른 디지털 필터 클래스의 루트입니다.

// 이 예는 이전에 확립된 명명 규칙을 사용합니다.
y[n] =b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y [n-1] + a1 * y[n-2]

위의 예는 바이쿼드 필터로 알려진 IIR 필터의 특별한 경우입니다. 이 필터는 계단식으로 연결하여 더 큰 필터를 구성할 수 있는 일반적인 빌딩 블록입니다. 이 접근 방식은 원하는 주파수 응답을 달성하기 위해 FIR 필터에 비해 더 적은 계수를 필요로 합니다. 이 접근 방식을 사용할 때 고려해야 할 특별한 절충점이 있습니다. 피드백을 사용하면 계수가 올바르게 선택되지 않으면 필터가 진동할 수 있습니다.

또한 모든 일반적인 사용 사례에 대한 계수를 자동으로 생성할 수 있는 많은 도구가 있습니다. 필터 계수를 계산하기 위해 "요리책"을 찾는 것이 일반적입니다.

그림 2. 계수를 자동으로 생성하는 많은 도구 중 하나입니다.

PowerQuad IIR 바이쿼드 엔진 사용

LPC55S69 PowerQuad 장치는 IIR 바이쿼드 필터를 계산하기 위한 전용 하드웨어를 통합합니다. 수집된 데이터 샘플을 필터링하기 위해 PowerQuad를 사용하면 CPU에서 다른 작업을 수행할 수 있습니다.

위에서 논의한 바와 같이 필터 알고리즘은 구현하기가 복잡하지 않지만 많은 CPU 시간을 씹을 수 있습니다. LPC55S69 MCU의 PowerQuad 장치에는 많은 필터링 및 복잡한 수학 연산에 최적화된 전용 하드웨어가 포함되어 있습니다. AHB 버스와 Arm® Cortex®-M33 보조 프로세서 인터페이스를 통해 연결됩니다.

LPC55S69의 표준 개발 환경은 무료 Eclipse 기반 IDE MCUXpresso입니다. LPC55S69 SDK에는 유용한 예제가 많이 포함되어 있으며 그 중 일부는 PowerQuad 예제 응용 프로그램입니다.

그림 3. PowerQuad 디지털 필터의 예를 선택합니다.

'powerquad_filter' 예제 프로젝트에는 다양한 필터 구성의 몇 가지 예가 포함되어 있습니다. 'powerquad_filter.c' 파일에는 기본 필터 설정을 보여주는 여러 기능이 있습니다.

앞서 기사에서는 가장 간단한 구현인 'Direct Form I'을 사용하는 필터에 대해 논의했습니다. 그러나 PowerQuad는 결과를 변경하지 않고 곱하기 및 더하기 연산의 흐름을 재정렬하여 입력과 출력의 이력을 모두 저장할 필요가 없는 '직접 형식 II'로 이어집니다. 대신 필터 상태라고도 하는 중간 기록 v[n]이 저장됩니다.

AHB 버스의 소수의 레지스터는 IIR 필터 작업을 위해 PowerQuad를 설정하기 위해 상태와 계수를 저장하는 데 사용됩니다. SDK 예제에서 필터의 상태는 PQ_BiquadRestoreInternalState 함수에서 초기화됩니다.

완료되면 필터가 데이터 샘플을 처리할 준비가 된 것입니다. 이것은 fsl_powerquad_filter.c의 PQ_VectorBiquadDf2F32 함수에서 수행됩니다.

그림 4. 벡터화된 IIR 필터 구현

이 함수는 8의 배수로 입력 샘플 블록을 처리하도록 설계되었습니다. MCR 명령을 사용하여 LPC55S69의 주 처리 코어 레지스터에서 연결된 보조 프로세서(이 경우 PowerQuad)로 데이터를 전송할 수 있습니다.

그러면 PowerQuad가 필터링 작업을 수행합니다. LPC55S69의 Cortex-M33 코어에서 수행하는 것보다 많은 곱셈 및 덧셈 연산을 훨씬 더 효율적으로 수행하는 방법입니다. PowerQuad가 완료되면 데이터를 보조 프로세서에서 내부 CPU 레지스터로 다시 이동하는 MCR 명령으로 결과에 액세스할 수 있습니다.

디지털 필터링을 위한 듀얼 바이쿼드 IIR 엔진

LPC55S69 MCU는 필터링 및 복잡한 수학 연산을 가속화하는 데 도움이 되는 PowerQuad 장치(2개의 개별 바이쿼드 엔진 포함)와 함께 제공됩니다. AHB 버스 레지스터는 PowerQuad IIR 기능을 구성하는 데 사용되며 데이터는 보조 프로세서 인터페이스를 통해 PowerQuad와 Cortex-M33 코어 간에 교환됩니다.

MCUXpresso의 LPC55S69 SDK는 좋은 출발점입니다. 그러나 코드는 이해하기 쉽도록 최적화되어 있지 않습니다. PowerQuad는 필터링 응용 프로그램의 속도를 크게 높일 수 있지만 CPU는 여전히 PowerQuad 보조 프로세서 간에 데이터를 전송해야 합니다.

NXP에는 소프트웨어 구성을 지원하는 유용한 IIR 바이쿼드 필터 설계 및 시각화 도구가 있습니다. NXP의 커뮤니티 페이지는 또한 LPC55S69 MCU의 PowerQuad 장치와 그 기능에 대한 심층적인 정보를 제공합니다.

업계 기사는 업계 파트너가 편집 콘텐츠에 적합하지 않은 방식으로 All About Circuits 독자와 유용한 뉴스, 메시지 및 기술을 공유할 수 있는 콘텐츠 형식입니다. 모든 산업 기사는 독자에게 유용한 뉴스, 기술 전문 지식 또는 이야기를 제공하기 위해 엄격한 편집 지침을 따릅니다. 업계 기사에 표현된 관점과 의견은 파트너의 것이며 반드시 All About Circuits 또는 해당 작성자의 의견은 아닙니다.


임베디드

  1. 피드백이 있는 디지털 논리
  2. 왜 디지털인가?
  3. 마이크로컨트롤러 및 임베디드 시스템을 위한 IC 기술 개요
  4. 데이터로 무엇을 해야 합니까?!
  5. Cisco와 IBM 덕분에 IoT 데이터로 디지털 혁신 가속화
  6. 디지털 세계의 유지 관리
  7. 지식으로 디지털 제조 팀의 역량 강화
  8. IT와 통합된 산업용 소프트웨어
  9. GE Digital:데이터 및 분석을 통한 운영 통찰력
  10. 실시간 MES 데이터로 디지털 공장 구동