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

신호의 전력 측정하기

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

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

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

참고 항목

| | |

관련 항목