이미지 크레디트 : White Flye, SA ADC 블록 다이어그램, CC BY-SA 2.5
아날로그-디지털 변환기: 작업, 유형, 7 응용 프로그램
아날로그 신호는 시간 연속 및 연속 진폭 신호로 정의됩니다. 동시에 디지털 신호는 이산 시간 및 이산 진폭 신호로 정의됩니다. 아날로그 신호는 아날로그-디지털 변환기를 통해 디지털 신호로 변환됩니다. 그만큼 변환에는 여러 단계가 있습니다., 샘플링, 양자화 등과 같은 것입니다. 프로세스는 연속적이지 않습니다. 대신 주기적이며 입력 신호의 허용 대역폭을 제한합니다.
Nyquist-Shannon을 기반으로 작동하는 아날로그-디지털 변환기 샘플링 정리. 샘플링 속도가 입력 신호에 존재하는 가장 높은 주파수 성분보다 두 배 크거나 이진 신호의 유형 같으면 입력 신호가 샘플링된 출력에서 복구될 수 있다고 명시되어 있습니다.
아날로그-디지털 변환기의 성능을 측정하기위한 몇 가지 매개 변수가 있습니다. 출력 신호의 대역폭, 신호 대 잡음비는 일부 매개 변수입니다.
ADC의 전기 기호
아래 기호는 아날로그-디지털 변환기 (ADC)를 나타냅니다.
아날로그-디지털 변환기의 유형
입력된 아날로그 신호를 디지털 신호로 이진 신호의 유형 변환하는 것은 다양한 프로세스를 통해 달성할 수 있습니다. 몇 가지 논의해 보자. 자세한 유형 -
A. 플래시 ADC
플래시 ADC는 직접 변환 유형의 아날로그-디지털 변환기로 알려져 있습니다. 가장 빠른 유형의 아날로그-디지털 변환기 중 하나입니다. 전압 분배기 래더에 연결된 반전 단자와 아날로그 입력 신호에 연결된 비 반전 단자가있는 일련의 비교기로 구성됩니다.
회로에서 알 수 있듯이 잘 정합 된 저항의 래더는 기준 또는 임계 전압으로 연결됩니다. 저항기 래더의 각 탭에는 비교기가 사용됩니다. 그런 다음 증폭 단계가 있으며 그 후 코드는 이진 값 (0 및 1)으로 생성됩니다. 증폭기도 사용됩니다. 증폭기는 비교기의 전압 차이를 증폭하고 비교기 오프셋을 억제합니다.
측정 된 전압이 임계 전압보다 높으면 이진 출력은 0이되고 측정 된 전압이 이진 작업보다 작 으면 XNUMX이됩니다.
최근 개선 된 ADC는 디지털 오류 수정 시스템, 오프셋 교정으로 수정되며 크기도 더 작습니다. ADC는 이제 집적 회로 (IC)로 제공됩니다.
이러한 유형의 아날로그-디지털 변환기는 샘플링 속도가 높습니다. 따라서 고주파 장치에 적용됩니다. 레이더, 광대역 라디오, 다양한 테스트 장비를 사용한 탐지가 그중 일부입니다. NAND 플래시 메모리는 또한 플래시 유형의 아날로그-디지털 변환기를 사용하여 셀에 최대 3 비트를 저장합니다.
플래시 유형 ADC는 작동 속도가 가장 빠르고 회로가 간단하며 변환이 순차적이 아니라 일치합니다. 그러나 이러한 경우에는 다른 유형의 ADC보다 상당한 수의 비교가 필요합니다.
플래시 유형 ADC
이미지 크레딧 : Jon Guerber, 플래시 ADC, 3.0 BY CC
B. 연속 근사 형 ADC
연속 근사 유형 ADC는 디지털 도메인으로 변환하기 전에 양자화 레벨을 통한 이진 검색을 사용하는 또 다른 유형의 아날로그-디지털 변환기입니다.
전체 프로세스는 다른 하위 프로세스로 나뉩니다. 아날로그 입력 Vin을 취하는 충분한 홀드 회로가 있습니다. 그럼 있다 입력 아날로그 전압을 비교하는 비교기 내부 디지털-아날로그 변환기. 입력을 클록 펄스 및 비교기 데이터로 사용하는 연속 근사 레지스터(SAR)도 있습니다.
SAR은 기본적으로 MSB (최상위 비트)를 로직 하이 또는 1로 만들기 위해 초기화됩니다.이 코드는 샘플링 된 아날로그 입력 신호와 비교하여 비교기 회로와 동등한 아날로그를 제공하는 디지털-아날로그 변환기에 제공됩니다. . 전압이 입력 전압보다 크면 비교기가 비트를 재설정합니다. 그렇지 않으면 비트가 그대로 남아 있습니다. 그 후, 다음 비트는 디지털 비트로 설정되고 연속 근사 레지스터의 모든 비트가 테스트 될 때까지 전체 프로세스가 다시 수행됩니다. 최종 출력은 아날로그 입력 신호의 디지털 버전입니다.
두 가지 유형의 연속 근사 형 아날로그-디지털 변환기를 사용할 수 있습니다. 카운터 유형과 서보 추적 유형입니다.
이러한 유형의 ADC는 다른 유형의 ADC보다 가장 정확한 결과를 제공합니다.
연속 근사 형 ADC
이미지 크레디트 : White Flye, SA ADC 블록 다이어그램, CC BY-SA 2.5
C. 통합형 ADC
이름에서 알 수 있듯이 이러한 유형의 ADC는 연속 시간 및 연속 진폭 입력 아날로그 신호를 적분기(적분기)를 사용하여 디지털 신호로 변환하여 적용합니다. 연산 증폭기 그것은 일반적인 입력 신호를 취하고 시간 적분 출력 신호를 제공합니다).
식별되지 않은 아날로그 입력 전압이 입력 단자에 적용되고 런업 기간으로 알려진 특정 기간 동안 램프가 허용됩니다. 그런 다음 반대 극성의 미리 결정된 기준 전압이 적분기 회로에 적용됩니다. 또한 적분기가 출력을 XNUMX으로 제공하지 않는 한 램프가 허용됩니다. 이 시간을 런 다운 기간이라고합니다.
런 다운 시간은 일반적으로 ADC 클록 단위로 측정됩니다. 따라서 통합 시간이 길수록 해상도가 높아집니다. 이러한 유형의 컨버터의 속도는 솔루션을 손상시킴으로써 향상 될 수 있습니다.
속도와 해상도가 반비례하기 때문에 이러한 유형의 변환기는 디지털 신호 처리 또는 오디오 처리 애플리케이션을 찾지 못합니다. 바람직하게는 디지털 측정 미터 (전류계, 전압계 등) 및 높은 정확도가 중요한 기타 기기에 사용됩니다.
이 유형의 ADC에는 아날로그-디지털 변환기와 듀얼 슬로프 ADC의 두 가지 종류가 있습니다.
ADC 통합, 이미지 크레딧 : 스코트9 영어 위키 피 디아, 향상된 런업 이중 경사, 위키 미디어 공용
D. 윌킨슨 ADC
– DH Wilkinson은 1950 년에 이러한 유형의 아날로그-디지털 변환기를 처음으로 설계했습니다.
처음에는 커패시터가 충전됩니다. 비교기는이 조건을 확인합니다. 지정된 레벨에 도달하면 이제 커패시터가 선형으로 방전을 시작하여 램프 신호를 생성합니다. 그 동안 게이트 펄스도 시작됩니다. 게이트 펄스는 커패시터가 방전되는 동안 나머지 시간 동안 켜져 있습니다. 이 게이트 펄스는 고주파의 발진기 클록으로부터 입력을 더 수신하는 선형 게이트를 추가로 작동시킵니다. 이제 게이트 펄스가 ON 일 때 여러 클럭 펄스가 주소 레지스터에 의해 계산됩니다.
E. 시간 확장 아날로그-디지털 변환기 (TS – ADC) :
이러한 유형의 아날로그-디지털 변환기는 전자 및 기타 기술의 결합 된 기술에서 작동합니다.
일반 ADC로는 수행 할 수없는 매우 높은 대역폭 신호를 디지털화 할 수 있습니다. 이를 종종 "Photonic Time Stretch Digitizer"라고합니다.
아날로그-디지털뿐만 아니라 이미징 및 분광기와 같은 고 처리량 실시간 장비에도 이진 신호의 유형 사용됩니다.
- 델타 인코딩 ADC
- 파이프 라인 ADC,
- 시그마-델타 ADC,
- 시간 인터리브 ADC 등
ADC의 응용
아날로그-디지털 변환기는이 현대 시대에서 가장 중요한 전자 장치 중 하나입니다. 지금은 디지털화의 시대이지만 우리 세상은 실시간으로 아날로그입니다. 디지털 도메인에서 아날로그 데이터를 변환하는 것이이 시간의 필요입니다. 그것이 그들이 그렇게 중요한 이유입니다. ADC의 중요한 애플리케이션 중 일부는 다음과 같습니다.
A. 디지털 신호 처리
– 아날로그-디지털 변환기는 아날로그 필드에서 디지털 영역으로 데이터를 편집, 수정, 처리, 저장 및 전송하는 데 필수적입니다. 마이크로컨트롤러, 디지털 오실로스코프 및 중요 소프트웨어는 이 영역에서 응용 프로그램을 찾습니다. 다음과 같은 장치 디지털 오실로스코프 아날로그 오실로스코프는 저장할 수 없는 반면 나중에 사용하기 위해 파형을 저장할 수 있습니다.
B. 마이크로 컨트롤러
– 마이크로 컨트롤러는 장치를 스마트하게 만듭니다. 현재 거의 모든 마이크로 컨트롤러에는 내부에 아날로그-디지털 변환기가 있습니다. 가장 일반적인 예는 Arduino 일 수 있습니다. (ATMega328p 마이크로 컨트롤러에 구축) 아두 이노는 아날로그 입력 신호를 받아 ADC에서 생성 한 디지털 데이터를 반환하는 'analogRead ()'의 유용한 기능을 제공합니다.
C. 과학 기기
- ADC는 필요한 다양한 전자 기기 및 시스템을 만드는 데 유용합니다. 픽셀, 레이더 기술 및 많은 원격 감지 시스템의 디지털화를위한 디지털 이미징이 그 예입니다. 센서와 같은 장치는 온도, 광도, 빛 감도, 공기 습도, 기압, 용액의 pH 등을 측정하기위한 아날로그 신호를 생성합니다. 이러한 모든 아날로그 입력은 ADC에 의해 변환되어 비례적인 디지털 출력을 생성합니다.
D. 오디오 처리 :
-ADC는 오디오 처리 분야에서 중요한 응용 프로그램을 가지고 있습니다. 음악의 디지털화는 음악 품질을 향상시킵니다. 아날로그 음성은 마이크를 통해 녹음됩니다. 그런 다음 ADC를 사용하여 디지털 플랫폼에 저장됩니다. 많은 음악 녹음 스튜디오에서 녹음 PCM 또는 DSD 형식으로 변환한 다음 디지털 오디오 제작을 위해 다운샘플링합니다. 그들은 텔레비전과 라디오 방송에 사용됩니다.
아날로그-디지털 변환기 테스트
아날로그-디지털 변환기를 테스트하려면 먼저 신호를 전송 및 제어하고 디지털 출력 데이터를 수신하기위한 아날로그 입력 전압 소스와 전자 장비가 필요합니다. 일부 ADC에는 기준 신호 소스도 필요합니다. ADC를 테스트하기위한 몇 가지 매개 변수가 있습니다.
ADC IC
ADC는 시장에서 IC로 상업적으로 이용 가능합니다. 일반적으로 사용되는 ADC IC 중 일부는 다음과 같습니다. ADC0808, ADC0804, MPC3008, 등. 그들은 Rasberry pi 및 기타 프로세서와 같은 장치에서 응용 프로그램을 찾거나 디지털 전자 ADC가 필요한 회로.
전자 제품에 대해 더 많이 알기 위해 여기를 클릭하십시오
저는 전자 애호가이며 현재 전자 및 통신 분야에 전념하고 있습니다. 저는 AI 및 기계 학습과 같은 현대 기술을 탐구하는 데 큰 관심이 있습니다. 내 글은 모든 학습자에게 정확하고 업데이트 된 데이터를 제공하는 데 전념합니다. 누군가가 지식을 얻도록 돕는 것은 저에게 큰 기쁨을줍니다. LinkedIn을 통해 연결합시다-https://www.linkedin.com/in/sr-sudipta/
최근 게시물
수산화 칼륨 또는 가성 칼륨은 무기 부분입니다. 몰 질량은 56.11g/mol입니다. KOH Lewis 구조와 모든 사실을 자세히 요약해 보겠습니다. KOH는 단순 알칼리 금속 수산화물입니다 .
"아직"이라는 단어는 주로 문장에서 "지금까지" 또는 "그래도"라는 의미로 사용됩니다. "아직"이라는 단어가 "접속사"로 사용되는지 확인합시다. "아직"이라는 단어는 "조정하는 . "으로 표시 될 수 있습니다.
report this ad
회사 소개
우리는 과학, 공학, 영문학 등 다양한 교육 분야 전문 분야의 산업 전문가 그룹으로 지식 기반 교육 솔루션을 원스톱으로 구축하고 있습니다.
report this ad
report this ad
이진 신호의 유형
대부분의 전자회로는 입력과 출력 관계로 설명되는데, 이는 입력 신호가 전자회로에 인가되었을 때 이에 따른 출력 신호가 나오도록 회로가 설계된다는 것을 의미한다. 여기서의 신호는 시스템의 동작을 일으키는 물리량을 말하며, 전압이나 전류가 전기적인 신호의 대표적인 예라 할 수 있겠다. 통신의 관점에서의 신호의 종류에 대해서는 다음 글을 참고하도록 한다.
위에 링크한 글을 읽었다면 알 수 있겠지만, 아날로그(analog) 신호는 연속적인 물리량을 나타내는 데에 사용된다. 자연에서 얻는 신호들이 대개 아날로그 신호이며, 전압이나 전류 역시도 연속적으로 변화하는 물리량이므로 아날로그 신호에 포함된다.
아날로그 신호는 정보의 관점과 신호의 관점에서 구분하여 표현할 수 있는데, 정보의 관점에서는 음성이나 영상 신호와 같이 실생활에서 다루는 대부분의 정보 신호의 표현을 말하고, 신호의 관점에서는 위에서 링크한 글과 같이 시간에 따라 크기와 패턴이 계속해서 바뀌는 전자기파나 정현파와 같이 신호에 대한 표현을 의미한다.
디지털 신호는 아날로그 신호와는 대비되는 개념으로, 이산적인(discrete) 물리량을 나타내는 데에 사용된다. 임의의 시간값을 최소값의 정수배로 표현하고, 그 이외의 값은 취하지 않음으로써 디지털 신호를 나타낸다. 오늘날 사용하는 대부분의 컴퓨터는 디지털 신호를 다루며, 이는 0과 1을 기본 단위로 하는 이산적인 물리량이다. 신호의 관점에서는 양자화(quantization)된 신호라 표현하기도 한다.
디지털 신호 역시 정보의 관점과 신호의 관점에서 구분하여 표현할 수 있다. 정보의 측면에서는 문자나 정수, on/off, 0/1 과 같은 표현이 있으며, 신호의 관점에서는 불연속적인 신호 변화나 이진 펄스(binary pulse) 정보 등과 같은 표현이 사용된다.
장단기 기억 신경망을 사용하여 심전도 신호 분류하기
이 예제에서는 딥러닝과 신호 처리를 사용하여 PhysioNet 2017 Challenge의 심전도(ECG) 데이터를 분류하는 방법을 보여줍니다. 특히, 이 예제에서는 장단기 기억 신경망과 시간-주파수 분석을 사용합니다.
심전도는 일정 시간 동안 사람 심장의 전기적 활성을 기록합니다. 의사들은 심전도를 사용하여 환자의 심박이 정상인지 불규칙적인지를 시각적으로 판단합니다.
심방세동(AFib)은 심장의 심방이 심실과 다른 주기로 뛸 때 발생하는 불규칙적인 심박입니다.
이 예제에서는 PhysioNet 2017 Challenge [1], [2], [3]의 심전도 데이터를 사용합니다. 이 데이터는 https://physionet.org/challenge/2017/에서 확인할 수 있습니다. 데이터는 300Hz로 샘플링되고 전문가 그룹이 네 가지 클래스로 분류한 심전도 신호로 구성되어 있습니다. 이들 네 가지 클래스는 정상(N), AFib(A), 기타 리듬(O), 잡음이 있는 기록(~)입니다. 이 예제에서는 딥러닝을 사용하여 분류 과정을 자동화하는 방법을 보여줍니다. 이 절차에서는 정상 심전도 신호를 AFib 증상을 보이는 신호와 구분할 수 있는 이진 분류기를 살펴봅니다.
이 예제에서는 시퀀스 데이터와 시계열 데이터를 연구하는 데 적합한 일종의 순환 신경망(RNN)인 장단기 기억(LSTM) 신경망을 사용합니다. LSTM 신경망은 시퀀스의 시간 스텝 간의 장기적인 종속성을 학습할 수 있습니다. LSTM 계층( lstmLayer )은 순방향의 시간 시퀀스를 살펴볼 수 있고, 양방향 LSTM 계층( bilstmLayer )은 순방향과 역방향의 시간 시퀀스를 살펴볼 수 있습니다. 이 예제에서는 양방향 LSTM 계층을 사용합니다.
훈련 과정을 가속화하려면 GPU가 있는 시스템에서 이 예제를 실행하십시오. 시스템에 GPU와 Parallel Computing Toolbox™가 있는 경우 MATLAB®은 자동으로 훈련에 GPU를 사용하고, 그렇지 않은 경우 CPU를 사용합니다.
데이터를 불러오고 검토하기
ReadPhysionetData 스크립트를 실행하여 PhysioNet 웹 사이트에서 데이터를 다운로드하고 적절한 형식의 심전도 신호를 포함하는 MAT 파일( PhysionetData.mat )을 생성합니다. 데이터를 다운로드하는 데 몇 분 정도 걸릴 수 있습니다. PhysionetData.mat 가 아직 현재 폴더에 없는 경우에만 스크립트를 실행하는 조건문을 사용하십시오.
불러오기 작업은 작업 공간에 두 개의 변수 Signals 와 Labels 를 추가합니다. Signals 는 심전도 신호를 포함하는 셀형 배열입니다. Labels 는 신호의 대응되는 실측 레이블을 포함하는 categorical형 배열입니다.
summary 함수를 사용하여 데이터에 몇 개의 AFib 신호와 정상 신호가 있는지 확인합니다.
신호 길이에 대한 히스토그램을 생성합니다. 대부분의 신호의 길이가 9000개 샘플입니다.
각 클래스별로 신호 하나의 세그먼트를 시각화합니다. AFib 심박은 불규칙한 간격으로 샘플이 배치되는 반면 정상 심박은 규칙적인 간격을 갖습니다. AFib 심박 신호에는 정상 심박 신호에서 QRS 복합파 전에 뛰는 P파가 없는 경우가 많습니다. 정상 신호의 플롯에서는 P파와 QRS 복합파를 볼 수 있습니다.
훈련을 위해 데이터 준비하기
훈련 중에 trainNetwork 함수는 데이터를 미니 배치로 분할합니다. 이 함수는 그런 다음 동일한 미니 배치의 신호가 모두 동일한 길이를 갖도록 채우거나 자릅니다. 추가되었거나 제거된 정보를 기반으로 하여 신경망에서 신호를 올바르지 않게 해석할 수 있기 때문에 너무 많이 채우거나 자르면 신경망 성능이 저하될 수 있습니다.
과도한 채우기나 자르기를 방지하려면 심전도 신호의 길이가 모두 9000개 샘플이 되도록 심전도 신호에 segmentSignals 함수를 적용하십시오. 이 함수는 샘플이 9000개 미만인 신호를 무시합니다. 신호의 샘플이 9000개보다 많은 경우 segmentSignals 는 신호를 분할해 9000개 샘플 크기의 세그먼트가 가능한 한 가장 많이 생성되게 하고 나머지 샘플은 무시합니다. 예를 들어, 18500개의 샘플로 구성된 신호는 9000개의 샘플로 구성된 신호 2개가 되고 나머지 500개의 샘플은 무시됩니다.
Signals 배열의 처음 5개 요소를 보고 각 항목의 길이가 이제 9000개 샘플이 된 것을 확인합니다.
원시 신호 데이터를 사용하여 분류기 훈련시키기
분류기를 설계하려면 이전 섹션에서 생성된 원시 신호를 사용하십시오. 신호를 분류기 훈련을 위한 훈련 세트와 새 데이터에 대한 분류기의 정확도 테스트를 위한 테스트 세트로 분할합니다.
summary 함수를 사용하여 AFib 신호와 정상 신호의 비가 718:4937 또는 약 1:7임을 확인합니다.
신호의 7/8이 정상 신호이므로 분류기는 모든 신호를 정상으로 분류하면 높은 정확도를 달성할 수 있음을 학습하게 됩니다. 이러한 편향을 방지하려면 정상 신호와 AFib 신호의 개수가 같아지도록 데이터셋에서 AFib 신호를 복제하여 AFib 신호의 개수를 늘리십시오. 일반적으로 오버샘플링이라고 하는 이러한 복제 기법은 딥러닝에서 사용되는 데이터 증대의 한 가지 형태입니다.
신호를 클래스에 따라 분할합니다.
다음으로, dividerand 를 사용하여 각 클래스의 목표값을 훈련 세트와 세트로 무작위로 나눕니다.
이제 훈련에 사용할 646개의 AFib 신호와 4443개의 정상 신호가 있습니다. 각 클래스에서 동일한 개수의 신호가 있도록 하려면 처음 4438개의 정상 신호를 사용한 다음 repmat 를 사용하여 처음 634개의 AFib 신호가 7번 반복되도록 복제하십시오.
테스트에 사용할 신호는 72개의 AFib 신호와 494개의 정상 신호가 있습니다. 처음 490개의 정상 신호를 사용한 다음 repmat 를 사용하여 처음 70개의 AFib 신호가 7번 반복되도록 복제하십시오. 기본적으로, 신경망은 연속된 신호가 모두 동일한 레이블을 갖지 않도록 하기 위해 훈련 전에 데이터를 무작위로 섞습니다.
이제 훈련 세트와 테스트 세트에서 정상 신호와 AFib 신호 사이의 분포가 균일합니다.
LSTM 신경망 아키텍처 정의하기
LSTM 신경망은 시퀀스 데이터의 시간 스텝 간의 장기적인 종속성을 학습할 수 있습니다. 이 예제에서는 순방향과 역방향의 시퀀스를 모두 살펴보므로 양방향 LSTM 계층 bilstmLayer 를 사용합니다.
입력 신호가 각각 1개의 차원을 가지므로 입력 크기가 크기 1로 구성된 시퀀스가 되도록 지정합니다. 출력 크기가 100인 양방향 LSTM 계층을 지정하고 시퀀스의 마지막 요소를 출력합니다. 다음 명령은 입력 시계열을 100개의 특징으로 매핑하도록 양방향 LSTM 계층에 지시하고 완전 연결 계층에 대한 출력값을 준비합니다. 마지막으로, 크기가 2인 완전 연결 계층을 포함하여 2개의 클래스를 지정하고, 이어서 소프트맥스 계층과 분류 계층을 지정합니다.
다음은 분류기의 훈련 옵션을 지정합니다. 신경망이 훈련 데이터를 10번 통과하도록 'MaxEpochs' 를 10으로 설정합니다. 신경망이 한 번에 150개의 훈련 신호를 살펴보도록 'MiniBatchSize' 를 150으로 설정합니다. 'InitialLearnRate' 를 0.01로 설정하면 훈련 과정의 속도를 높이는 데 도움이 됩니다. 시스템이 한 번에 지나치게 많은 데이터를 살펴봄으로써 메모리가 부족해지지 않도록 'SequenceLength' 를 1000으로 지정하여 신호를 더 작은 조각으로 분할합니다. 기울기가 지나치게 커지지 않도록 ' GradientThreshold '를 1로 설정하여 훈련 과정을 안정화합니다. 'Plots' 를 'training-progress' 로 지정하여 반복 횟수가 늘어남에 따라 훈련 진행 상황을 그래픽으로 표시하는 플롯을 생성합니다. 'Verbose' 를 false 로 설정하여 플롯에 표시되는 데이터에 대응되는 표의 형태로 출력값이 표시되지 않도록 합니다. 이 표를 보려면 'Verbose' 를 true 로 설정하십시오.
이 예제에서는 ADAM(적응적 모멘트 추정) 솔버를 사용합니다. ADAM은 LSTM과 같은 RNN에서 디폴트 값인 모멘텀을 사용한 확률적 경사하강법(SGDM) 솔버보다 더 나은 성능을 보입니다.
LSTM 신경망 훈련시키기
trainNetwork 를 사용하여 지정된 훈련 옵션과 계층 아키텍처로 LSTM 신경망을 훈련시킵니다. 훈련 세트가 크기 때문에 훈련 과정에 몇 분 정도 걸릴 수 있습니다.
훈련 진행 과정 플롯의 상단 서브플롯은 훈련 정확도, 즉 각 미니 배치의 분류 정확도를 나타냅니다. 훈련이 성공적으로 진행되면 이 값은 일반적으로 100%를 향해 늘어납니다. 하단 서브플롯에는 훈련 손실, 즉 각 미니 배치의 교차 엔트로피 손실이 표시됩니다. 훈련이 성공적으로 진행되면 이 값은 일반적으로 0을 향해 줄어듭니다.
훈련이 수렴되지 않을 경우 플롯이 특정 상향 또는 하향 방향으로 진행되는 대신 특정 값 사이를 진동할 수 있습니다. 이러한 진동은 훈련 정확도가 증가하지 않고 있으며 훈련 손실이 감소하지 않고 있음을 의미합니다. 이 상황은 훈련 시작부터 발생할 수도 있고, 또는 훈련 정확도가 초기에는 개선되다가 이어서 플롯이 일정해진 경우일 수도 있습니다. 대부분의 경우, 훈련 옵션을 변경하면 신경망이 수렴하는 데 도움이 됩니다. MiniBatchSize 를 줄이거나 InitialLearnRate 를 줄이면 훈련 시간이 늘어나긴 하지만 신경망이 더욱 잘 학습하는 데 도움이 될 수 있습니다.
분류기의 훈련 정확도는 약 50%와 약 60% 사이를 진동합니다. 그리고 10회의 Epoch를 마친 후에 이미 훈련에 수 분이 소요된 것을 볼 수 있습니다.
훈련 및 테스트 정확도 시각화하기
훈련이 진행된 신호에 대한 분류기의 정확도를 나타내는 훈련 정확도를 계산합니다. 먼저 훈련 데이터를 분류합니다.
분류 문제에서는 실제 값이 알려져 있는 데이터 세트에 대한 분류기의 성능을 시각화하기 위해 혼동행렬이 사용됩니다. 목표 클래스는 신호의 실측 레이블이고, 출력 클래스는 신경망이 신호에 할당한 레이블입니다. 좌표축 레이블은 클래스 레이블, 즉 AFib(A)와 정상(N)을 나타냅니다.
confusionchart 명령을 사용하여 테스트 데이터 예측값에 대한 전체적인 분류 정확도를 계산합니다. 'RowSummary' 를 'row-normalized' 로 지정하여 행 요약에 참양성률과 거짓양성률을 표시합니다. 또한, 'ColumnSummary' 를 'column-normalized' 로 지정하여 열 요약에 양성예측도와 오발견율을 표시합니다.
이번에는 같은 신경망을 사용하여 테스트 데이터를 분류합니다.
테스트 정확도를 계산하고, 분류 성능을 혼동행렬로 시각화합니다.
특징 추출을 사용하여 성능 개선하기
데이터에서 특징을 추출하여 분류기의 훈련 및 테스트 정확도를 개선할 수 있습니다. 어느 특징을 추출할지 판단하기 위해 이 예제에서는 스펙트로그램과 같은 시간-주파수 영상을 계산하는 방법을 조정하며, 이를 사용하여 컨벌루션 신경망(CNN)을 훈련시킵니다 [4], [5].
각 신호 유형의 스펙트로그램을 시각화합니다.
이 예제에서는 CNN 대신 LSTM을 사용하므로 접근 방법을 1차원 신호에 적용되도록 변환하는 것이 중요합니다. 시간-주파수(TF) 모멘트는 스펙트로그램에서 정보를 추출합니다. 각 모멘트는 LSTM에 입력할 1차원 특징으로 사용할 수 있습니다.
시간 영역에서 두 개의 TF 모멘트를 검토합니다.
순시 주파수( instfreq )
스펙트럼 엔트로피( pentropy )
instfreq 함수는 신호의 시간 종속 주파수를 파워 스펙트로그램의 1차 모멘트로 추정합니다. 함수는 시간 윈도우에 대해 단시간 푸리에 변환을 사용하여 스펙트로그램을 계산합니다. 이 예제에서는 255개의 시간 윈도우를 사용합니다. 함수의 시간 출력값은 시간 윈도우의 중앙에 대응됩니다.
각 신호 유형에 대해 순시 주파수를 시각화합니다.
cellfun 을 사용하여 훈련 세트와 테스트 세트의 모든 셀에 instfreq 함수를 적용합니다.
스펙트럼 엔트로피는 신호의 스펙트럼이 얼마나 뾰족하거나 평탄한지 측정합니다. 정현파의 합과 같이 스펙트럼이 뾰족한 신호는 스펙트럼 엔트로피가 낮습니다. 백색 잡음과 같이 스펙트럼이 평탄한 신호는 스펙트럼 엔트로피가 높습니다. pentropy 함수는 파워 스펙트로그램을 바탕으로 스펙트럼 엔트로피를 추정합니다. 순시 주파수 추정의 경우와 마찬가지로, pentropy 는 255개의 시간 윈도우를 사용하여 스펙트로그램을 계산합니다. 함수의 시간 출력값은 시간 윈도우의 중앙에 대응됩니다.
각 신호 유형에 대해 스펙트럼 엔트로피를 시각화합니다.
cellfun 을 사용하여 훈련 세트와 테스트 세트의 모든 셀에 pentropy 함수를 적용합니다.
새 훈련 세트와 테스트 세트의 각 셀이 2개의 차원, 즉 2개의 특징을 갖도록 특징들을 결합합니다.
새 입력값의 형식을 시각화합니다. 각 셀은 더 이상 길이가 샘플 9000개인 신호를 포함하지 않습니다. 이제 각 길이가 샘플 255개인 2개의 특징을 포함합니다.
데이터 표준화하기
순시 주파수와 스펙트럼 엔트로피의 평균값은 거의 10배 차이가 납니다. 또한, 순시 주파수의 평균은 LSTM이 효과적으로 학습을 진행하기에는 지나치게 높을 수 있습니다. 신경망이 평균이 크고 값의 범위가 큰 데이터에 대해 피팅된 경우, 큰 입력값은 신경망의 학습과 수렴 속도를 저하할 수 있습니다 [6].
훈련 세트의 평균과 표준편차를 사용하여 훈련 세트와 테스트 세트를 표준화합니다. 표준화(z-점수화)는 훈련 중에 신경망 성능을 개선하는 방법으로 널리 사용됩니다.
표준화된 순시 주파수와 스펙트럼 엔트로피의 평균을 표시합니다.
LSTM 신경망 아키텍처 수정하기
이제 신호가 각각 2개의 차원을 갖습니다. 따라서 입력 시퀀스의 크기를 2로 지정하여 신경망 아키텍처를 수정해야 합니다. 출력 크기가 100인 양방향 LSTM 계층을 지정하고 시퀀스의 마지막 요소를 출력합니다. 크기가 2인 완전 연결 계층을 포함하여 2개의 클래스를 지정하고, 이어서 소프트맥스 계층과 분류 계층을 지정합니다.
훈련 옵션을 지정합니다. 신경망이 훈련 데이터를 30번 통과하도록 최대 Epoch 횟수를 30으로 설정합니다.
시간-주파수 이진 신호의 유형 특징으로 LSTM 신경망 훈련시키기
trainNetwork 를 사용하여 지정된 훈련 옵션과 계층 아키텍처로 LSTM 신경망을 훈련시킵니다.
훈련 정확도가 크게 개선되었습니다. 교차 엔트로피 손실은 0을 향해가고 있습니다. 또한, TF 모멘트가 원시 시퀀스보다 짧기 때문에 훈련에 필요한 시간이 줄어듭니다.
훈련 및 테스트 정확도 시각화하기
업데이트된 LSTM 신경망을 사용하여 훈련 데이터를 분류합니다. 분류 성능을 혼동행렬로 시각화합니다.
업데이트된 신경망을 사용하여 테스트 데이터를 분류합니다. 혼동행렬을 플로팅하여 테스트 정확도를 검토합니다.
이 예제에서는 LSTM 신경망을 사용하여 심전도 신호에서 심방세동을 검출하는 분류기를 만드는 방법을 소개했습니다. 이 절차에서는 주로 건강한 환자로 구성된 데이터에서 이상 조건을 검출하고자 할 때 발생하는 분류 편향을 방지하기 위해 오버샘플링을 사용했습니다. 원시 신호 데이터를 사용하여 LSTM 신경망을 훈련시키면 분류 정확도가 매우 낮아집니다. 각 신호에 대해 2개의 시간-주파수 모멘트 특징을 사용하여 신경망을 훈련시키면 분류 성능이 크게 개선되고 훈련 시간도 줄어듭니다.
참고 문헌
[1] AF Classification from a Short Single Lead ECG Recording: the PhysioNet/Computing in Cardiology Challenge, 2017. https://physionet.org/challenge/2017/
[2] Clifford, Gari, Chengyu Liu, Benjamin Moody, Li-wei H. Lehman, Ikaro Silva, Qiao Li, Alistair Johnson, and Roger G. Mark. "AF Classification from a Short Single Lead ECG Recording: The PhysioNet Computing in Cardiology Challenge 2017." Computing in Cardiology (Rennes: IEEE). Vol. 44, 2017, pp. 1–4.
[3] Goldberger, A. L., L. A. N. Amaral, L. Glass, J. M. Hausdorff, P. Ch. Ivanov, R. G. Mark, J. E. Mietus, G. B. Moody, C.-K. Peng, and H. E. Stanley. "PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals". Circulation . Vol. 101, No. 23, 13 June 2000, pp. e215–e220. http://circ.ahajournals.org/content/101/23/e215.full
[4] Pons, Jordi, Thomas Lidy, and Xavier Serra. "Experimenting with Musically Motivated Convolutional Neural Networks". 14th International Workshop on Content-Based Multimedia Indexing (CBMI) . June 2016.
[5] Wang, D. "Deep learning reinvents the hearing aid," IEEE Spectrum , Vol. 54, No. 3, March 2017, pp. 32–37. doi: 10.1109/MSPEC.2017.7864754.
측정 시스템에 적합한 DAQ 하드웨어를 선택하는 방법
선택할 수 있는 데이터 수집 (DAQ) 디바이스가 많기 때문에 어플리케이션에 적합한 디바이스를 선택하기 어려울 수 있습니다. 이 백서에서는 하드웨어를 선택할 때 확인해야 하는 다섯 가지 사항을 살펴봅니다.
적절한 DAQ 하드웨어를 선택하는 데 도움이 되는 5가지 질문
- 어떤 유형의 신호를 측정하거나 생성해야 합니까?
- 신호 컨디셔닝이 필요합니까?
- 신호의 샘플을 얼마나 빠르게 수집하거나 생성해야 합니까?
- 감지해야 하는 신호의 가장 작은 변화는 얼마입니까?
- 어플리케이션에 허용되는 측정 에러는 어느 정도인가?
1. 어떤 유형의 신호를 측정하거나 생성해야 합니까?
신호 유형이 다르면 측정이나 생성 방법도 달라야 합니다. 센서(또는 트랜스듀서)는 물리적 현상을 전압 또는 전류 같은 측정 가능한 전기 신호로 변환하는 디바이스입니다. 또한 측정 가능한 전기 신호를 센서로 보내어 물리 현상을 만들어 낼 수도 있습니다. 이 때문에 각기 다른 신호 유형과 그에 따른 속성을 이해하는 것이 중요합니다. 어플리케이션의 신호를 고려하면 어떤 DAQ 사용할 것인지 결정할 수 있습니다.
DAQ 디바이스의 기능
- 아날로그 신호를 측정하는 아날로그 입력
- 아날로그 신호를 생성하는 아날로그 출력
- 디지털 신호를 측정하고 생성하는 디지털 입출력
- 디지털 이벤트를 세거나 디지털 펄스/신호를 생성하는 카운터/타이머
디바이스 중에는 위 목록의 기능 중 한 가지만 전용으로 하는 디바이스도 있고 모든 기능을 지원하는 다기능 디바이스도 있습니다. 아날로그 입력, 아날로그 출력, 디지털 입출력, 또는 카운터 같은 단일 함수에 채널 개수가 고정된 DAQ 디바이스를 사용할 수도 있지만, 필요 시에 채널 개수를 늘릴 수 있도록 현재 필요한 채널 개수보다 더 많은 채널의 디바이스를 구매하는 것이 좋습니다. 현재 어플리케이션을 위한 기능만을 갖춘 디바이스를 구입하면 새로운 어플리케이션에 하드웨어를 사용하기 어려울 것입니다.
다기능 DAQ 디바이스에는 채널 개수가 고정되어 있지만, 아날로그 입출력, 디지털 입출력, 카운터를 조합하여 사용할 수 있습니다. 다기능 디바이스는 각 다른 I/O 유형을 지원하므로 단일 기능 DAQ 디바이스에 비해 더욱 다양한 어플리케이션을 해결할 수 있습니다.
다른 옵션으로는 요구에 맞게 직접 사용자 정의할 수 있는 모듈형 플랫폼이 있습니다. 모듈형 시스템은 타이밍 및 동기화를 제어하기 위한 섀시와 다양한 I/O 모듈로 구성됩니다. 모듈형 시스템을 사용할 때의 장점은 고유한 목적을 위해 제작된 여러 모듈을 선택할 수 있기 때문에 더욱 다양한 구성이 가능하다는 점입니다. 이 옵션을 사용하면 사용자는 다기능 디바이스보다 한 가지 기능을 더욱 정밀하게 수행하는 모듈을 사용할 수 있습니다. 모듈형 시스템의 또 다른 장점은 섀시의 슬롯 개수를 선택할 수 있다는 것입니다. 섀시에는 슬롯 개수가 고정되어 있지만, 미래에 확장할 수 있도록 현재 필요한 개수보다 더 많은 슬롯이 있는 섀시를 구입할 수 있습니다.
2. 신호 컨디셔닝이 필요합니까?
일반적인 범용 DAQ 디바이스는 +/-5V 또는 +/-10V를 측정하거나 생성할 수 있습니다. 일부 센서는 이런 DAQ 디바이스 유형으로 직접 측정하기에 너무 어렵거나 위험한 신호를 생성합니다. 대부분의 센서는 DAQ 디바이스가 신호를 효율적이고 정밀하게 측정할 수 있도록, 측정 이전에 증폭 또는 필터링과 같은 신호 컨디셔닝이 필요합니다.
예를 들어, 열전쌍은 mV 범위로 신호를 출력하므로 아날로그-디지털 컨버터 (ADC)의 한계값을 최적화하기 위해 증폭이 필요합니다. 또한 열전쌍 측정에는 고주파수 노이즈를 제거하는 저역 통과 필터링이 유용합니다. 신호 컨디셔닝은 DAQ 시스템의 성능과 측정 정확도를 동시에 개선하므로 DAQ 디바이스만을 사용하는 것보다 분명히 유리합니다.
표 1은 여러 센서 및 측정에 일반적인 신호 컨디셔닝을 표로 간략히 나타낸 것입니다.
증폭 | 감쇠 | 절연 | 필터링 | 구동 | 선형화 | CJC | 브리지 완성 |
열전쌍 | x | x | x | x | |||
써미스터 | x | x | x | x | |||
RTD | x | x | x | x | |||
변형률 게이지 | x | x | x | x | x | ||
로드, 압력, 토크 (mV/V, 4-20mA) | x | x | x | x | |||
x | x | x | x | ||||
가속도계 | x | x | x | x | |||
마이크 | x | x | x | x | |||
근접 프로브 | x | x | x | x | |||
LVDT/RVDT | x | x | x | x | |||
고전압 | x | x |
표 1. 각 센서 및 측정 유형을 위한 신호 컨디셔닝
현재 사용 중인 센서가 표 1에 있다면 신호 컨디셔닝을 고려하는 것이 좋습니다. 외부 신호 컨디셔닝을 추가하거나 신호 컨디셔닝이 내장된 DAQ 디바이스를 사용할 수 있습니다. 또한 많은 디바이스에는 편리한 센서 통합을 위해 특정 센서를 위한 연결이 내장되어 있습니다.
3. 신호의 샘플을 얼마나 빠르게 수집하거나 생성해야 합니까?
DAQ 디바이스의 ADC가 신호의 샘플을 얻는 속도인 샘플링 속도는 DAQ 디바이스의 가장 중요한 사양 중 하나입니다. 일반적인 샘플링 속도는 하드웨어 또는 소프트웨어 타이밍에 의한 것이며 최대 2MS/s입니다. 어플리케이션의 샘플링 속도는 측정하거나 생성하려는 신호의 최대 주파수 성분에 의해 결정됩니다.
나이퀴스트 정리에 따르면 관심 최고 주파수 성분 2배를 샘플링하면 신호를 정확하게 재구성할 수 있습니다. 그러나, 실제에서는 신호의 모양을 표현하기 위해 최고 주파수의 최소 10배를 샘플링해야 합니다. 관심 신호 주파수의 최소 10배를 샘플링하는 DAQ 디바이스를 선택하면 신호를 더욱 정확한 모습으로 측정하거나 생성할 수 있습니다.
예를 들어, 어플리케이션에서 주파수가 1kHz인 사인파를 측정한다고 생각해봅시다. 나이퀴스트 정리에 따라 최소 2kHz로 샘플링해야 하지만 더욱 정확하게 신호를 측정하거나 생성하려면 10kHz로 샘플링하는 것이 좋습니다. 그림 1은 2kHz와 10kHz로 측정된 1kHz 사인파를 비교한 것입니다.
그림 1. 1kHz 사인파가 10kHz와 2kHz로 측정된 모습 비교
측정하거나 생성하고자 하는 신호의 최고 주파수 성분을 알고 있다면, 어플리케이션에 적합한 샘플링 속도를 제공하는 DAQ 디바이스를 선택할 수 있습니다.
4. 감지해야 하는 신호의 가장 작은 변화는 얼마입니까?
신호에서 감지할 수 있는 가장 작은 변화는 DAQ 디바이스에 필요한 분해능을 결정합니다. 분해능은 ADC가 신호를 표시하기 위해 사용하는 이진 단계의 수를 나타냅니다. 설명을 돕기 위해 분해능이 다른 ADC를 통해 사인파가 통과될 때 사인파가 어떻게 표시되는지 생각해보십시오. 그림 2는 3비트 ADC와 16비트 ADC를 비교한 것입니다. 3비트 ADC는 8 단계, 즉 2 3 단계로 전압을 나타낼 수 있습니다. 16비트 ADC는 65,536 단계, 즉 2 16 단계로 전압을 나타낼 수 있습니다. 3비트 분해능으로 표현한 사인파는 계단 함수처럼 나타나지만 16비트 ADC는 부드럽게 사인파를 그립니다.
그림 2. 16비트 분해능과 3비트 분해능 사인파 비교 차트
일반적인 DAQ 디바이스의 전압 범위는 +/-5V 또는 +/-10V입니다. 표현되는 전압 레벨은 전체 분해능을 활용할 수 있도록 선택된 범위에서 균등하게 분배됩니다. 예를 들어, +/-10V 범위와 12비트의 분해능 (2 12 또는 4,096 단계)을 가진 DAQ 디바이스는 5mV의 변화를 감지할 수 있으며, 16비트의 분해능 (2 16 또는 65,536 단계)을 가진 디바이스는 300μV의 변화를 감지할 수 있습니다. 많은 어플리케이션 요구사항은 12, 16 또는 18비트 분해능 디바이스로 충족 가능 합니다. 그러나, 작고 큰 전압 범위의 센서를 측정할 때에는 24비트 디바이스에 있는 동적 데이터 범위가 유용할 것입니다. 어플리케이션에 요구되는 전압 범위와 분해능은 적합한 디바이스를 선택할 때 고려해야 할 주요 요소입니다.
5. 어플리케이션에 허용되는 측정 에러는 어느 정도인가?
정확도는 측정된 신호값을 계측기가 충실하게 표시하는 능력을 측정한 수치입니다. 정확도는 분해능과 관련된 용어가 아니지만 정확도는 계측기의 분해능 보다 높을 수 없습니다. 측정의 정확도를 명시하는 방법은 측정 디바이스의 유형에 따라 다릅니다. 이상적인 계측기는 100 퍼센트 확실성으로 값을 측정하지만, 현실적으로 계측기는 제조업체에서 명시한 불확실성과 함께 값을 나타냅니다. 불확실성은 시스템 노이즈, 게인 에러, 오프셋 에러, 비선형성 등 여러 요소에 의해 결정됩니다. 제조업체에서 제공하는 불확실성에 대한 일반적인 스펙으로 절대 정확도가 있습니다. 이 스펙은 특정 범위에서 DAQ 디바이스의 최악의 에러 값을 제공합니다. NI 다기능 디바이스의 절대 정확도의 한 계산 예는 다음과 같습니다.
절대 정확도 = ([읽은 값*게인 에러] + [전압 범위*오프셋 에러] + 노이즈 비확실성)
절대 정확도 = 2.2mV
계측기의 정확도는 계측기에 의해서만 결정되는 것이 아니라 측정되는 신호 유형에 의해서도 결정된다는 것을 명심해야 합니다. 측정되는 신호에 노이즈가 있다면 측정 정확도에 악영향을 끼칩니다. DAQ 디바이스의 정확도와 가격은 다양합니다. 일부 디바이스는 정확도 향상을 위해 자가 교정, 절연 등의 회로를 제공합니다. 기본 DAQ 디바이스는 100mV 이상의 절대 정확도를 제공하지만, 정확도 향상을 위한 기능을 갖춘 고성능 디바이스는 1mV 내외의 절대 정확도를 제공합니다. 어플리케이션의 정확도 요구사항을 이해하면, 적합한 절대 정확도를 제공하는 DAQ 디바이스를 선택할 수 있습니다.
0 개 댓글