dlcwt
설명
예제
ECG 신호를 불러옵니다. 데이터의 샘플링 주파수는 180Hz입니다. 신호를 "CBT" 형식의 dlarray로 저장합니다.
load wecg Fs = 180; sig = dlarray(reshape(wecg,1,1,[]),"CBT");
신호와 호환되는 CWT 필터 뱅크를 만듭니다. 주기적 경계 조건을 지정합니다.
fb = cwtfilterbank(SignalLength=length(sig),Boundary="periodic");wt 객체 함수를 사용하여 wecg의 CWT 계수를 구합니다. 또한 스케일링 계수를 구합니다. 계수를 결합합니다.
[cfsFB,~,~,scalcfs] = wt(fb,wecg);
allCFS = [cfsFB ; scalcfs];
whos allCFSName Size Bytes Class Attributes allCFS 82x2048 2686976 double complex
cwtfilters2array 함수를 사용하여 필터 뱅크를 딥러닝에 적합하게 축소된 가중치 텐서(reduced-weight tensor)로 변환합니다. 저역통과(스케일링) 필터를 텐서에 포함합니다.
[psifvec,filteridx] = cwtfilters2array(fb,IncludeLowpass=true);
신호의 딥러닝 CWT를 구합니다.
cfsD = dlcwt(sig,psifvec,filteridx); dims(cfsD)
ans = 'SCBT'
기본적으로 출력값은 "SCBT" 형식의 dlarray 객체입니다. 공간 차원은 주파수에 대응됩니다. 출력값을 숫자형 배열로 변환합니다. 출력값의 차원을 "STCB" 형식에 맞게 치환합니다. 채널과 배치가 각각 하나씩만 있으므로 결과는 2차원 행렬이 됩니다.
cfs = extractdata(cfsD);
cfs = permute(cfs,[1 4 2 3]);
whos cfsName Size Bytes Class Attributes cfs 82x2048 2686976 double complex
해당 신호에 대해 CWT와 딥러닝 CWT가 동일한지 확인합니다.
max(abs(cfs(:)-allCFS(:)))
ans = 1.0235e-09
Espiga3 EEG 데이터셋을 불러옵니다. 데이터는 200Hz로 샘플링된 EEG의 23개 채널로 구성되어 있습니다. 각 채널에는 995개의 샘플이 있습니다. 차원을 순서대로 지정하여 다중 신호를 dlarray로 저장합니다. dlarray는 배열 차원을 딥러닝 신경망에 필요한 "CBT" 형태로 치환합니다.
load Espiga3 Fs = 200; [N,nch] = size(Espiga3); x = dlarray(Espiga3,"TCB"); whos Espiga3 x
Name Size Bytes Class Attributes Espiga3 995x23 183080 double x 23x1x995 183110 dlarray
신호와 호환되는 CWT 필터 뱅크를 만듭니다. 주기적 경계 조건을 지정합니다. 그런 다음 cwtfilters2array 함수를 사용하여 필터 뱅크를 딥러닝에 적합하게 축소된 가중치 텐서(reduced-weight tensor)로 변환합니다.
fb = cwtfilterbank(SignalLength=N,Boundary="periodic");
[psifvec,filteridx] = cwtfilters2array(fb);다중 신호의 딥러닝 CWT를 구합니다.
cfsD = dlcwt(x,psifvec,filteridx); dims(cfsD)
ans = 'SCBT'
기본적으로 출력값은 "SCBT" 형식의 dlarray 객체입니다. 공간 차원은 주파수에 대응됩니다. 출력값을 숫자형 배열로 변환합니다. 출력값의 차원을 "STCB" 형식에 맞게 치환합니다. 배치가 하나만 있으므로 결과는 3차원 배열이 됩니다.
cfs = extractdata(cfsD);
cfs = permute(cfs,[1 4 2 3]);
whos cfsName Size Bytes Class Attributes cfs 71x995x23 25997360 double complex
원래 필터 뱅크에서 중심 주파수를 구합니다. 채널의 스케일로그램을 표시합니다.
frq = centerFrequencies(fb); channel = 4; cfsChannel = cfs(:,:,channel); tms = (0:N-1)/Fs; surface(tms,frq,abs(cfsChannel)) set(gca,"yscale","log") axis tight shading flat title("Scalogram") xlabel("Time (s)") ylabel("Frequency (Hz)")

입력 인수
입력 데이터로, 형식이 지정되지 않은 실수 값의 dlarray 객체, "CBT" 형식으로 지정된 dlarray 또는 숫자형 배열로 지정됩니다. x가 형식이 지정되지 않은 dlarray이거나 숫자형 배열인 경우, 'DataFormat'을 "CBT"의 순열 중 하나로 지정해야 합니다.
데이터형: single | double
CWT 필터 뱅크로, 1×1×Nr 텐서로 지정됩니다. 여기서 Nr은 축소된 가중치(reduced-weight) CWT 필터 뱅크에 포함된 가중치의 개수입니다. psifvec는 cwtfilters2array를 사용하여 구합니다.
array2cwtfilters를 사용하여 cwtfilters2array의 출력으로부터 2차원 CWT 필터 뱅크를 복원할 수 있습니다.
데이터형: double
북키핑 행렬로, 행렬로 지정됩니다. dlcwt 함수는 CWT를 계산하기 위해 filteridx를 사용하여 데이터 x와 필터 뱅크 psifvec의 요소를 참조합니다. filteridx는 cwtfilters2array를 사용하여 구합니다.
데이터형: uint32
x의 입력 데이터 형식으로, "CBT"의 순열 중 하나로 지정됩니다. 이 인수는 x가 형식이 지정된 dlarray인 경우에는 유효하지 않습니다.
이 인수의 각 문자는 다음 레이블 중 하나여야 합니다.
"C"— 채널"B"— 배치"T"— 시간
dlcwt 함수는 "CBT"의 모든 순열을 허용합니다. 인수의 각 요소는 x의 일치하는 차원에 레이블을 지정합니다.
예: w = dlcwt(x,psifvec,filteridx,DataFormat="BCT")는 형식이 지정되지 않은 dlarray 객체의 데이터 형식을 "BCT"로 지정합니다.
데이터형: char | string
출력 인수
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다. (R2026a 이후)
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다. (R2026a 이후)
dlcwt 함수는 GPU 배열을 완전히 지원합니다. GPU에서 함수를 실행하려면 입력 데이터를 gpuArray (Parallel Computing Toolbox)로 지정합니다. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2022b에 개발됨dlcwt 함수는 다음을 지원합니다.
C/C++ 코드 생성. C/C++ 코드를 생성하려면 MATLAB® Coder™가 있어야 합니다.
NVIDIA® GPU 코드 생성. GPU 코드를 생성하려면 GPU Coder™가 있어야 합니다.
참고 항목
함수
객체
도움말 항목
- List of Functions with dlarray Support (Deep Learning Toolbox)
- Code Generation for dlarray (MATLAB Coder)
- Code Generation for dlarray (GPU Coder)
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)