sin

Сигнал к шуму и отношению искажения

Синтаксис

r = sinad(x)
r = sinad(x,fs)
r = sinad(pxx,f,'psd')
r = sinad(sxx,f,rbw,'power')
[r,totdistpow] = sinad(___)
sinad(___)

Описание

пример

r = sinad(x) возвращает сигнал в шум и отношение искажения (SINAD) в дБн синусоидального x сигнала с действительным знаком. SINAD определяется с помощью измененной периодограммы той же длины как входной сигнал. Измененная периодограмма использует окно Kaiser с β = 38.

пример

r = sinad(x,fs) задает частоту дискретизации fs входного сигнала x. Если вы не задаете fs, то значения по умолчанию частоты дискретизации к 1.

пример

r = sinad(pxx,f,'psd') задает вход pxx как одностороннюю оценку степени спектральной плотности (PSD). f является вектором частот, соответствующих оценкам PSD в pxx.

r = sinad(sxx,f,rbw,'power') задает вход как односторонний спектр мощности. rbw является пропускной способностью разрешения, по которой интегрирована каждая оценка степени.

[r,totdistpow] = sinad(___) возвращает общую шумовую и гармоническую степень искажения (в дБ) сигнала.

пример

sinad(___) без выходных аргументов строит спектр сигнала в окне текущей фигуры и маркирует его основной компонент. Это использует различные цвета, чтобы чертить основной компонент, значение DC и шум. SINAD появляется выше графика.

Примеры

свернуть все

Создайте два сигнала. Оба сигнала имеют основную частоту π/4 рад/выборка с амплитудой 1 и первая гармоника частоты π/2 рад/выборка с амплитудой 0.025. Один из сигналов дополнительно имеет аддитивный белый Гауссов шум с отклонением 0.052.

Создайте два сигнала. Установите генератор случайных чисел на настройки по умолчанию для восстанавливаемых результатов. Определите SINAD для сигнала без аддитивного шума и сравните результат с теоретическим SINAD.

n = 0:159;
x = cos(pi/4*n)+0.025*sin(pi/2*n);
rng default

y = cos(pi/4*n)+0.025*sin(pi/2*n)+0.05*randn(size(n));
r = sinad(x)
r = 32.0412
powfund = 1;
powharm = 0.025^2;
thSINAD = 10*log10(powfund/powharm)
thSINAD = 32.0412

Определите SINAD для синусоидального сигнала с аддитивным шумом. Покажите, как включая теоретическое отклонение аддитивного шума аппроксимирует SINAD.

r = sinad(y)
r = 22.8085
varnoise = 0.05^2;
thSINAD = 10*log10(powfund/(powharm+varnoise))
thSINAD = 25.0515

Создайте сигнал с основной частотой 1 кГц и модульной амплитудой, выбранной на уровне 480 кГц. Сигнал дополнительно состоит из первой гармоники с амплитудой 0.02 и аддитивный белый Гауссов шум с отклонением 0.012.

Определите SINAD и сравните результат с теоретическим SINAD.

fs = 48e4;
t = 0:1/fs:1-1/fs;
rng default

x = cos(2*pi*1000*t)+0.02*sin(2*pi*2000*t)+0.01*randn(size(t));
r = sinad(x,fs)
r = 32.2058
powfund = 1;
powharm = 0.02^2;
varnoise = 0.01^2;
thSINAD = 10*log10(powfund/(powharm+varnoise*(1/fs)))
thSINAD = 33.9794

Создайте сигнал с основной частотой 1 кГц и модульной амплитудой, выбранной на уровне 480 кГц. Сигнал дополнительно состоит из первой гармоники с амплитудой 0.02 и аддитивный белый Гауссов шум со стандартным отклонением 0.01. Установите генератор случайных чисел на настройки по умолчанию для восстанавливаемых результатов.

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

fs = 48e4;
t = 0:1/fs:1-1/fs;

rng default
x = cos(2*pi*1000*t)+0.02*sin(2*pi*2000*t)+0.01*randn(size(t));

[pxx,f] = periodogram(x,rectwin(length(x)),length(x),fs);
r = sinad(pxx,f,'psd')
r = 32.2109

Сгенерируйте синусоиду частоты 2,5 кГц, выбранные на уровне 50 кГц. Добавьте Гауссов белый шум со стандартным отклонением 0.00005 к сигналу. Передайте результат через слабо нелинейный усилитель. Постройте SINAD.

fs = 5e4;
f0 = 2.5e3;
N = 1024;
t = (0:N-1)/fs;

ct = cos(2*pi*f0*t);
cd = ct + 0.00005*randn(size(ct));

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

sinad(sgn,fs);

График показывает, что спектр раньше вычислял отношение и область, обработанную как шум. Уровень DC и основной принцип исключены из шумового вычисления. Основной принцип маркирован.

Входные параметры

свернуть все

Синусоидальный входной сигнал с действительным знаком, заданный как строка или вектор-столбец.

Пример: cos(pi/4*(0:159))+cos(pi/2*(0:159))

Типы данных: single | double

Частота дискретизации, заданная как положительная скалярная величина. Частота дискретизации является количеством выборок в единицу времени. Если модуль времени является секундами, то частота дискретизации имеет модули Гц.

Односторонняя оценка PSD, заданная как неотрицательный вектор-столбец с действительным знаком.

Степень спектральная плотность должна быть выражена в линейных модулях, не децибелах. Используйте db2pow, чтобы преобразовать значения децибела, чтобы привести в действие значения.

Пример: [pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2)) задает периодограмму оценка PSD шумной двухканальной синусоиды, выбранной в 2π Гц и частоты, на которых это вычисляется.

Типы данных: single | double

Циклические частоты, соответствующие односторонней оценке PSD, pxx, заданному как строка или вектор-столбец. Первый элемент f должен быть 0.

Типы данных: double | single

Спектр мощности, заданный как неотрицательная строка с действительным знаком или вектор-столбец.

Спектр мощности должен быть выражен в линейных модулях, не децибелах. Используйте db2pow, чтобы преобразовать значения децибела, чтобы привести в действие значения.

Пример: [sxx,w] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2),'power') задает оценку спектра мощности периодограммы двухканальной синусоиды, встроенной в белый Гауссов шум и нормированные частоты, на которых это вычисляется.

Пропускная способность разрешения, заданная как положительная скалярная величина. Пропускная способность разрешения является продуктом разрешения частоты дискретного преобразования Фурье и эквивалентной шумовой пропускной способности окна.

Выходные аргументы

свернуть все

Сигнал к шуму и отношению искажения в дБн, возвращенном как скаляр с действительным знаком.

Общая шумовая и гармоническая степень искажения сигнала, возвращенного как скаляр с действительным знаком, выражается в дБ.

Больше о

свернуть все

Функции измерения искажения

Функции thd, sfdr, sinad и snr измеряют ответ слабо нелинейной системы, стимулированной синусоидой.

Когда данный вход временного интервала, sinad выполняет периодограмму с помощью окна Kaiser с большим затуханием бокового лепестка. Чтобы найти основную частоту, алгоритм ищет периодограмму самый большой ненулевой спектральный компонент. Это затем вычисляет центральный момент всех смежных интервалов, которые уменьшаются монотонно далеко от максимума. Чтобы быть обнаруживаемым, основной принцип должен быть, по крайней мере, во втором интервале частоты. Более высокие гармоники в целочисленных множителях основной частоты. Если гармоника находится в монотонно уменьшающейся области в окружении другого, его степень, как рассматривается, принадлежит большей гармонике. Эта большая гармоника может или не может быть основным принципом.

Функция оценивает уровень шума с помощью средней степени в областях, содержащих только шум и искажение. Компонент DC исключен из вычисления. Шум в каждой точке является предполагаемым уровнем или ординатой точки, какой бы ни меньше. Шум затем вычтен из значений сигнала и гармоник.

sinad перестал работать, если основной принцип не является самым высоким спектральным компонентом в сигнале.

Гарантируйте, что частотные составляющие достаточно далеки независимо, чтобы разместить для ширины бокового лепестка окна Kaiser. Если это не выполнимо, можно использовать флаг 'power' и вычислить периодограмму с различным окном.

Введенный в R2013b