Степень сигнала является суммой абсолютных квадратов ее выборок временного интервала, разделенных на длину сигнала, или, эквивалентно, квадрат ее уровня RMS. Функциональный bandpower
позволяет вам оценивать степень сигнала за один шаг.
Считайте модульный щебет встроенным в белый Гауссов шум и произведенным на уровне 1 кГц в течение 1,2 секунд. Частота щебета увеличивается за одну секунду с начального значения 100 Гц к 300 Гц. Шум имеет отклонение . Сбросьте генератор случайных чисел для восстанавливаемых результатов.
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
Нелинейному усилителю мощности дают синусоиду на 60 Гц, как введено и выводит сигнал с шумом с искажением третьего порядка. Частота дискретизации составляет 3,6 кГц. Вычтите нулевую частоту (DC) компонент, чтобы сконцентрироваться на спектральном содержимом.
load(fullfile(matlabroot,'examples','signal','AmpOutput.mat')) Fs = 3600; y = y-mean(y);
Поскольку усилитель вводит искажение третьего порядка, выходной сигнал, как ожидают, будет иметь
Основной компонент с той же частотой как вход, 60 Гц;
Две гармоники - частотные составляющие в дважды и три раза частота входа, 120 и 180 Гц.
Используйте 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
bandpower
| pow2db
| pwelch
| snr