Main Content

spectrum

스펙트럼 추정

구문

Hs = spectrum.estmethod(input1,...)

설명

참고

spectrum.estmethod를 사용하는 것은 권장되지 않습니다. 대신 상응하는 함수를 사용하십시오. 함수 형식은 스펙트럼 추정 방법 항목을 참조하십시오.

Hs = spectrum.estmethod(input1,...)은 유형 estmethod의 스펙트럼 추정 객체 Hs를 반환합니다. 이 객체에는 지정된 추정 방법에 필요한 모든 파라미터 정보가 들어 있습니다. 각 추정 방법에는 각 함수 도움말 페이지에 설명되어 있는 하나 이상의 입력값이 사용됩니다.

추정 방법

spectrum에 대한 추정 방법은 사용할 스펙트럼 추정 방법의 유형을 지정합니다. spectrum에 사용 가능한 추정 방법은 아래에 나열되어 있습니다.

참고

spectrum과 함께 스펙트럼의 estmethod를 사용해야 합니다.

스펙트럼 추정 방법

spectrum.estmethod

설명

대응하는 함수

spectrum.burg

Burg

pburg

spectrum.cov

공분산

pcov

spectrum.eigenvector

고유벡터

peig

spectrum.mcov

수정 공분산

pmcov

spectrum.mtm

Thomson 멀티테이퍼

pmtm

spectrum.music

다중 신호 분류

pmusic

spectrum.periodogram

주기도

periodogram

spectrum.welch

Welch

pwelch

spectrum.yulear

Yule-Walker

pyulear

각 추정 방법에 대한 자세한 내용을 보려면 MATLAB® 프롬프트에서 구문 help spectrum.estmethod를 사용하거나 해당하는 함수 도움말 페이지를 참조하십시오.

참고

중첩과 윈도우 길이 입력값을 사용하는 추정 방법에서는 중첩 샘플 개수를 백분율 단위의 중첩으로 지정하고 윈도우 길이 대신에 세그먼트 길이를 지정할 수 있습니다.

윈도우를 사용하는 추정 방법에서 윈도우가 추가 파라미터를 사용하는 경우 해당 파라미터의 스펙트럼 객체에 속성이 동적으로 추가됩니다. 이 속성은 set을 사용하여 변경할 수 있습니다(객체 속성 변경하기 항목 참조).

메서드

메서드는 스펙트럼 추정 파라미터를 다시 지정할 필요 없이 spectrum 객체에 직접 기능을 수행하는 방법을 제공합니다. spectrum 객체에 할당된 변수에 직접 이 메서드를 적용할 수 있습니다. 이러한 메서드에 대한 자세한 내용을 보려면 MATLAB 프롬프트에서 구문 help spectrum/method를 사용하거나 아래 표를 참조하십시오.

스펙트럼 메서드

메서드설명

msspectrum

msspectrum 메서드는 periodogram 스펙트럼 추정 객체와 welch 스펙트럼 추정 객체에만 사용할 수 있습니다.

평균제곱 스펙트럼은 이산 스펙트럼(주기적 이산시간 신호 기반)에 사용하기 위한 것입니다. 주파수 전반에 걸친 평균제곱 값의 분포가 msspectrum입니다. 파워 스펙트럼 밀도(아래 psd 참조)와 달리, 평균제곱 스펙트럼의 피크는 주어진 주파수에서의 신호 전력을 나타냅니다. PSD에서 전력은 주파수 대역의 영역으로 표시됩니다. 평균제곱 스펙트럼의 단위는 전력의 단위입니다.

Hmss = msspectrum(Hs,X)는 스펙트럼 객체 Hs를 사용하여, 이산시간 신호 X의 평균제곱(전력) 추정값이 포함된 평균제곱 스펙트럼 객체를 반환합니다. 디폴트 값은 실수 값을 갖는 X의 경우 'onesided' 나이퀴스트 주파수 범위이고, 복소수 값을 갖는 X의 경우 'twosided' 나이퀴스트 주파수 범위입니다.

Hmss에는 평균제곱 스펙트럼이 추정된 정규화 주파수 W의 벡터가 포함됩니다. 실수 신호인 경우 W의 범위는 FFT 점 개수(NFFT)가 짝수이면 [0,π]이고 NFFT가 홀수이면 [0,π)입니다. 복소 신호인 경우 W의 범위는 [0,2π)입니다. 특정 주파수로 구성된 벡터에 대해 스펙트럼을 추정하려면 아래의 FreqPoints 속성을 참조하십시오.

msspectrum 메서드에는 이 msspectrum 메서드를 사용하거나 msspectrumopts 메서드를 통해 설정할 수 있는 속성이 포함되어 있습니다. 이러한 속성은 아래에 나열되어 있으며 다음 msspectrumopts 섹션에 설명되어 있습니다.

SpectrumType'onesided' 또는 'twosided'
NormalizedFrequency – 주파수를 0과 1 사이로 정규화
Fs — Hz 단위의 샘플링 주파수
NFFT — FFT 점 개수
CenterDC — 데이터와 주파수를 DC 성분의 가운데로 이동
FreqPoints'All' 또는 'User Defined'
FrequencyVector — 스펙트럼을 계산할 주파수
ConfLevel — 신뢰구간을 계산하기 위한 신뢰수준. 값은 0과 1 사이어야 합니다.

예를 들어, Hmss = msspectrum(Hs,X,'FreqPoints','User Defined', FreqVector,fvect)는 평균제곱 스펙트럼 객체를 반환합니다. 여기서 스펙트럼은 주파수 벡터 fvect에 정의된 주파수 점에서만 계산됩니다.

msspectrum(...)(출력 인수 없음)은 평균제곱 스펙트럼을 dB 단위를 사용하여 플로팅합니다.

msspectrumopts

Hopts = msspectrumopts(Hs)는 스펙트럼 객체 Hs에 대한 옵션이 포함된 객체를 반환합니다.

Hopts = msspectrumopts(Hs,X)는 데이터별 옵션과 디폴트 값이 포함된 객체를 반환합니다.

Hopts라는 options 객체는 msspectrum 메서드에 인수로 전달할 수 있습니다. Hopts 객체 뒤에 지정하는 개별 옵션은 Hopts의 값을 무시합니다. 예를 들어, Hmss = msspectrum(Hs,X,Hopts, 'SpectrumType', 'twosided')Hopts의 디폴트 SpectrumType 값을 무시합니다.

다음 속성은 msspectrumopts 메서드와 msspectrum 메서드에 모두 적용됩니다.

Hmss = msspectrum (..., 'SpectrumType', 'twosided')는 양측 평균제곱 스펙트럼을 반환합니다. 스펙트럼 길이(NFFT)는 [0,2π)에 대해 계산되며, Fs가 지정된 경우 [0,Fs)에 대해 계산됩니다. 'onesided'를 입력하면 단측 평균제곱 스펙트럼을 반환하는데, 이 스펙트럼에는 나이퀴스트 구간의 절반에 총 신호 전력이 포함되어 있습니다. 디폴트 값은 'onesided'입니다.

Hmss = msspectrum(Hs,X,'NormalizedFrequency',true)는 주파수 값이 0에서 1 사이로 정규화된 평균제곱 스펙트럼 객체를 반환합니다. 디폴트 값은 true입니다.

Hmss = msspectrum(Hs,X,'Fs',Fs)는 주파수 함수로 계산된 평균제곱 스펙트럼 객체를 반환합니다. 여기서 Fs는 샘플링 주파수(단위: Hz)입니다. 참고로, NormalizedFrequencyfalse로 설정된 경우에만 Fs를 설정할 수 있습니다.

Hmss = msspectrum(...,'NFFT',nfft)는 사용할 FFT 점 개수를 지정합니다. 유효한 값은 양의 정수, 'Nextpow2' 또는 'Auto'입니다. 'Nextpow2'는 입력 길이보다 큰 첫 번째 2의 제곱값과 256 중 더 큰 값을 사용합니다. 'Auto'는 입력 길이와 256 중 더 큰 값을 사용합니다. 디폴트 값은 'Nextpow2'입니다. 참고로, spectrum.welch, 'Nextpow2', 'Auto'는 입력 길이 대신에 SegmentLength와 비교됩니다.

Hmss = msspectrum (..., 'Centerdc', true)는 DC 성분이 스펙트럼 가운데에 오도록 데이터와 주파수 값을 이동시킵니다. 디폴트 값은 false입니다.

특정 주파수로 구성된 벡터에 대해 스펙트럼을 추정하려면, 우선 주파수 점 개수를 'User Defined'로 설정하십시오. 그러면 msspectrumNFFT 속성이 FrequencyVector 속성으로 대체됩니다.
Hopts.FreqPoints = 'User Defined'
(참고로, FreqPoints의 디폴트 값은 'All'이며, 이 경우 위에서 설명한 것처럼 msspectrumNFFT 속성을 사용하게 됩니다.)

그런 다음, 사용할 주파수 벡터 F를 지정합니다.
Hopts.FrequencyVector = F
(참고로, FrequencyVector의 디폴트 값은 'Auto'입니다. 이 경우 위에서 NFFT 'Auto'에 대해 설명한 규칙 그대로 사용되는 주파수 점 개수가 정해집니다.)

Hmms = msspectrum(...,'ConfLevel',p)는 신뢰구간을 계산하기 위한 신뢰수준 p(계산된 평균제곱 스펙트럼의 오차에 대한 추정값)를 지정합니다. 신뢰수준(p)은 0에서 1 사이입니다. 예를 들어, Hmss = msspectrum(Hs,X,'ConfLevel',0.95)는 95% 신뢰구간을 반환합니다.

psd

musiceigenvector 스펙트럼 객체는 psd 메서드를 지원하지 않습니다. 아래 pseudospectrum 메서드를 참조하십시오.

파워 스펙트럼 밀도(PSD)는 연속 스펙트럼에 사용하는 척도입니다. 지정된 주파수 대역에서 PSD를 적분하면 해당 주파수 대역의 신호에 대한 평균 전력이 계산됩니다. msspectrum과 대조적으로, 이 스펙트럼의 피크는 지정된 주파수에서의 전력을 나타내지 않습니다. PSD의 단위는 단위 주파수당 전력입니다. 자세한 내용은 dspdataavgpower 메서드를 참조하십시오.

Hpsd = psd (Hs,X)는 스펙트럼 객체 Hs를 사용하여, 이산시간 신호 X의 파워 스펙트럼 밀도 추정값이 포함된 파워 스펙트럼 밀도 객체를 반환합니다. PSD는 단위 주파수당 전력 분포입니다. 디폴트 값은 실수 값을 갖는 X의 경우 'onesided'이고, 복소수 값을 갖는 X의 경우 'twosided'입니다.

Hpsd는 PSD가 추정된 정규화 주파수로 구성된 벡터 W를 포함합니다. 실수 신호인 경우 W의 범위는 FFT 점 개수(NFFT)가 짝수이면 [0,π]이고 NFFT가 홀수이면 [0,π)입니다. 복소 신호인 경우 W의 범위는 [0,2π)입니다.

psd 메서드에는 이 psd 메서드를 사용하거나 psdopts 메서드를 통해 설정할 수 있는 속성이 포함되어 있습니다. 이러한 속성은 아래에 나열되어 있으며 다음 psdopts 섹션에 설명되어 있습니다.

SpectrumType'onesided' 또는 'twosided'
NormalizedFrequency — 주파수를 0과 1 사이로 정규화
Fs — Hz 단위의 샘플링 주파수
NFFT — FFT 점 개수
CenterDC — 데이터와 주파수를 DC 성분의 가운데로 이동
FreqPoints'All' 또는 'User Defined'
FrequencyVector — 스펙트럼을 계산할 주파수
ConfLevel — 신뢰구간을 계산하기 위한 신뢰수준. 값은 0과 1 사이어야 합니다.

예를 들어, Hmss = psd(Hs,X,'FreqPoints','User Defined', FreqVector,fvect)는 PSD 객체를 반환합니다. 여기서 스펙트럼은 주파수 벡터 fvect에 정의된 주파수 점에서만 계산됩니다.

psd(...)(출력 인수 없음)는 PSD(단위: 단위 주파수당 dB)를 플로팅합니다.

psdopts

Hopts = psdopts(Hs)는 스펙트럼 객체 Hs에 대한 옵션이 포함된 객체를 반환합니다.

Hopts = psdopts(Hs,X)는 데이터별 옵션과 디폴트 값이 포함된 객체를 반환합니다.

Hopts라는 options 객체는 psd 메서드에 인수로 전달할 수 있습니다. Hopts 객체 뒤에 지정하는 개별 옵션은 Hopts의 값을 무시합니다. 예를 들어, Hpsd = psd(Hs,X,Hopts,'SpectrumType', 'twosided')HoptsSpectrumType 값을 무시합니다.

다음 속성은 psdmopts 메서드와 psd 메서드에 모두 적용됩니다.

Hpsd = psd (Hs,X,'SpectrumType','twosided')X의 양측 파워 스펙트럼 밀도를 반환합니다. 스펙트럼 길이는 NFFT이며, Fs가 지정되지 않은 경우에는 [0,2π)에 대해 계산되고, Fs가 지정된 경우에는 [0,Fs)에 대해 계산됩니다. 'onesided'를 입력하면 단측 PSD를 반환하는데, 단측 PSD에는 총 신호 전력이 포함되어 있습니다.

Hmss = psd(Hs,X,'NormalizedFrequency',true)는 주파수 값이 0에서 1 사이로 정규화된 파워 스펙트럼 밀도 객체를 반환합니다. 디폴트 값은 true입니다.

Hpsd = psd (...,'Fs',Fs)는 주파수 함수로 계산된 파워 스펙트럼 밀도 객체를 반환합니다. 여기서 Fs는 샘플링 주파수(단위: Hz)입니다.

Hmss = psd(...,'NFFT',nfft)는 사용할 FFT 점 개수를 지정합니다. 유효한 값은 양의 정수, 'Nextpow2' 또는 'Auto'입니다. 'Nextpow2'는 입력 길이보다 큰 첫 번째 2의 제곱값과 256 중 더 큰 값을 사용합니다. 'Auto'는 입력 길이와 256 중 더 큰 값을 사용합니다. 디폴트 값은 'Nextpow2'입니다. 참고로, spectrum.welch, 'Nextpow2', 'Auto'는 입력 길이 대신에 SegmentLength와 비교됩니다.

Hmss = psd (..., 'Centerdc', true)는 DC 성분이 스펙트럼 가운데에 오도록 데이터와 주파수 값을 이동시킵니다. 디폴트 값은 false입니다.

특정 주파수로 구성된 벡터에 대해 스펙트럼을 추정하려면, 우선 주파수 점 개수를 'User Defined'로 설정하십시오. 그러면 psdNFFT 속성이 FrequencyVector 속성으로 대체됩니다.
Hopts.FreqPoints = 'User Defined'
(참고로, FreqPoints의 디폴트 값은 'All'이며, 이 경우 위에서 설명한 것처럼 psdNFFT 속성을 사용하게 됩니다.)

Hmms = psd(...,'ConfLevel',p)는 신뢰구간을 계산하기 위한 신뢰수준 p(계산된 PSD의 오차에 대한 추정값)를 지정합니다. 신뢰수준(p)은 0에서 1 사이입니다. 예를 들어, Hmss = psd(Hs,X,'ConfLevel',0.95)는 95% 신뢰구간을 반환합니다.

pseudospectrum

참고로, 이 메서드는 music 또는 eigenvector 스펙트럼 객체에만 사용됩니다.

Hps = pseudospectrum(Hs,X)는 스펙트럼 객체 Hs를 사용하여, 이산시간 신호 X의 의사스펙트럼 추정값이 포함된 객체를 반환합니다. Hsmusic 객체 또는 eigenvector 객체여야 합니다. 디폴트 값은 실수 값을 갖는 X의 경우 'half' 나이퀴스트 주파수 범위이고, 복소수 값을 갖는 X의 경우 'whole' 나이퀴스트 주파수 범위입니다.

Hps는 의사스펙트럼이 추정된 정규화 주파수 W의 벡터를 포함합니다. 실수 신호인 경우 W의 범위는 FFT 점 개수(NFFT)가 짝수이면 [0,π]이고 NFFT가 홀수이면 [0,π)입니다. 복소 신호인 경우 W의 범위는 [0,2π)입니다.

pseudospectrum 메서드에는 이 pseudospectrum 메서드를 사용하거나 pseudospectrumopts 메서드를 통해 설정할 수 있는 속성이 포함되어 있습니다. 이러한 속성은 다음과 같습니다.

SpectrumRange'half' 또는 'whole'
NormalizedFrequency — 주파수를 0과 1 사이로 정규화
Fs — Hz 단위의 샘플링 주파수
NFFT — FFT 점 개수
CenterDC — 데이터와 주파수를 움직여 DC 성분을 가운데로 이동
FreqPoints'All' 또는 'User Defined'
FrequencyVector — 스펙트럼을 계산할 주파수

예를 들어, Hmss = psd(Hs,X,'FreqPoints','User Defined', FreqVector,fvect)는 PSD 객체를 반환합니다. 여기서 스펙트럼은 주파수 벡터 fvect에 정의된 주파수 점에서만 계산됩니다.

pseudospectrum(...)(출력 인수 없음)은 의사스펙트럼(단위: dB)을 플로팅합니다.

pseudospectrumopts

Hopts = pseudospectrumopts(Hs)는 스펙트럼 객체 Hs에 대한 옵션이 포함된 객체를 반환합니다.

Hopts = pseudospectrumopts(Hs,X)는 데이터별 옵션과 디폴트 값이 포함된 객체를 반환합니다. Hopts라는 options 객체는 pseudospectrum 메서드에 인수로 전달할 수 있습니다. Hopts 객체 뒤에 지정하는 개별 옵션은 Hopts의 값을 무시합니다. 예를 들어, Hpseudospectrum= pseudospectrum(Hs,X, Hopts,'SpectrumRange', 'whole')HoptsSpectrumRange 값을 무시합니다.

Hmps = pseudospectrum (..., 'SpectrumRange', 'whole')은 전체 나이퀴스트 범위에서 의사스펙트럼을 반환합니다. 스펙트럼 길이는 NFFT이며, Fs가 지정되지 않은 경우에는 [0,2π)에 대해 계산되고, Fs가 지정된 경우에는 [0,Fs)에 대해 계산됩니다. 'half' 를 입력하면 나이퀴스트 범위의 절반에 대해 계산된 의사스펙트럼이 반환됩니다.

Hmss = pseudospectrum(Hs,X,'NormalizedFrequency',true)는 주파수 값이 0과 1 사이로 정규화된 의사스펙트럼 객체를 반환합니다. 디폴트 값은 true입니다.

Hps = pseudospectrum(Hs,X,'Fs',Fs)는 주파수 함수로 계산된 의사스펙트럼 객체를 반환합니다. 여기서 Fs는 Hz 단위의 샘플링 주파수입니다.

Hps = pseudospectrum(...,'NFFT',nfft)는 사용할 FFT 점 개수를 지정합니다. 유효한 값은 양의 정수, 'Nextpow2' 또는 'Auto'입니다. 'Nextpow2'는 입력 길이보다 큰 첫 번째 2의 제곱값과 256 중 더 큰 값을 사용합니다. 'Auto'는 입력 길이와 256 중 더 큰 값을 사용합니다. 디폴트 값은 'Nextpow2'입니다.

Hps = pseudospectrum(...,'Centerdc',true)는 DC 성분이 스펙트럼 가운데에 오도록 데이터와 주파수 값을 이동시킵니다. 디폴트 값은 false입니다.

특정 주파수로 구성된 벡터에 대해 스펙트럼을 추정하려면, 우선 주파수 점 개수를 'User Defined'로 설정하십시오. 그러면 pseudospectrumNFFT 속성이 FrequencyVector 속성으로 대체됩니다.
Hopts.FreqPoints = 'User Defined'
(참고로, FreqPoints의 디폴트 값은 'All'이며, 이 경우 위에서 설명한 것처럼 pseudospectrumNFFT 속성을 사용하게 됩니다.)

powerest

powerestmusic 스펙트럼 객체와 eigenvector 스펙트럼 객체에만 사용할 수 있습니다.

POW = powerest(Hs,X)X의 복소수 정현파의 전력 추정값이 포함된 벡터 POW를 반환합니다. 입력값 X는 벡터이거나 행렬일 수 있습니다. 행렬일 경우 입력값은 데이터 행렬(여기서, X*X=R)이거나 상관 행렬 R일 수 있습니다. HsInputType 속성 값에 따라 X의 해석 방식이 결정됩니다. Hsmusic 스펙트럼 객체이거나 eigenvector 스펙트럼 객체여야 합니다.

[POW,W]=powerest(Hs,X)POW와, X에 있는 정현파의 주파수(단위: rad/sample)로 구성된 벡터 W를 반환합니다.

[POW,F]=powerest(Hs,X,Fs)POW와, X에 있는 정현파의 주파수(단위: Hz)로 구성된 벡터 F를 반환합니다. Fs는 샘플링 주파수입니다.

객체 속성 보기

다른 객체와 마찬가지로 get을 사용하여 spectrum 객체의 속성을 볼 수 있습니다. 특정 속성을 보려면 다음 구문을 사용하십시오.

 get(Hs,'property') 

여기서 'property'는 특정 속성 이름입니다.

객체의 모든 속성을 보려면 다음 구문을 사용하십시오.

get(Hs)

객체 속성 변경하기

특정 속성을 설정하려면 다음 구문을 사용하십시오.

set(Hs,'property1',value, 'property2',value,...) 

여기서 'property1', 'property2' 등은 특정 속성 이름입니다.

속성에 대한 옵션을 보려면 값을 지정하지 않고 set를 사용하십시오.

set(Hs,'property')

속성 이름은 작은따옴표로 묶어야 합니다. 예를 들어, Burg spectrum 객체 Hs의 차수를 6으로 변경하려면 다음을 사용하십시오.

set(Hs,'order',6)

다음은 set를 사용하여 객체 속성을 변경하는 또 다른 예제로, 주기도 spectrum 객체의 동적으로 생성된 윈도우 속성을 변경하는 경우입니다.

Hs=spectrum.periodogram       % Create periodogram object

Hs =

    EstimationMethod: 'Periodogram'
          WindowName: 'Rectangular'

set(Hs,'WindowName','Chebyshev')   % Change window type
Hs                                 % View changed object

Hs =

    EstimationMethod: 'Periodogram'
          WindowName: 'Chebyshev'  % Note changed property
       SidelobeAtten: 100

set(Hs,'SidelobeAtten',150)   % Change dynamic property
Hs                            % View changed object

Hs =

    EstimationMethod: 'Periodogram'
          WindowName: 'Chebyshev'
       SidelobeAtten: 150 

EstimationMethod 속성을 제외한 나머지 spectrum 객체 속성을 set 명령을 사용하여 변경할 수 있습니다.

객체 속성을 변경하는 또 다른 방법은 inspect 명령을 사용하는 것입니다. 이 명령을 사용하면 속성 인스펙터 창이 열리고 이 창에서 동적 속성(예: 윈도우에 사용된 속성)을 제외한 모든 속성을 편집할 수 있습니다.

inspect(Hs)

객체 복사하기

객체의 복사본을 생성하려면 copy 메서드를 사용하십시오.

H2 = copy(Hs)

참고

구문 H2 = Hs를 사용하면 객체 핸들만 복사되고 새 객체가 생성되지는 않습니다.

예제

모두 축소

300밀리초 동안 1kHz로 샘플링된 주파수 200Hz의 코사인을 생성합니다. 가우스 백색 잡음을 추가합니다. periodogram 알고리즘으로 생성된 파워 스펙트럼 밀도 추정값을 확인합니다.

Fs = 1000;
t = 0:1/Fs:0.3;
x = cos(2*pi*t*200) + randn(size(t));

Hs = spectrum.periodogram;
psd(Hs,x,'Fs',Fs)

Figure contains an axes object. The axes object with title Periodogram Power Spectral Density Estimate, xlabel Frequency (Hz), ylabel Power/frequency (dB/Hz) contains an object of type line.

추가 예제는 각 추정 방법의 함수 도움말 페이지를 참조하십시오.

버전 내역

R2006a 이전에 개발됨