신호의 전력 측정하기
신호의 전력은 시간 영역 샘플의 절댓값 제곱합을 신호 길이로 나눈 것으로, 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차 왜곡이 있는 잡음이 있는 신호를 출력합니다. 신호는 2초 동안 3.6kHz로 샘플링됩니다.
Fs = 3600; t = 0:1/Fs:2-1/Fs; x = sin(2*pi*60*t); y = polyval(ones(1,4),x) + randn(size(x));
증폭기로 인해 3차 왜곡이 발생하므로 출력 신호는 다음을 포함할 수 있습니다.
입력값과 동일한 주파수 60Hz를 갖는 기본 성분.
두 개의 고조파 — 입력 주파수의 두 배인 120Hz와 세 배인 180Hz에 해당하는 주파수 성분.
thd
함수를 사용하여 신호의 스펙트럼을 시각화합니다. 기본파와 고조파에 주석을 표시합니다.
thd(y,Fs);
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.5777 31.788 1.9804
First 120 0.13141 2.6476 -8.8137
Second 180 0.04672 0.9413 -13.305
참고 항목
bandpower
| pow2db
| pwelch
| snr