Измерьте степень сигнала

Степень сигнала является суммой абсолютных квадратов ее выборок временного интервала, разделенных на длину сигнала, или, эквивалентно, квадрат ее уровня RMS. Функциональный bandpower позволяет вам оценивать степень сигнала за один шаг.

Считайте модульный щебет встроенным в белый Гауссов шум и произведенным на уровне 1 кГц в течение 1,2 секунд. Частота щебета увеличивается за одну секунду с начального значения 100 Гц к 300 Гц. Шум имеет отклонение 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

Нелинейному усилителю мощности дают синусоиду на 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

Смотрите также

| | |

Похожие темы