이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

신호의 전력 측정하기

신호의 전력은 시간 영역 샘플의 절댓값 제곱 합을 신호 길이로 나눈 것으로, RMS 레벨의 제곱과 같습니다. 함수 bandpower를 사용하면 한 번에 신호 전력을 추정할 수 있습니다.

백색 가우스 잡음에 있고 1.2초 동안 1kHz로 샘플링된 단위 처프(Chirp)가 있다고 가정하겠습니다. 처프의 주파수는 1초 후에 초기값 100Hz에서 300Hz로 증가합니다. 잡음은 분산 0.012을 갖습니다. 재현 가능한 결과를 얻기 위해 난수 생성기를 재설정합니다.

N = 1200;
Fs = 1000;
t = (0:N-1)/Fs;

sigma = 0.01;
rng('default')

s = chirp(t,100,1,300)+sigma*randn(size(t));

bandpower로 반환된 전력 추정값이 정의와 일치하는지 확인합니다.

pRMS = rms(s)^2
pRMS = 0.5003
powbp = bandpower(s,Fs,[0 Fs/2])
powbp = 0.5005

obw 함수를 사용하여 신호 전력의 99%를 포함하는 주파수 대역의 폭, 대역의 하한과 상한, 대역의 전력을 추정합니다. 이 함수는 또한 스펙트럼 추정값을 플로팅하고 점유 대역폭에 별도의 표식을 추가합니다.

obw(s,Fs);

[wd,lo,hi,power] = obw(s,Fs);
powtot = power/0.99
powtot = 0.5003

비선형 전력 증폭기는 입력값으로 60Hz 정현파를 받으면 3차 왜곡이 있는 잡음이 있는 신호를 출력합니다. 샘플 레이트는 3.6kHz입니다. 영주파수(DC) 성분을 빼고 스펙트럼 성분에 집중합니다.

load(fullfile(matlabroot,'examples','signal','AmpOutput.mat'))
Fs = 3600;
y = y-mean(y);

증폭기로 인해 3차 왜곡이 발생하므로 출력 신호는 다음을 포함할 수 있습니다.

  • 입력값과 동일한 주파수 60Hz를 갖는 기본 성분

  • 두 개의 고조파 -- 입력 주파수의 두 배인 120Hz와 세 배인 180Hz에 해당하는 주파수 성분.

bandpower를 사용하여 기본파와 고조파에 저장된 전력을 확인합니다. 각각의 값을 총 전력의 백분율과 데시벨 단위로 표현합니다. 값을 테이블로 표시합니다.

pwrTot = bandpower(y,Fs,[0 Fs/2]);

Harmonic = {'Fundamental';'First';'Second'};

Freqs = [60 120 180]';

Power = zeros([3 1]);
for k = 1:3
    Power(k) = bandpower(y,Fs,Freqs(k)+[-10 10]);
end

Percent = Power/pwrTot*100;

inDB = pow2db(Power);

T = table(Freqs,Power,Percent,inDB,'RowNames',Harmonic)
T=3×4 table
                   Freqs     Power      Percent      inDB  
                   _____    ________    _______    ________

    Fundamental      60       1.0079    12.563     0.034136
    First           120      0.14483    1.8053      -8.3914
    Second          180     0.090023    1.1221      -10.456

참고 항목

| | |

관련 항목