Измерения искажения

Сгенерируйте 2 048 выборок синусоиды частоты 2,5 кГц, произведенные на уровне 50 кГц. Добавьте белый Гауссов шум, таким образом, что отношение сигнал-шум (SNR) составляет 80 дБ.

Fs = 5e4; 
f0 = 2.5e3;
N = 2048;
t = (0:N-1)/Fs;
SNR = 80;

x = cos(2*pi*f0*t);
x = x+randn(size(x))*std(x)/db2mag(SNR);

Передайте результат через слабо нелинейный усилитель, представленный полиномом. Усилитель вводит побочные тоны на частотах гармоник.

amp = [1e-5 5e-6 -1e-3 6e-5 1 25e-3];
x = polyval(amp,x);

Постройте спектр сигнала и аннотируйте ОСШ, проверив, что это имеет ожидаемое значение. snr функция вычисляет отношение степени основного принципа уровня шума и игнорирует компонент DC и гармоники.

snr(x,Fs);

Постройте спектр сигнала и аннотируйте общее гармоническое искажение (THD). thd функция вычисляет отношение степени гармоник к основному принципу и игнорирует компонент DC и уровень шума.

thd(x,Fs);

Постройте спектр сигнала и аннотируйте отношение сигнала к шуму и искажениям (SINAD). sinad функция вычисляет отношение степени основного принципа гармоник и уровня шума. Это игнорирует только компонент DC.

sinad(x,Fs);

Проверьте, что ОСШ, THD и SINAD выполняют уравнение

10-SNR/10+10THD/10=10-SINAD/10.

lhs = 10^(-snr(x,Fs)/10)+10^(thd(x,Fs)/10)
lhs = 7.2203e-08
rhs = 10^(-sinad(x,Fs)/10)
rhs = 7.1997e-08

Постройте спектр сигнала и аннотируйте свободный от паразитных составляющих динамический диапазон (SFDR). SFDR является отношением степени основного принципа самого сильного побочного компонента ("шпора"). В этом случае шпора соответствует третьей гармонике.

sfdr(x,Fs);