Main Content

wavedec

멀티레벨 1차원 이산 웨이블릿 변환

설명

예제

[c,l] = wavedec(x,n,wname)은 웨이블릿 wname을 사용하여 레벨 n에서 1차원 신호 x의 웨이블릿 분해를 반환합니다. 출력 분해 구조체는 웨이블릿 분해 벡터 cc를 구문 분석하는 데 사용되는 북키핑(bookkeeping) 벡터 l로 구성됩니다.

참고

gpuArray 입력값에 지원되는 모드는 'symh'('sym') 및 'per'입니다. 입력값이 gpuArray인 경우 현재 확장 모드가 'per'이 아니면 wavedec에 사용되는 이산 웨이블릿 변환 확장 모드는 기본적으로 'symh'로 설정됩니다. GPU에서 멀티레벨 이산 웨이블릿 변환 예제를 참조하십시오.

[c,l] = wavedec(x,n,LoD,HiD)는 지정된 저역통과 및 고역통과 웨이블릿 분해 필터 LoDHiD를 각각 사용하여 웨이블릿 분해를 반환합니다.

예제

모두 축소

1차원 신호를 불러오고 플로팅합니다.

load sumsin 
plot(sumsin)
title('Signal')

Figure contains an axes object. The axes object with title Signal contains an object of type line.

차수 2의 Daubechies 웨이블릿을 사용하여 신호의 3-레벨 웨이블릿 분해를 수행합니다. 분해에서 성긴 스케일 근사 계수와 세부성분 계수를 추출합니다.

[c,l] = wavedec(sumsin,3,'db2');
approx = appcoef(c,l,'db2');
[cd1,cd2,cd3] = detcoef(c,l,[1 2 3]);

계수를 플로팅합니다.

subplot(4,1,1)
plot(approx)
title('Approximation Coefficients')
subplot(4,1,2)
plot(cd3)
title('Level 3 Detail Coefficients')
subplot(4,1,3)
plot(cd2)
title('Level 2 Detail Coefficients')
subplot(4,1,4)
plot(cd1)
title('Level 1 Detail Coefficients')

Figure contains 4 axes objects. Axes object 1 with title Approximation Coefficients contains an object of type line. Axes object 2 with title Level 3 Detail Coefficients contains an object of type line. Axes object 3 with title Level 2 Detail Coefficients contains an object of type line. Axes object 4 with title Level 1 Detail Coefficients contains an object of type line.

지원되는 GPU를 보려면 GPU 연산 요구 사항 (Parallel Computing Toolbox) 항목을 참조하십시오.

잡음이 있는 도플러 신호를 불러옵니다. gpuArray를 사용하여 GPU에 신호를 입력합니다. 현재 확장 모드를 저장합니다.

load noisdopp
noisdoppg = gpuArray(noisdopp);
origMode = dwtmode('status','nodisp');

dwtmode를 사용하여 확장 모드를 0 채우기로 변경합니다. db4 웨이블릿을 사용하여 GPU에서 신호의 3-레벨 DWT를 구합니다.

dwtmode('zpd','nodisp')
[c,l] = wavedec(noisdoppg,3,'db4');

현재 확장 모드 zpdgpuArray 입력값에서 지원되지 않습니다. 따라서 DWT는 대신 sym 확장 모드를 사용하여 수행됩니다. 이를 확인하기 위해 확장 모드를 sym으로 설정하고 noisdoppg에 DWT를 수행한 다음 이전 결과와 비교합니다.

dwtmode('sym','nodisp')
[csym,lsym] = wavedec(noisdoppg,3,'db4');
[max(abs(c-csym)) max(abs(l-lsym))]
ans =

     0     0

현재 확장 모드를 per로 설정하고 noisdopp의 3-레벨 DWT를 구합니다. 확장 모드 pergpuArray 입력값에서 지원됩니다. 결과가 sym 결과와 다른지 확인합니다.

dwtmode('per','nodisp')
[cper,lper] = wavedec(noisdoppg,3,'db4');
[length(csym) ; length(cper)]
ans = 2×1

        1044
        1024

[lsym ; lper]
ans = 2×5

         134         134         261         515        1024
         128         128         256         512        1024

확장 모드를 원래 설정으로 복원합니다.

dwtmode(origMode,'nodisp')

입력 인수

모두 축소

입력 신호로, 벡터로 지정됩니다.

데이터형: single | double
복소수 지원 여부:

분해 레벨로, 양의 정수로 지정됩니다. wavedec는 최대 레벨 제한을 적용하지 않습니다. wmaxlev를 사용하여 웨이블릿 계수에 경계 효과가 없는지 확인합니다. 활용 분야에서 경계 효과가 문제가 되지 않는 경우 nfix(log2(length(x)))보다 작거나 같게 설정하는 것이 좋습니다.

데이터형: single | double

분석에 사용되는 웨이블릿으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

참고

wavedec는 유형 1(직교) 또는 유형 2(쌍직교) 웨이블릿만 지원합니다. 직교 및 쌍직교 웨이블릿 목록을 보려면 wfilters 항목을 참조하십시오.

웨이블릿 분해 필터로, 짝수 길이 실수 값 벡터의 쌍으로 지정됩니다. LoD는 저역통과 분해 필터이고 HiD는 고역통과 분해 필터입니다. LoDHiD의 길이는 동일해야 합니다. 자세한 내용은 wfilters 항목을 참조하십시오.

데이터형: single | double

출력 인수

모두 축소

웨이블릿 분해 벡터로, 벡터로 반환됩니다. 북키핑(bookkeeping) 벡터 l은 웨이블릿 분해 벡터의 계수를 레벨별로 구문 분석하는 데 사용됩니다.

데이터형: single | double

북키핑(bookkeeping) 벡터로, 양의 정수로 구성된 벡터로 반환됩니다. 벡터는 레벨별 계수의 개수와 원래 신호의 길이를 포함합니다.

북키핑 벡터는 웨이블릿 분해 벡터 c의 계수를 레벨별로 구문 분석하는 데 사용됩니다. 분해 벡터와 북키핑 벡터는 다음 3-레벨 도식에서와 같이 구성됩니다.

데이터형: single | double

알고리즘

길이가 N인 신호 s가 주어지면 DWT는 최대 log2 N 단계로 구성됩니다. s부터 시작하여 첫 번째 단계에서는 근사 계수 cA1과 세부성분 계수 cD1의 두 개의 계수 집합을 생성합니다. s를 저역통과 필터 LoD와 고역통과 필터 HiD로 컨벌루션한 후 다이애딕(dyadic) 데시메이션(다운샘플링)을 수행하면 근사 계수와 세부성분 계수가 각각 생성됩니다.

여기서

  • — 필터 X로 컨벌루션

  • 2 — 다운샘플링(짝수 인덱스 요소 유지)

각 필터의 길이는 2n입니다. N = length(s)이면 신호 F와 G의 길이는 N + 2n −1이고, 계수 cA1 및 cD1의 길이는 다음과 같습니다.

floor(N12)+n

다음 단계에서는 s를 cA1로 바꾸고 cA2 및 cD2를 생성하는 식으로 동일한 방식을 사용하여 근사 계수 cA1을 두 부분으로 나눕니다.

레벨 j에서 분석된 신호 s의 웨이블릿 분해는 [cAj, cDj, ..., cD1] 구조를 갖습니다.

j = 3인 경우 이 구조는 다음 트리의 터미널 노드를 포함합니다.

참고 문헌

[1] Daubechies, I. Ten Lectures on Wavelets, CBMS-NSF Regional Conference Series in Applied Mathematics. Philadelphia, PA: SIAM Ed, 1992.

[2] Mallat, S. G. “A Theory for Multiresolution Signal Decomposition: The Wavelet Representation,” IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 11, Issue 7, July 1989, pp. 674–693.

[3] Meyer, Y. Wavelets and Operators. Translated by D. H. Salinger. Cambridge, UK: Cambridge University Press, 1995.

확장 기능

버전 내역

R2006a 이전에 개발됨