이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
신호 레이블 지정기
관심 있는 신호 특성, 신호 영역, 신호 지점에 레이블 지정 및 특징 추출
설명
신호 레이블 지정기 앱은 분석을 위해 또는 머신러닝 및 딥러닝 응용 분야에서 사용하기 위해 신호에 레이블을 지정할 수 있는 대화형 방식 툴입니다. 신호 레이블 지정기를 사용하여 다음을 수행할 수 있습니다.
관심 있는 신호 특성, 신호 영역 및 신호 지점에 레이블 지정하기
logical형, categorical형, 숫자형 또는 문자열 값 레이블 사용하기
신호 피크 또는 신호 유계 영역에 자동으로 레이블 지정하기
사용자 지정 레이블 지정 함수 적용하기
오디오 신호 가져오기, 레이블 지정하기, 재생하기
레이블 지정에 도움이 되도록 주파수 보기 및 시간-주파수 보기 사용하기
신호 특징에서 특성 및 관심 영역(ROI) 레이블 생성하기
레이블 또는 하위 레이블 추가, 편집, 삭제하기
신호 및 레이블 중 일부를 선택하여 표시하기
신호 레이블 지정기는 데이터를 labeledSignalSet
객체로 저장합니다. labeledSignalSet
객체를 사용하여 신경망과 분류기를 훈련하거나 데이터를 분석하고 통계를 보고할 수 있습니다.
자세한 내용은 Use Signal Labeler App 항목을 참조하십시오.
자세히
오디오 신호에 레이블을 지정하려면 Audio Toolbox™ 라이선스가 필요합니다.
신호 레이블 지정기 앱 열기
MATLAB® 툴스트립: 앱 탭의 신호 처리 및 통신에서 앱 아이콘을 클릭합니다.
MATLAB 명령 프롬프트:
signalLabeler
를 입력합니다.
예제
ECG 신호에 레이블을 지정하고 진행 상황 추적하기
이 예제에서는 대시보드를 통해 레이블 지정 진행 상황을 추적하고 레이블의 품질을 평가하는 방법을 보여줍니다. 이 모드에서 레이블이 지정된 멤버의 개수를 빠르게 확인하고 데이터 세트의 레이블 값 및 지속 시간의 분포를 검사할 수 있습니다. 이 단계는 머신러닝을 위해 완전하고 정확한 데이터 세트를 얻는 과정을 용이하게 합니다.
데이터 다운로드 및 준비
QTdownload
함수를 사용하여 공개적으로 사용 가능한 QT 데이터베이스[1] [2]에서 심전도(ECG) 신호를 새 임시 디렉터리 folder
로 다운로드합니다. 이 함수의 코드는 예제의 끝부분에 있습니다.
folder = QTdownload;
각 파일은 ECG 신호 ecgSignal
, 영역 레이블로 구성된 테이블 signalRegionLabels
, 샘플 레이트 변수 Fs
를 포함합니다. 모든 신호의 샘플 레이트는 250Hz입니다. 영역 레이블은 다음 세 심박 모폴로지에 대응합니다.
P파
QRS 복합파
T파
folder
를 가리키는 신호 데이터저장소를 만듭니다. 신호 변수 이름 ecgSignal
과 샘플 레이트 변수 Fs
를 지정합니다.
sds = signalDatastore(folder,SignalVariableNames="ecgSignal", ... SampleRateVariableName="Fs");
처음 20개 파일을 포함하는 데이터저장소의 서브셋을 만듭니다. 이 서브셋을 labeledSignalSet
객체의 소스로 사용합니다.
subsds = subset(sds,1:20); lss = labeledSignalSet(subsds);
레이블 관심 영역
신호 레이블 지정기 앱을 열고 작업 공간에서 레이블이 지정된 신호 세트를 가져옵니다. 데이터 세트의 첫 번째 신호를 플로팅합니다. 시각적 효과를 높이기 위해 표시 탭에서 패너를 선택하고 신호의 더 작은 영역까지 확대합니다.
레이블 지정기 탭에서 P, QRS 및 T 범주를 사용하여 categorical형 관심 영역(ROI) 레이블을 정의합니다. 레이블의 이름을 BeatMorphologies
로 지정합니다.
세 개의 다른 관심 영역을 찾아 레이블을 지정하는 사용자 지정 레이블 지정 함수 labelECGregions
를 만듭니다. 이 사용자 지정 함수의 코드는 예제의 뒷부분에 있습니다. 이 함수를 MATLAB 경로의 현재 폴더에 저장하거나 값 자동화 갤러리에서 사용자 지정 함수 추가(Add Custom Function
)를 선택하여 앱에 추가할 수 있습니다. 자세한 내용은 Custom Labeling Functions 항목을 참조하십시오.
레이블 정의 브라우저에서 BeatMorphologies
를 선택하고 값 자동화 갤러리에서 labelECGregions
함수를 선택합니다. Auto-Label
을 선택한 다음 Auto-Label and Inspect Plotted
를 선택합니다. [실행]을 클릭합니다. 표시 탭에서 레이블이 지정된 신호 영역을 확대하고 패너를 사용하여 시간을 탐색합니다. 레이블 지정이 만족스러우면 레이블 저장을 클릭하여 레이블을 적용하고 자동 레이블 지정 탭을 닫습니다. 레이블이 지정된 신호 세트 브라우저에서 레이블과 레이블의 위치 값을 확인할 수 있습니다.
레이블 지정 진행 상황 및 통계량 시각화하기
레이블 지정기 탭의 툴스트립에서 대시보드를 선택합니다. 진행률 표시줄은 멤버의 5%가 적어도 하나의 ROI 레이블로 레이블이 지정되어 있음을 보여줍니다. 이는 데이터 세트에 있는 멤버의 1/20에 해당합니다. 레이블 분포 원형 차트에는 선택한 레이블 정의에 대한 각 범주의 인스턴스 개수가 표시됩니다.
대시보드를 닫고 레이블 지정을 계속하십시오. Auto-Label
을 선택한 다음 Auto-Label All Signals
를 선택하여 목록에 있는 다음 4개의 신호에 레이블을 지정합니다. 레이블을 지정하려는 신호 이름 옆의 체크박스를 선택한 다음 확인을 클릭합니다.
대시보드를 다시 선택합니다. 진행률 표시줄은 이제 멤버의 25%에 레이블이 지정되었음을 보여줍니다. 각 범주(P, QRS 또는 T)의 분포가 예상대로 나타나는지 확인합니다. 레이블 분포(Label Distribution
) 원형 차트는 각 범주가 모든 레이블 인스턴스의 약 1/3을 차지함을 보여줍니다. 플롯 갤러리에서 시간 분포(Time Distribution
) 히스토그램 차트를 선택하면 이상값을 포함한 P파, T파, QRS 복합파의 평균 길이(기간)를 볼 수 있습니다. T파는 P파와 QRS 복합파보다 길이가 더 깁니다.
멤버 개수(Member Count
) 차트를 표시하여 멤버 간 레이블 분포와 인스턴스 개수를 더 효과적으로 시각화합니다. 데이터 세트에 있는 대부분의 멤버는 0~500개의 P, QRS 및 T 영역 인스턴스를 갖습니다.
진행률 표시줄 플롯을 클릭하고 툴스트립에서 임계값(Threshold
)을 조정하여 레이블이 5000
개 이상 있는 멤버의 개수만 셉니다. 이제 레이블이 지정된 5개의 멤버 중 3개만 개수에 포함됩니다. 레이블 지정 요구 사항에 따라 레이블이 지정된 멤버와 레이블이 지정되지 않은 멤버를 더 잘 구분할 수 있도록 개수 임계값을 조정합니다.
labelECGregions
함수
labelECGregions
함수는 사전 훈련된 딥러닝 신경망을 사용하여 ECG 신호에서 P, QRS 및 T 심박 모폴로지를 식별합니다.
function [labelVals,labelLocs] = labelECGregions(x,t,parentLabelVal,parentLabelLoc,varargin) labelVals = cell(2,1); labelLocs = cell(2,1); if nargin < 5 Fs = 250; else Fs = varargin{1}; end % Download the pretrained network netfil = matlab.internal.examples.downloadSupportFile("SPT", ... "data/QTDatabaseECGSegmentationNetworks.zip"); %#ok<*UNRCH> unzip(netfil,fullfile(tempdir,"ECGnet")) load(fullfile(tempdir,"ECGnet","trainedNetworks.mat")) for kj = 1:size(x,2) sig = x(:,kj)'; predTest = classify(rawNet,sig,MiniBatchSize=50); msk = signalMask(predTest); msk.SpecifySelectedCategories = true; msk.SelectedCategories = find(msk.Categories ~= "n/a"); labels = roimask(msk); labelVals{kj} = labels.Value; labelLocs{kj} = labels.ROILimits/Fs; end labelVals = vertcat(labelVals{:}); labelLocs = cell2mat(labelLocs); end
QTdownload
함수
https://www.mathworks.com/supportfiles/SPT/data/QTDatabaseECGData.zip에서 데이터 파일을 다운로드하거나 unzip
함수를 사용하여 임시 디렉터리에 210개의 MAT 파일이 들어 있는 폴더를 만들 수 있습니다.
function folder = QTdownload localfile = matlab.internal.examples.downloadSupportFile("SPT", ... "data/QTDatabaseECGData1.zip"); unzip(localfile,tempdir) folder = fullfile(tempdir,"QTDataset"); end
참고 문헌
[1] Goldberger, Ary L., Luis A. N. Amaral, Leon Glass, Jeffery M. Hausdorff, Plamen Ch. Ivanov, Roger G. Mark, Joseph E. Mietus, George B. Moody, Chung-Kang Peng, H. Eugene Stanley. "PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals." Circulation. Vol. 101, No. 23, 2000, pp. e215–e220. [Circulation Electronic Pages, http://circ.ahajournals.org/content/101/23/e215.full].
[2] Laguna, Pablo, Roger G. Mark, Ary L. Goldberger, and George B. Moody. "A Database for Evaluation of Algorithms for Measurement of QT and Other Waveform Intervals in the ECG." Computers in Cardiology. Vol.24, 1997, pp. 673–676.
관련 예제
프로그래밍 방식으로 사용
signalLabeler
signalLabeler
는 신호 레이블 지정기 앱을 엽니다.
버전 내역
R2019a에 개발됨R2024a: 더 많은 유형의 스펙트럼 및 스펙트로그램 계산
신호 레이블 지정기에서 스펙트럼과 스펙트로그램 계산을 더 유연하게 수행할 수 있습니다. 윈도우 길이와 형태, 이산 푸리에 변환 점의 개수, 분해능 대역폭을 제어할 수 있습니다.
R2024a: 멤버별 탐색이 메인 앱으로 이동됨
멤버별 탐색을 메인 앱에서 수행할 수 있습니다. 별도의 전용 모드로 전환할 필요가 없습니다.
그 외에도 다음과 같은 동작 변화가 있습니다.
시간 영역 보기 범례에서 이름을 클릭하여 디스플레이에서 신호를 표시하거나 숨길 수 있습니다. 범례를 클릭한 다음 끌어서 옮길 수 있습니다.
레이블 뷰어의 크기를 조정할 수 있고, 레이블을 지정하는 신호의 시간 영역 뷰, 주파수 영역 뷰, 시간-주파수 뷰의 크기를 조정할 수 있습니다.
마커 표시 및 Y축 정규화 옵션은 지원되지 않습니다.
확대/축소하거나 그리기 모드로 전환하려면 좌표축 도구 모음을 사용하십시오. 상황별 메뉴 및 바로 가기 키를 지원하는 유일한 확대/축소 동작은 레이블 확대/축소입니다.
레이블 뷰어에서 레이블을 선택하려면 선택 모드에 있어야 합니다.
그리기 모드에서 관심 영역이나 점에 레이블을 지정하는 경우, 위치나 크기를 조정하거나 위치 값을 입력하려면 마우스를 사용하십시오. 바로 가기 키를 사용한 위치 값 미세 조정은 지원되지 않습니다.
R2023b: 소리를 분류하고 신호 유계 영역에 레이블을 지정함
사전 훈련된 YAMNet 신경망을 사용하여 오디오 신호의 소리를 분류하고 레이블을 지정할 수 있습니다. 이 기능을 사용하려면 Audio Toolbox와 Deep Learning Toolbox™가 있어야 합니다.
주어진 임계값보다 크거나 작은 값을 갖는 신호 영역 또는 주어진 범위 집합의 내부 또는 외부에 있는 신호 영역을 찾아 레이블을 지정할 수 있습니다.
참고 항목
앱
함수
도움말 항목
- Use Signal Labeler App
- Import Data into Signal Labeler
- Import and Play Audio File Data in Signal Labeler
- Create or Import Signal Label Definitions
- Label Signals Interactively or Automatically
- Custom Labeling Functions
- Customize Labeling View
- Spectrogram Computation in Signal Labeler
- Feature Extraction Using Signal Labeler
- Dashboard
- Export Labeled Signal Sets and Signal Label Definitions
- Signal Labeler Usage Tips
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)