snr

Отношение сигнал-шум

Описание

пример

r = snr(x,y) возвращает отношение сигнал-шум (SNR) в децибелах сигнала, x, путем вычисления отношения его суммированной величины в квадрате к тому из шума, yY должен иметь те же размерности как x. Используйте эту форму, когда входной сигнал является не обязательно синусоидальным, и у вас есть оценка шума.

пример

r = snr(x) возвращает ОСШ в децибелах относительно поставщика услуг (дБн) синусоидального входного сигнала с действительным знаком, x. ОСШ определяется с помощью модифицированной периодограммы той же длины как вход. Модифицированная периодограмма использует окно Кайзера с β = 38. Результат исключает степень первых шести гармоник, включая основной принцип.

пример

r = snr(x,fs,n) возвращает ОСШ в дБн действительного синусоидального входного сигнала, x, произведенный на уровне fs. Расчет исключает степень, содержавшуюся в самом низком n гармоники, включая основной принцип. Значение по умолчанию fs 1. Значение по умолчанию n 6.

пример

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

r = snr(pxx,f,n,'psd') задает количество гармоник, n, исключить при вычислении ОСШ. Значение по умолчанию n 6 и включает основной принцип.

пример

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

r = snr(sxx,f,rbw,n,'power') задает количество гармоник, n, исключить при вычислении ОСШ. Значение по умолчанию n 6 и включает основной принцип.

пример

r = snr(___,'aliased') удаляет гармоники основного принципа, которые искажаются в область значений Найквиста. Используйте эту опцию, когда входной сигнал будет субдискретизироваться. Если вы не задаете эту опцию, или если вы устанавливаете ее на 'omitaliases', затем функция обрабатывает как шум любые гармоники основной частоты, которые лежат за пределами области значений Найквиста.

пример

[r,noisepow] = snr(___) также возвращает общую шумовую степень нелинейных компонентов сигнала.

пример

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

Примеры

свернуть все

Сгенерируйте меандр с 20 миллисекундами, произведенный в течение 2 секунд на уровне 10 кГц.

Tpulse = 20e-3;
Fs = 10e3;
t = -1:1/Fs:1;
x = rectpuls(t,Tpulse);

Встройте импульс в белый Гауссов шум, таким образом, что отношение сигнал-шум (SNR) составляет 53 дБ. Сбросьте генератор случайных чисел для восстанавливаемых результатов.

rng default

SNR = 53;
y = randn(size(x))*std(x)/db2mag(SNR);

s = x + y;

Используйте snr функция, чтобы вычислить ОСШ сигнала с шумом.

pulseSNR = snr(x,y)
pulseSNR = 53.1255

Вычислите и сравните отношение сигнал-шум (SNR), общее гармоническое искажение (THD) и отношение сигнала к шуму и искажениям (SINAD) сигнала.

Создайте синусоидальный сигнал, произведенный на уровне 48 кГц. Сигнал имеет основной принцип частоты модульной амплитуды и 1 кГц. Это дополнительно содержит гармонику на 2 кГц с половиной амплитудного и аддитивного шума с отклонением 0,1 ².

fs = 48e3;
t = 0:1/fs:1-1/fs;
A = 1.0;
powfund = A^2/2;
a = 0.4;
powharm = a^2/2;
s = 0.1;
varnoise = s^2;
x = A*cos(2*pi*1000*t) + ...
    a*sin(2*pi*2000*t) + s*randn(size(t));

Проверьте, что ОСШ, THD и SINAD соглашаются с их определениями.

SNR = snr(x);
defSNR = 10*log10(powfund/varnoise);
SN = [SNR defSNR]
SN = 1×2

   17.0178   16.9897

THD = thd(x);
defTHD = 10*log10(powharm/powfund);
TH = [THD defTHD]
TH = 1×2

   -7.9546   -7.9588

SINAD = sinad(x);
defSINAD = 10*log10(powfund/(powharm+varnoise));
SI = [SINAD defSINAD]
SI = 1×2

    7.4571    7.4473

Вычислите ОСШ синусоиды на 2,5 кГц, произведенной на уровне 48 кГц. Добавьте белый шум с отклонением 0,001 ².

Fi = 2500;
Fs = 48e3;
N = 1024;
x = sin(2*pi*Fi/Fs*(1:N)) + 0.001*randn(1,N);
SNR = snr(x,Fs)
SNR = 57.7103

Постройте спектр и аннотируйте ОСШ.

snr(x,Fs);

Получите оценку степени спектральной плотности (PSD) периодограммы синусоиды на 2,5 кГц, произведенной на уровне 48 кГц. Добавьте белый шум со стандартным отклонением 0.00001. Используйте это значение в качестве входа, чтобы определить ОСШ. Установите генератор случайных чисел на настройки по умолчанию для восстанавливаемых результатов.

rng default
Fi = 2500;
Fs = 48e3;
N = 1024;
x = sin(2*pi*Fi/Fs*(1:N)) + 0.00001*randn(1,N);

w = kaiser(numel(x),38);
[Pxx, F] = periodogram(x,w,numel(x),Fs);
SNR = snr(Pxx,F,'psd')
SNR = 97.7446

Используя спектр мощности, вычислите ОСШ синусоиды на 2,5 кГц, произведенной на уровне 48 кГц и встроенной в белый шум со стандартным отклонением 0,00001. Сбросьте генератор случайных чисел для восстанавливаемых результатов.

rng default
Fi = 2500;
Fs = 48e3;
N = 1024;
x = sin(2*pi*Fi/Fs*(1:N)) + 0.00001*randn(1,N);

w = kaiser(numel(x),38);
[Sxx, F] = periodogram(x,w,numel(x),Fs,'power');
rbw = enbw(w,Fs);
SNR = snr(Sxx,F,rbw,'power')
SNR = 97.7446

Постройте спектр сигнала и аннотируйте ОСШ.

snr(Sxx,F,rbw,'power');

Сгенерируйте сигнал, который напоминает выход слабо нелинейного усилителя с тоном на 2,1 кГц, как введено. Сигнал производится в течение 1 секунды на уровне 10 кГц. Вычислите и постройте спектр мощности сигнала. Используйте окно Кайзера с β = 38 для расчета.

Fs = 10000;
f = 2100;

t = 0:1/Fs:1; 
x = tanh(sin(2*pi*f*t)+0.1) + 0.001*randn(1,length(t));

periodogram(x,kaiser(length(x),38),[],Fs,'power')

Гармоники терпят от шума на частотах 4,2 кГц, 6,3 кГц, 8,4 кГц, 10,5 кГц, 12,6 кГц и 14,7 кГц. Все частоты за исключением первой больше частоты Найквиста. Гармоники искажаются соответственно в 3,7 кГц, 1,6 кГц, 0,5 кГц, 2,6 кГц и 4,7 кГц.

Вычислите отношение сигнал-шум сигнала. По умолчанию, snr обрабатывает искаженные гармоники как часть шума.

snr(x,Fs,7);

Повторите расчет, но теперь обработайте искаженные гармоники как часть сигнала.

snr(x,Fs,7,'aliased');

Создайте синусоидальный сигнал, произведенный на уровне 48 кГц. Сигнал имеет основной принцип частоты модульной амплитуды и 1 кГц. Это дополнительно содержит гармонику на 2 кГц с половиной амплитудного и аддитивного шума с отклонением 0,1 ².

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

A = 1.0;
powfund = A^2/2;
a = 0.4;
powharm = a^2/2;
s = 0.1;
varnoise = s^2;

x = A*cos(2*pi*1000*t) + ...
    a*sin(2*pi*2000*t) + s*randn(size(t));

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

[SNR,npow] = snr(x,fs);
compare = [10*log10(powfund)-npow SNR]
compare = 1×2

   17.0281   17.0178

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

rng default

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);

snr(sgn,fs);

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

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

свернуть все

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

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

Оценка шума во входном сигнале в виде строки с действительным знаком или вектор-столбца. Это должно иметь те же размерности как x.

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

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

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

Количество гармоник, чтобы исключить из расчета ОСШ в виде положительного целочисленного скаляра. Значение по умолчанию n 6.

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Отношение сигнал-шум, описанное в децибелах относительно поставщика услуг (дБн), возвратилось как скаляр с действительным знаком. ОСШ возвращен в децибелах (дБ), если входной сигнал не является синусоидальным.

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

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

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

Больше о

свернуть все

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

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

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

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

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

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

Расширенные возможности

Введенный в R2013b