Main Content

wthresh

소프트 또는 하드 임계값 적용

설명

예제

Y = wthresh(X,sorh,T)는 벡터 또는 행렬 X에 대한 소프트 또는 하드 임계값 적용(sorh로 지정)의 결과를 반환합니다. T는 임계값입니다.

예제

모두 축소

신호를 생성하고 임계값을 설정합니다.

y = linspace(-1,1,100);
thr = 0.4;

하드 및 소프트 임계값 적용을 수행합니다.

yhard = wthresh(y,"h",thr);
ysoft = wthresh(y,"s",thr);

결과를 플로팅하고 원래 신호와 비교합니다.

tiledlayout(1,3)
nexttile
plot(y,y)
ylim([-1 1])
title("Original Signal")
nexttile
plot(y,yhard)
ylim([-1 1])
title("Hard Threshold")
nexttile
plot(y,ysoft)
ylim([-1 1])
title("Soft Threshold")

Figure contains 3 axes objects. Axes object 1 with title Original Signal contains an object of type line. Axes object 2 with title Hard Threshold contains an object of type line. Axes object 3 with title Soft Threshold contains an object of type line.

잡음이 있는 도플러 신호를 불러옵니다. 신호의 데시메이션되지 않은 이산 웨이블릿 변환을 레벨 4까지 구합니다.

load noisdopp
wt = modwt(noisdopp,4);

가장 세밀한 스케일의 웨이블릿 계수를 기반으로 Donoho-Johnstone 통합 임계값을 결정합니다.

thr = median(abs(wt(1,:)-median(wt(1,:))))/0.6745;

웨이블릿 변환에 소프트 임계값을 적용하고 결과를 역변환하여 잡음 제거된 신호를 얻습니다.

wtthr = wthresh(wt,"s",thr);
xden = imodwt(wtthr);

원래 신호 및 잡음 제거된 신호를 플로팅합니다.

plot([noisdopp(:) xden(:)])
axis tight
legend("Original","Thresholded",Location="southeast")

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original, Thresholded.

입력 인수

모두 축소

임계값에 대한 입력 인수로, 벡터 또는 행렬로 지정됩니다.

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

수행할 임계값 적용 유형은 다음과 같습니다.

  • "s" — 소프트 임계값 적용

  • "h" — 하드 임계값 적용

임계값으로, 양의 실수로 지정됩니다.

데이터형: single | double

출력 인수

모두 축소

임계값이 적용된 데이터로, 벡터 또는 행렬로 반환됩니다. YX와 동일한 차원을 갖습니다.

알고리즘

sorh"s"이면 YX에 소프트 임계값을 적용한 결과입니다. 즉, Y=sign(X)·(|X|T)+입니다. 여기서

(x)+={xifx00otherwise

소프트 임계값 적용이 웨이블릿 축소입니다.

sorh"h"이면 YX에 하드 임계값을 적용한 결과입니다. 즉, Y=X·1(|X|>T)입니다. 여기서

1(|X|>T)={1if|X|>T0otherwise

하드 임계값 적용은 소프트 임계값 적용보다 더 거칩니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장