임베디드
NXP의 LPC55S69 마이크로컨트롤러에는 다양한 애플리케이션에 적합하도록 하는 많은 기능이 포함되어 있습니다. LPC55S69 MCU와 PowerQuad 장치에는 다양한 작업을 완료하는 데 사용되는 고유한 구성 요소인 Biquad 및 Transform Engine이 포함되어 있어 기본 CPU 코어를 다른 작업에 사용할 수 없습니다.
이전 기사인 임베디드 마이크로컨트롤러를 사용한 디지털 필터링 이해에서는 시간 영역에서 데이터 샘플을 필터링하고 처리하는 데 널리 사용되는 다양한 방법을 살펴보았습니다. 이를 위해 LPC55S69의 PowerQuad 유닛의 Biquad 엔진을 활용했습니다.
이 문서에서는 LPC55S69 MCU가 FFT(고속 푸리에 변환)를 계산할 수 있도록 하는 PowerQuad의 또 다른 부분인 변환 엔진을 조사합니다.
길이 및 온도와 같은 일상적인 측정을 처리할 때 측정 대상의 크기와 온도를 결정하기 위한 도구 세트가 있습니다. 시간 영역 신호의 경우 측정 도구의 선택이 그다지 명확하지 않을 수 있습니다. 그림 1에 제공된 다음 신호 예를 고려하십시오.
이 신호를 어떻게 측정, 이해 및 설명할 수 있습니까? 가능한 선택은 진폭, 주파수 또는 통계의 방법으로 계산된 여러 값일 수 있습니다. 시작하는 한 가지 방법은 그림 2와 같이 알려진 코사인파에 대해 관심 신호를 측정하는 것입니다.
코사인파의 진폭과 주파수는 쉽게 고정되어 식별할 수 있으므로 코사인파를 입력 신호와 비교할 수 있습니다. 올바르게 수행되면 입력 신호와 코사인파 간의 내적 결과 값이 입력 신호가 게이지와 얼마나 상관관계가 있는지를 수량화합니다. 이를 위해 입력 및 게이지 신호를 동일한 길이의 개별 입력 배열로 생각하는 것이 합리적이며 내적 계산이 쉬워집니다.
결과는 스칼라이며 그 크기는 입력 신호가 코사인 게이지 신호와 얼마나 잘 상관되는지에 비례합니다. 내적 연산은 여러 곱셈 및 덧셈 연산으로 요약됩니다. 이는 임베디드 마이크로컨트롤러를 사용한 디지털 필터링 이해에서 설명한 것과 동일한 연산입니다.
이 방법은 빠르게 좋은 결과를 낳습니다. 그러나 이 방법을 적용할 때 작동하지 않는 특별한 경우가 있습니다. 입력 신호가 게이지와 동일한 주파수를 갖는 코사인파이지만 게이지에 대해 위상이 90도 이동된 경우, 앞서 언급한 방법의 출력은 0이 됩니다. 육안 검사를 통해 게이지와 입력 신호 사이에는 여전히 상관 관계가 있는 것으로 보이지만 설명해야 할 세부 사항이 있습니다.
이 동작은 얇은 종이 조각의 "길이"를 측정하는 것과 비교할 수 있습니다. 자를 사용하여 종이 스트립의 한 면의 길이를 결정할 때 용지는 길이가 10인치이고 너비가 1인치일 수 있습니다. 두 숫자 모두 정확하지만 두 측정값을 모두 얻으려면 자를 90도 회전해야 했습니다. 두 숫자 모두 기술적으로 정확하며 함께 사용하여 종이 조각의 실제 "크기"(길이 및 너비)를 얻을 수 있습니다. 입력 신호 측면에서 이 문제를 극복하기 위해 그림 4와 같이 두 번째 게이지를 사용할 수 있습니다.
두 게이지(보라색과 녹색으로 표시) 간의 유일한 차이점은 90도 위상 변이입니다. 이전 비유에서 이것은 자를 회전시키는 것과 같습니다. 내적은 입력 신호와 각 게이지 사이에서 계산되어 최종 출력을 얻습니다. 이렇게 하면 각각 입력이 게이지 중 하나와 얼마나 잘 연관되는지를 포함하는 두 개의 값 A와 B가 생성됩니다. 일반적으로 단일 복소수로 간주됩니다.
출력 =B + i * A
다음 단계는 입력 신호를 주파수가 다른 게이지 범위와 비교하는 것입니다(그림 5).
이미지에서 볼 수 있듯이 최종 결과는 몇 가지 다른 게이지를 통합합니다. 가상 부분(보라색으로 표시)은 위에 표시된 2 게이지 예에서와 같이 녹색 신호(실제 부분)와 비교하여 90도 위상 편이됩니다. 다른 게이지의 수에는 제한이 없습니다.
이산 푸리에 변환(DFT)이라고 하는 이 기술을 사용하면 문제에 대한 모든 관심 주파수에서 출력 스펙트럼이 생성됩니다. 기술을 수학적으로 다음과 같이 기술할 수 있습니다.
여기서 N은 입력 신호의 샘플 수이고 k는 (코)사인 참조 게이지의 주파수입니다.
FFT는 위에서 논의한 방법과 비교하여 더 적은 곱셈 및 덧셈 연산을 필요로 하는 DFT를 계산하는 수치적으로 효율적인 방법입니다. 그러나 입력에 몇 가지 제한 사항이 있습니다.
<올>
DFT/FFT 연산 이면의 수학은 간단한 곱셈 및 덧셈 연산으로 수행할 수 있으며, 이는 LPC55S69 MCU의 PowerQuad와 같은 전용 보조 프로세서에 수학 연산을 아웃소싱하는 데 이상적입니다. 이 때문에 주 CPU 코어는 다른 작업을 자유롭게 수행할 수 있습니다.
PowerQuad FFT 엔진을 활용하는 과정은 간단하며 공식 SDK에는 공동 처리 기능을 보여주는 예제 프로젝트가 함께 제공됩니다. 특히 powerquad_transform이라는 한 가지 예는 FFT 계산 프로세스를 보여줍니다.
powerquad_transform.c 파일에는 다양한 FFT 엔진 모드를 테스트하는 여러 함수가 포함되어 있습니다. 그 중 하나는 PQ_RFFTFixed16Example 함수입니다. 이 예는 16비트 정수 데이터를 허용하도록 PowerQuad를 초기화합니다. PowerQuad 변환 엔진은 정수만 지원하므로 부동 소수점 데이터는 미리 고정 소수점 값으로 변환해야 합니다.
FILTER_INPUT_LEN은 입력 샘플의 수를 정의합니다. 출력 배열은 결과 값의 실수 부분과 허수 부분을 저장해야 하기 때문에 길이가 두 배입니다.
마지막 배열에는 결과를 확인하기 위한 테스트 데이터가 포함됩니다. 배열의 두 번째 절반이 위에서 설명한 것처럼 복잡한 켤레를 어떻게 포함하는지 주목하십시오. 또한, 접합체는 동일하지 않습니다(예:쌍 76,-50 및 77,49). 어쨌든 데이터가 초기화되면 다음 데이터 구조를 사용하여 PowerQuad를 구성합니다.
알고리즘이 오버플로되지 않도록 입력을 축소해야 합니다. 이 프로세스는 위 이미지의 두 번째 줄에서 발생합니다. FILTER_INPUTA_PRESCALER는 32(2의 5제곱) 샘플이 있기 때문에 5로 설정됩니다. 프리스케일링은 PowerQuad의 또 다른 하드웨어 기능이며 예상되는 테스트 결과에서 관찰된 부정확성의 원인일 가능성이 큽니다.
모든 것이 설정되면 입력 및 출력 영역의 위치가 PQ_transformRFFT 함수에서 발생하는 PowerQuad 장치로 전달됩니다. 이 방법은 몇 가지 구성 레지스터를 설정하고 제어 레지스터에 기록하여 PowerQuad를 시작합니다. 이 예에서 CPU는 PowerQuad가 완료될 때까지 기다립니다. 대기가 항상 필요한 것은 아니며 PowerQuad는 CPU가 다른 작업을 수행하는 동안 비동기식으로 계산을 수행할 수 있습니다.
PowerQuad는 LPC5500 MCU 시리즈의 다양한 장치에서 사용할 수 있는 복잡한 수학 연산을 위한 보조 프로세서입니다. 여기에는 메인 CPU 코어와 독립적으로 수행할 수 있는 FFT를 효율적으로 계산하기 위한 특수 엔진이 포함되어 있습니다. LPC55S69 MCU용 SDK에는 PowerQuad를 설정하고 사용하는 방법에 대한 예제가 포함되어 있습니다.
NXP의 커뮤니티 페이지에는 LPC55S69 MCU를 중심으로 한 광범위한 정보, 토론 및 기사가 포함되어 있습니다.
업계 기사는 업계 파트너가 편집 콘텐츠에 적합하지 않은 방식으로 All About Circuits 독자와 유용한 뉴스, 메시지 및 기술을 공유할 수 있는 콘텐츠 형식입니다. 모든 산업 기사는 독자에게 유용한 뉴스, 기술 전문 지식 또는 이야기를 제공하기 위해 엄격한 편집 지침을 따릅니다. 업계 기사에 표현된 관점과 의견은 파트너의 것이며 반드시 All About Circuits 또는 해당 작성자의 의견은 아닙니다.
임베디드
74LS47 IC에는 공통 양극 LED 또는 백열 표시등을 구동할 수 있는 2개의 액티브 로우 출력이 있습니다. 입력으로 이진 코드 십진수를 사용하여 0에서 9까지의 숫자를 표시하는 7-세그먼트 디스플레이를 구동하는 패턴으로 변환합니다(숫자의 각 자릿수는 BCD(이진 시퀀스)로 인코딩됩니다(일반적으로 4비트). 그 외에도 BCD-7세그먼트 디코더는 조합 논리 회로를 사용하여 BCD 십진수를 7세그먼트 형식으로 변환합니다. 핀과 같은 전자 부품 및 제품에 대한 자세한 정보가 설명되어 있습니다. 74LS47의 기능에 대해 명확하게
이 마스크는 필라멘트 압출, 개인용 3D 프린터로 인쇄하도록 설계되었습니다. 이 페이지에서 STL 파일과 마스크 제작 및 조립 방법을 포함한 마스크 정보가 포함된 패키지를 다운로드할 수 있습니다. 이 마스크 자체는 필터가 아닙니다. 마스크에 필터를 삽입할 수 있는 곳이 있습니다. 이 마스크는 COVID-19의 확산을 늦추거나 예방하는 테스트, 승인 또는 입증되지 않았으며 의료용으로 제작되지 않았습니다. 이 마스크를 만드는 데 사용한 장비: 개인용 3D 프린터 PLA 씰 소재 필터 탄력 폴리우레탄 또는 에폭시 실런트 여