Степень сигнала является суммой абсолютных квадратов ее выборок временного интервала, разделенных на длину сигнала, или, эквивалентно, квадрат ее уровня 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 кГц в течение 2 секунд.
Fs = 3600; t = 0:1/Fs:2-1/Fs; x = sin(2*pi*60*t); y = polyval(ones(1,4),x) + randn(size(x));
Поскольку усилитель вводит искажение третьего порядка, выходной сигнал, как ожидают, будет иметь:
Основной компонент с той же частотой как вход, 60 Гц.
Две гармоники — частотные составляющие в дважды и три раза частота входа, 120 и 180 Гц.
Используйте 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