findpeaks
국소 최댓값 구하기
구문
설명
[___] = findpeaks(___,는 위에 열거된 구문에 나와 있는 입력 인수 중 하나와 함께 이름-값 인수를 사용하여 옵션을 지정합니다.Name=Value)
findpeaks(___)(출력 인수 없음)는 신호를 플로팅하고 피크 값을 겹칩니다.
예제
3개의 피크를 갖는 벡터를 정의합니다.
data = [25 8 15 5 6 10 10 3 1 20 7];
국소 최댓값을 구합니다. findpeaks 함수는 피크가 발생하는 순서대로 반환합니다. data의 양 끝점에는 왼쪽 또는 오른쪽 이웃이 없어 비교할 수 없기 때문에, 피크를 찾을 때 끝점을 포함하지 않습니다.
pks = findpeaks(data)
pks = 1×3
15 10 20
출력 인수 없이 findpeaks를 사용하여 피크를 표시합니다. 평탄한 피크의 경우, 이 함수는 가장 작은 인덱스를 갖는 점만 강조 표시합니다.
findpeaks(data)

가우스 곡선의 합으로 구성된 신호를 생성합니다. 각 곡선의 위치, 높이, 폭을 지정합니다.
x = linspace(0,1,1000); Pos = [1 2 3 5 7 8]'/10; Hgt = [3 4 4 2 2 3]'; Wdt = [2 6 3 3 4 6]'/100; y = sum(Hgt.*(exp(-((x-Pos)./Wdt).^2)),1);
findpeaks를 디폴트 설정과 함께 사용하여 신호의 피크와 해당 피크의 위치를 찾습니다.
[pks,locs] = findpeaks(y,x);
findpeaks를 사용하여 피크를 플로팅합니다. 각 피크에 레이블을 지정합니다.
findpeaks(y,x) text(locs+.02,pks,num2str((1:numel(pks))'))

가장 높은 피크부터 가장 짧은 피크로 피크를 정렬합니다.
[psor,lsor] = findpeaks(y,x,SortStr="descend");
findpeaks(y,x)
text(lsor+.02,psor,num2str((1:numel(psor))'))
한 주기 전체의 코사인 위에 놓인 가우스 곡선의 합으로 구성된 신호를 생성합니다. 각 곡선의 위치, 높이, 폭을 지정합니다.
x = linspace(0,1,1000); base = 4*cos(2*pi*x); Pos = [1 2 3 5 7 8]'/10; Hgt = [3 7 5 5 4 5]'; Wdt = [1 3 3 4 2 3]'/100; y = sum(Hgt.*(exp(-((x-Pos)./Wdt).^2)),1) + base;
findpeaks를 사용하여 돌출부가 최소 4인 피크를 찾아 플로팅합니다. 가장 높은 피크와 가장 낮은 피크만 최소 돌출부 조건을 충족합니다.
[~,locs4,~,proms4] = findpeaks(y,x,MinPeakProminence=4)
locs4 = 1×2
0.1982 0.4995
proms4 = 1×2
5.5773 4.4171
findpeaks(y,x,MinPeakProminence=4,Annotate="extents")
모든 피크의 돌출부 절반에서의 위치, 돌출부, 폭을 표시합니다. 두 번째 피크와 네 번째 피크가 4보다 크거나 같은 돌출부를 가진 피크입니다.
[~,locs,widths,proms] = findpeaks(y,x)
locs = 1×6
0.1001 0.1982 0.2983 0.4995 0.7017 0.8018
widths = 1×6
0.0154 0.0431 0.0377 0.0625 0.0274 0.0409
proms = 1×6
2.6816 5.5773 3.1448 4.4171 2.9191 3.6363
태양 흑점 평균 개수 데이터에서 피크를 추출하고 평균 흑점 주기를 추정합니다.
1700년부터 1987년까지 매년 관측된 태양 흑점의 평균 개수가 포함된 파일 sunspot.dat를 불러옵니다. 태양 흑점 수를 연도별로 플로팅하고 그 위에 최댓값을 표시합니다. 1855년에서 1920년 사이의 기간을 확대합니다.
load sunspot.dat year = sunspot(:,1); avSpots = sunspot(:,2); findpeaks(avSpots,year) xlabel("Year") xlim([1855 1920])

태양 흑점은 주기적 현상입니다. 태양 흑점의 수는 대략 11년마다 피크에 도달한다고 알려져 있습니다.
피크 사이의 평균 간격을 구하여 주기 기간을 추정합니다. 먼저 최댓값이 아닌 피크를 무시하도록 합니다. 피크 간 간격이 6년보다 큰 경우만 허용하도록 제한합니다.
findpeaks(avSpots,year,MinPeakDistance=6)
xlabel("Year")
xlim([1855 1920])
연도 데이터를 사용하여 datetime형 배열을 생성합니다. 매년 춘분에 가까운 3월 20일에 태양 흑점의 수를 세었다고 가정합니다. 태양 흑점 개수가 피크에 도달한 연도를 구합니다. years 함수를 사용하여 duration형으로 최소 피크 간격을 지정합니다.
ty = datetime(year,3,20); [pk,lk] = findpeaks(avSpots,ty,MinPeakDistance=years(6)); plot(ty,avSpots,lk,pk,"o") xlabel("Year")

평균 태양 흑점 주기를 계산합니다. 추정된 평균 태양 흑점 주기가 알려진 11년 주기와 거의 일치합니다.
dttmCycle = years(mean(diff(lk)))
dttmCycle = 10.9600
최소 또는 최대 피크 간 거리나 높이, 돌출부, 이웃과의 피크 차이 임계값 등과 같은 특정 특징 기준을 충족하는 피크를 찾을 수 있습니다. 피크 특징을 하나 또는 여러 개로 제한하려면 findpeaks를 사용하십시오.
오디오 신호에서 특징을 기준으로 피크 제한하기
7418Hz로 샘플링된 오디오 신호를 불러옵니다. 200개 샘플을 선택합니다.
load mtlb
select = mtlb(1001:1200);오디오 신호에서 모든 피크를 찾아 강조 표시합니다. 그런 다음, 서로 최소 5ms 이상 떨어져 있는 피크를 찾아 강조 표시합니다. 최소 분리 간격 제약 조건을 적용하기 위해, findpeaks는 신호에서 가장 높은 피크를 선택하고 이로부터 5ms 이내에 있는 모든 피크를 제거합니다. 그런 다음 이 함수는 남아 있는 가장 높은 피크에 대해 절차를 반복하고, 더 이상 고려할 피크가 없을 때까지 이 작업을 반복합니다.
figure tiledlayout("vertical") nexttile findpeaks(select,Fs) legend("No Constraints",Location="southwest") nexttile lgn = @(txt) legend(txt,FontName="FixedWidth",Location="southwest"); findpeaks(select,Fs,MinPeakDistance=0.005) lgn("MinPeakDistance")

다음 각 제약 조건을 개별적으로 충족하는 피크를 찾아서 플로팅합니다.
진폭이 최소 1V인 피크를 구합니다.
인접 샘플보다 최소 1V 더 높은 피크를 구합니다.
신호가 더 높은 값에 도달하기 전에 어느 쪽에서든 최소 1V 하강한 피크를 구합니다.
figure tiledlayout("vertical") nexttile findpeaks(select,Fs,MinPeakHeight=1) lgn("MinPeakHeight") nexttile findpeaks(select,Fs,Threshold=1) lgn("Threshold") nexttile findpeaks(select,Fs,MinPeakProminence=1) lgn("MinPeakProminence")

처프 신호에서 여러 피크 특징 제한하기
1000개 샘플로 구성된 처프 신호에서 폭이 2.5ms에서 4ms 사이인 모든 피크를 찾아 강조 표시합니다.
N = 1000; x = sin(2*pi*(1:N)/N + (10*(1:N)/N).^2); figure findpeaks(x,Fs,Annotate="extents", ... MinPeakWidth=2.5e-3,MaxPeakWidth=4e-3) title("Peaks with Multiple Constraints")

데이터가 지정된 포화 지점보다 큰 경우 센서는 잘린 측정값을 반환할 수 있습니다. 이러한 극값을 무의미한 값으로 무시할 수도 있고 분석에 포함할 수도 있습니다.
분산이 0.1²인 백색 가우스 잡음에 포함되어 있는, 5Hz와 3Hz 주파수의 삼각 함수의 곱으로 구성된 신호를 생성합니다. 신호를 100Hz의 속도로 1초 동안 샘플링합니다. 재현 가능한 결과를 얻기 위해 난수 생성기를 재설정합니다.
rng("default")
Fs = 100;
t = 0:1/Fs:1;
s = sin(2*pi*5*t).*sin(2*pi*3*t) + randn(size(t))/10;절댓값이 지정된 경계인 0.32보다 큰 모든 측정값을 잘라서 포화된 측정값을 합성합니다. 그런 다음 신호를 정규화하여 0.1에서 1 사이의 범위로 만듭니다. 정규화된 크기를 데시벨로 변환하고 결과를 플로팅합니다.
bnd = 0.32; s(s>bnd) = bnd; s(s<-bnd) = -bnd; sNorm = 0.1+0.9*(s-min(s))/(max(s)-min(s)); sig = mag2db(sNorm); plot(t,sig) xlabel("Time (s)") ylabel("Magnitude (dB)") ylim([-25 5])

신호의 피크와 밸리를 찾습니다. findpeaks는 평탄한 각 피크에서는 상승 에지만 식별합니다.
[pk,lcp] = findpeaks(sig,t); % Peaks [vl,lcv] = findpeaks(-sig,t); % Valleys hold on plot(lcp,pk,"x",lcv,-vl,"*")

Threshold 이름-값 인수를 사용하여 평탄한 피크와 평탄한 밸리를 제외시킵니다. 피크 또는 밸리와 해당 이웃 사이에는 최소 0.1dB의 크기 차이가 필요합니다.
[pkt,lctp] = findpeaks(sig,t,Threshold=0.1); [vlt,lctv] = findpeaks(-sig,t,Threshold=0.1); plot(lctp,pkt,"o",LineWidth=1.2) plot(lctv,-vlt,"d",LineWidth=1.2)

가우스 곡선의 합으로 구성된 신호를 생성합니다. 각 곡선의 위치, 높이, 폭을 지정합니다.
x = linspace(0,1,1000); Pos = [1 2 3 5 7 8]'/10; Hgt = [7 6 3 2 2 3]'; Wdt = [3 8 4 3 4 6]'/100; y = sum(Hgt.*(exp(-((x-Pos)./Wdt).^2)),1);
돌출부의 절반과 높이의 절반을 기준으로 사용하여 피크의 폭을 측정합니다.
tiledlayout("flow") nexttile findpeaks(y,x,Annotate="extents") title("Half-Prominence Peak Widths") nexttile findpeaks(y,x,Annotate="extents",WidthReference="halfheight") title("Half-Height Peak Widths")

x축에서 최소 0.5 단위 이상의 간격으로 분리된 가장 높은 피크를 선택합니다. 돌출부의 절반과 높이의 절반을 기준으로 사용하여 피크의 폭을 측정합니다.
figure tiledlayout("flow") nexttile findpeaks(y,x,MinPeakDistance=0.5,Annotate="extents") title("Half-Prominence Peak Widths") nexttile findpeaks(y,x,MinPeakDistance=0.5,Annotate="extents", ... WidthReference="halfheight") title("Half-Height Peak Widths")

첫 번째 피크와 마지막 피크만 최소 분리 조건을 충족하므로, 플롯에 표시된 폭은 이 두 피크에 해당합니다. 각 피크의 범위는 변경되지 않으므로, 지정된 조건과 피크 선택 여부에 관계없이 피크의 폭 값은 그대로 유지됩니다.
sinc 함수 커널을 사용하는 비선형 최소제곱법을 사용하여 신호의 주요 피크 두 개에 대한 미세 조정된 피크 위치 추정치를 구합니다.
신호 생성
선형 FM 파형의 레이다 펄스 압축은 sinc 형태의 스펙트럼을 생성하며, 여기서 피크의 주파수 위치는 레이다와 탐지된 물체 사이의 거리에 비례합니다. 먼저 findpeaks로 피크 위치와 진폭을 추정한 다음 refinepeaks로 추정값을 향상시킬 수 있습니다. 이 예제에서는 잡음이 없는 합성 펄스 압축 신호의 피크 진폭과 위치를 찾은 다음, refinepeaks를 사용하여 추정값을 개선합니다.
각각 4.76kHz와 35.8kHz에서 피크 1과 1.5를 갖는 두 개의 sinc 형태 파형으로 구성된 신호를 생성합니다. 주파수 간격을 2.5Hz로 설정합니다.
aTg = [1 1.5]; fTg = 1e3*[4.76 35.8]; freqkHzFull = (0:0.0025:50)'; waveFull = abs(sinc([1 0.5].*(freqkHzFull-fTg/1e3)))*aTg';
신호를 인자 200으로 다운샘플링하여 샘플 간 주파수 간격이 0.5kHz가 되도록 합니다. 이 예제에서는 다운샘플링된 신호 피크의 진폭과 위치 추정값을 미세 조정하고, 미세 조정된 추정값을 원래 신호의 값과 비교합니다.
freq = downsample(freqkHzFull,200); wave = downsample(waveFull,200); plot(freqkHzFull,waveFull,freq,wave,"*") legend(["Full signal" "Selected samples"],Location="northwest") xlabel("Frequency (kHz)") ylabel("Magnitude")

비선형 최소제곱을 사용한 피크 미세 조정
findpeaks를 사용하여 신호의 가장 높은 피크 두 개의 진폭, 위치, 폭(높이의 절반)에 대한 초기 추정치를 만듭니다.
[PV,PL,PW] = findpeaks(wave,NPeaks=2, ... SortStr="descend",WidthReference="halfheight"); table(PV,freq(PL), RowNames="Peak estimate "+(1:numel(PV)), ... VariableNames=["Amplitude" "Frequency (kHz)"])
ans=2×2 table
Amplitude Frequency (kHz)
_________ _______________
Peak estimate 1 1.4824 36
Peak estimate 2 0.9374 5
refinepeaks를 사용하여 비선형 최소제곱(NLS)법으로 피크 추정치를 향상시킵니다. 신호의 주파수 지점과 피크 폭을 지정합니다. 피크 값은 예상 값인 1.5와 1에 상당히 가깝고 주파수 위치는 각각 35.8kHz와 4.76kHz에 근접합니다.
LW = max(PW,2); [Ypk,Xpk] = refinepeaks(wave,PL,freq,Method="NLS",LobeWidth=LW); table(Ypk,Xpk, RowNames="Refined peak "+(1:numel(Ypk)), ... VariableNames=["Amplitude" "Frequency (kHz)"])
ans=2×2 table
Amplitude Frequency (kHz)
_________ _______________
Refined peak 1 1.5063 35.8
Refined peak 2 1.0163 4.7628
미세 조정된 피크의 진폭을 y축에, 업데이트된 피크 위치를 x축에 초기 피크 추정치와 비교하여 플로팅합니다. 처음 추정된 두 개의 피크와 그 주변의 두 샘플은 서로 0.5kHz 간격만큼 분리되어 있습니다. 채워진 원으로 표시된 미세 조정된 피크는 수정된 진폭뿐만 아니라, 처음 추정된 피크 위치와 비교하여 실제 피크 위치를 보여줍니다.
refinepeaks(wave,PL,freq,Method="NLS",LobeWidth=LW) yline(aTg) % Theoretical peak amplitudes errorBounds = aTg.*(1+0.03*[-1;1]); yline(errorBounds(:),":") % ±3% error bounds legend("Peak "+[1 2])

입력 인수
입력 데이터로, 벡터로 지정됩니다. y는 실수 값이어야 하며 적어도 3개의 요소를 가져야 합니다.
데이터형: double | single
위치로, 벡터나 datetime형 배열로 지정됩니다. x는 단조 증가(Monotonically Increasing)해야 하고 y와 길이가 같아야 합니다. x를 생략하는 경우 이 함수는 y의 인덱스를 위치로 사용합니다.
데이터형: double | single | datetime
샘플 레이트로, 양의 스칼라로 지정됩니다. 샘플 레이트는 단위 시간당 샘플 개수입니다. 시간 단위가 초이면 샘플 레이트의 단위는 헤르츠입니다.
데이터형: double | single
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
예: findpeaks(y,x,SortStr="descend",NPeaks=3)은 y 신호에서 가장 높은 피크 3개를 찾습니다.
반환할 피크의 최대 개수로, 양의 정수 스칼라로 지정됩니다.
이 인수를 지정하지 않으면
findpeaks함수는 입력 데이터y에서 식별된 모든 피크를 반환합니다.이 인수를
NPeaks=np로 지정하면findpeaks함수는 입력 데이터y에서 최대np개 피크를 반환합니다.SortStr도 지정할 경우findpeaks함수는 피크를 다음과 같이 반환합니다.SortStr="none"이면findpeaks함수는 입력 데이터에서 처음np개 피크를 반환합니다.SortStr="ascend"면findpeaks함수는 입력 데이터에서 가장 짧은 피크부터 오름차순으로np개 피크를 반환합니다.SortStr="descend"면findpeaks함수는 입력 데이터에서 가장 높은 피크부터 내림차순으로np개 피크를 반환합니다.
데이터형: double | single
피크 정렬로, 다음 값 중 하나로 지정됩니다.
"none"은 피크를 입력 데이터에서 나타나는 순서대로 반환합니다."ascend"는 피크를 가장 작은 값부터 가장 큰 값으로, 오름차순으로 반환합니다."descend"는 피크를 가장 큰 값부터 가장 작은 값으로, 내림차순으로 반환합니다.
최소 피크 높이로, 실수 값 스칼라로 지정됩니다. findpeaks 함수가 이 인수에 지정된 값보다 큰 피크만 반환하도록 하려면 MinPeakHeight를 사용하십시오. 최소 피크 높이를 지정하면 처리 시간을 줄일 수 있습니다.
데이터형: double | single
최소 피크 돌출부로, 음이 아닌 스칼라로 지정됩니다. findpeaks가 상대적 중요도가 최소 이 인수에 지정된 값인 피크만 반환하도록 하려면 MinPeakProminence를 사용하십시오. 자세한 내용은 돌출부 항목을 참조하십시오.
데이터형: double | single
피크와 그 이웃 사이의 최소 높이 차이로, 음이 아닌 스칼라로 지정됩니다. findpeaks가 바로 인접한 값들을 최소한 이 인수에 지정된 값만큼 초과하는 피크만 반환하도록 하려면 Threshold를 사용하십시오.
데이터형: double | single
최소 피크 분리 간격으로, 양의 스칼라로 지정됩니다. MinPeakDistance=d로 값을 지정하면 findpeaks 함수는 신호에서 가장 높은 피크를 선택한 다음, 그 피크로부터 d개 샘플 또는 시간 단위 내에 있는 모든 피크를 무시합니다. 그런 다음 이 함수는 남아 있는 가장 높은 피크에 대해 절차를 반복하고, 더 이상 고려할 피크가 없을 때까지 이 작업을 반복합니다.
findpeaks가 크기가 상대적으로 큰 피크의 근방에서 나타나는 작은 피크를 무시하도록 하려면 이 인수를 사용하십시오.
데이터형: double | single | duration
폭 측정값의 기준 높이로, "halfprom" 또는 "halfheight"로 지정됩니다.
findpeaks 함수는 하강하는 신호가 가로 기준선을 교차하는 점 사이의 거리로 피크의 너비를 추정합니다. 이 함수는 이 인수에 지정된 기준을 사용하여 선의 높이를 선택합니다.
"halfprom"은 피크 아래로 피크 돌출부의 절반에 해당하는 세로 거리에 기준선을 배치합니다. 자세한 내용은 돌출부 항목을 참조하십시오."halfheight"는 피크 높이의 절반에 기준선을 배치합니다. 이 함수는MinPeakHeight인수,MinPeakProminence인수,Threshold인수의 값을 사용하여 결정한 피크의 경계 밖에 있는 교차점이 있으면 선을 잘라냅니다. 피크 사이의 경계는 피크 사이에 있는 가장 낮은 골의 가로 위치로 정의됩니다. 이 값이 선택된 경우 함수는 높이가 0보다 작은 피크를 삭제합니다.
이 함수는 선형 보간으로 교차점의 위치를 계산합니다.
최소 피크 폭으로, 양의 스칼라로 지정됩니다. 폭이 최소 minPW개 샘플 또는 시간 단위인 피크만 선택하려면 MinPeakWidth=minPW를 지정하십시오.
데이터형: double | single | duration
최대 피크 폭으로, 양의 스칼라로 지정됩니다. 폭이 최대 maxPW개 샘플 또는 시간 단위인 피크만 선택하려면 MaxPeakWidth=maxPW를 지정하십시오.
데이터형: double | single | duration
플롯 스타일로, 다음 값 중 하나로 지정됩니다.
"peaks"는 신호를 플로팅하고 모든 피크의 위치와 값에 대한 주석을 추가합니다."extents"는 신호를 플로팅하고 모든 피크의 위치, 값, 폭, 돌출부에 대한 주석을 추가합니다.
출력 인수와 함께 findpeaks 함수를 호출하면 이 인수는 무시됩니다.
출력 인수
국소 최댓값으로, 신호 값으로 구성된 벡터로 반환됩니다. 국소 최댓값이 없을 경우 pks가 비어 있습니다.
피크 폭으로, 실수 값 숫자로 구성된 벡터로 반환됩니다. 각 피크의 폭은 높이가 WidthReference로 지정된 기준선과 신호과 교차하는 피크의 왼쪽과 오른쪽에 있는 점 사이의 거리로 계산됩니다. 이 점 자체는 선형 보간으로 구합니다.
피크 돌출부로, 실수 값 숫자로 구성된 벡터로 반환됩니다. 피크의 돌출부는 신호가 피크보다 높은 수준으로 다시 올라가거나 끝점에 도달하기 전에, 피크의 어느 한 쪽이든 하강해야 하는 최소 세로 거리입니다. 자세한 내용은 돌출부 항목을 참조하십시오.
세부 정보
피크의 돌출부는 피크가 고유한 높이와 다른 피크에 대한 상대적 위치로 인해 얼마나 두드러지는지를 측정합니다. 고립된 낮은 피크가, 그보다 높지만 키가 큰 범위에 속해 있어 눈에 띄지 않는 피크보다 더 두드러질 수 있습니다.
피크의 돌출부를 측정하려면 다음을 수행하십시오.
피크에 마커를 표시합니다.
가로선이 다음 중 하나에 해당될 때까지 가로선을 피크에서 왼쪽과 오른쪽으로 확장합니다.
신호를 가로지릅니다. 이는 더 높은 피크가 있기 때문입니다.
신호의 왼쪽 끝이나 오른쪽 끝에 도달합니다.
2단계에서 정의된 두 구간 각각에서 신호의 최솟값을 구합니다. 이 점은 신호 끝점 중 하나이거나 골입니다.
두 구간의 최솟값 중 더 높은 값이 기준 레벨로 지정됩니다. 이 레벨보다 위에 있는 피크의 높이는 해당 돌출부입니다.
findpeaks는 신호 끝점의 높이가 얼마든 이 끝점을 넘는 신호의 동작에 대해 어떠한 가정도 하지 않습니다. 결과적으로 2단계와 4단계는 끝점을 벗어난 신호의 동작을 무시하며, 이는 종종 기준 레벨의 값에 영향을 미칩니다. 예를 들어, 다음과 같은 신호의 피크가 있다고 가정하겠습니다.
| 피크 번호 | 왼쪽 구간이 피크와 다음 사이에 있음 | 오른쪽 구간이 피크와 다음 사이에 있음 | 왼쪽 구간에서 가장 낮은 점 | 오른쪽 구간에서 가장 낮은 점 | 기준 레벨(가장 높은 최솟값) |
|---|---|---|---|---|---|
| 1 | 왼쪽 끝 | 피크 2와의 교차 지점 | 왼쪽 끝점 | a | a |
| 2 | 왼쪽 끝 | 오른쪽 끝 | 왼쪽 끝점 | h | 왼쪽 끝점 |
| 3 | 피크 2와의 교차 지점 | 피크 4와의 교차 지점 | b | c | c |
| 4 | 피크 2와의 교차 지점 | 피크 6과의 교차 지점 | b | d | b |
| 5 | 피크 4와의 교차 지점 | 피크 6과의 교차 지점 | d | e | e |
| 6 | 피크 2와의 교차 지점 | 오른쪽 끝 | d | h | d |
| 7 | 피크 6과의 교차 지점 | 피크 8과의 교차 지점 | f | g | g |
| 8 | 피크 6과의 교차 지점 | 오른쪽 끝 | f | h | f |
| 9 | 피크 8과의 교차 지점 | 오른쪽 끝점과의 교차 지점 | h | i | i |
팁
findpeaks 함수로 신호 피크를 먼저 추정한 다음 refinepeaks로 진폭과 위치를 향상시킬 수 있습니다.
진폭이 y이고 위치가 x인 신호가 있다고 가정해 보겠습니다. 다음 코드 조각은 y와 x의 피크를 추정하고 미세 조정하는 방법을 보여줍니다.
[yPeaks,xPeaksIdx] = findpeaks(y); [yRPeaks,xRPeaks] = refinepeaks(y,xPeaksIdx,x)
확장 기능
사용법 관련 참고 및 제한 사항:
findpeaks함수는 코드 생성 시datetime형 입력값을 지원하지 않습니다.
사용법 관련 참고 및 제한 사항:
findpeaks함수는 코드 생성 시datetime형 입력값을 지원하지 않습니다.
이 함수는 GPU 배열을 완전히 지원합니다. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2007b에 개발됨findpeaks 함수는 GPU(그래픽 처리 장치)에 대한 코드 생성을 지원합니다. CUDA® 코드를 생성하려면 MATLAB® Coder™와 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)