awgn

Добавьте белый Гауссов шум к сигналу

Описание

out = awgn(in,snr) добавляет белый Гауссов шум к векторному in сигнала. Этот синтаксис принимает что степень in 0 dBW.

пример

out = awgn(in,snr,signalpower) принимает значение степени входного сигнала в dBW. Чтобы иметь функцию измеряют степень in прежде, чем добавить шум, задайте signalpower как 'measured'.

пример

out = awgn(in,snr,signalpower,randobject) принимает, что входные комбинации от предшествующих синтаксисов и потокового объекта случайных чисел генерируют нормальные случайные шумовые выборки. Для получения информации о создании повторяемых шумовых выборок смотрите Советы.

out = awgn(in,snr,signalpower,seed) задает значение seed для инициализации нормального генератора случайных чисел, который используется при добавлении белого Гауссова шума во входной сигнал. Для получения информации о создании повторяемых шумовых выборок смотрите Советы.

out = awgn(___,powertype) задает и шумовой тип степени сигнала как 'dB' или 'linear' в дополнение к входным параметрам в любом из предыдущих синтаксисов.

Для отношений между ОСШ и другими мерами относительной степени шума, такими как E s/N0 и E b/N0, см. Уровень шума Канала AWGN.

Примеры

свернуть все

Создайте пилообразную волну.

t = (0:0.1:10)';
x = sawtooth(t);

Примените белый Гауссов шум и постройте результаты.

y = awgn(x,10,'measured');
plot(t,[x y])
legend('Original Signal','Signal with AWGN')

Передайте и получите данные с помощью непрямоугольного 16-ary созвездия в присутствии Гауссова шума. Покажите график рассеивания шумного созвездия и оцените коэффициент ошибок символа (SER) для двух различных отношений сигнал-шум.

Создайте 16-QAM созвездие на основе стандарта V.29 для модемов телефонной линии.

c = [-5 -5i 5 5i -3 -3-3i -3i 3-3i 3 3+3i 3i -3+3i -1 -1i 1 1i];
M = length(c);

Сгенерируйте случайные символы.

data = randi([0 M-1],2000,1);

Модулируйте данные при помощи genqammod функция. Общая модуляция QAM необходима, потому что пользовательское созвездие не является прямоугольным.

modData = genqammod(data,c);

Передайте сигнал через канал AWGN, имеющий отношение сигнал-шум (SNR) на 20 дБ.

rxSig = awgn(modData,20,'measured');

Отобразите график рассеивания полученного сигнала и ссылочного созвездия, c.

h = scatterplot(rxSig);
hold on
scatterplot(c,[],[],'r*',h)
grid
hold off

Демодулируйте полученный сигнал при помощи genqamdemod функция. Определите количество ошибок символа и ошибочного отношения символа.

demodData = genqamdemod(rxSig,c);
[numErrors,ser] = symerr(data,demodData)
numErrors = 1
ser = 5.0000e-04

Повторите передачу и процесс демодуляции с каналом AWGN, имеющим ОСШ на 10 дБ. Определите коэффициент ошибок символа для уменьшаемого ОСШ. Как ожидалось производительность ухудшается, когда ОСШ уменьшен.

rxSig = awgn(modData,10,'measured');
demodData = genqamdemod(rxSig,c);
[numErrors,ser] = symerr(data,demodData)
numErrors = 462
ser = 0.2310

Сгенерируйте результаты сложения белого Гауссова шума с помощью RandStream объект и Класс (MATLAB).

Задайте степень X, чтобы быть 0 dBW, добавляет шум, чтобы произвести ОСШ 10 дБ, и использует локальный случайный поток.

S = RandStream('mt19937ar','Seed',5489);
sigin = sqrt(2)*sin(0:pi/8:6*pi);
sigout1 = awgn(sigin,10,0,S);

Добавьте AWGN в sigin. Используйте isequal сравнить sigout1 к sigout2. Выходные параметры не равны, когда случайный поток не был сброшен.

sigout2 = awgn(sigin,10,0,S);
isequal(sigout1,sigout2)
ans = logical
   0

Сбросьте случайный потоковый объект, возвратив объект в его состояние до добавления AWGN к sigout1. Добавьте AWGN в sigin и сравните sigout1 к sigout3. Выходные параметры равны после того, как случайный поток был сброшен.

reset(S);
sigout3 = awgn(sigin,10,0,S);
isequal(sigout1,sigout3)
ans = logical
   1

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

свернуть все

Входной сигнал, заданный как скаляр, вектор или массив. К власти входного сигнала приходят, чтобы быть 0 dBW.

Типы данных: double
Поддержка комплексного числа: Да

Отношение сигнал-шум в дБ, заданном как скаляр.

Примечание

Когда шум добавляется, эта функция применяет тот же snr ко всем элементам полного входного сигнала. Входные сигналы массивов не имеют понятия независимых каналов. Чтобы рассмотреть несколько каналов независимо, смотрите comm.AWGNChannel.

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

Степень сигнала, заданная как скаляр или 'measured'.

  • Когда signalpower скаляр, значение используется в качестве уровня сигнала in определить соответствующий уровень шума на основе значения snr.

  • Когда signalpower 'measured', уровень сигнала in вычисляется, чтобы определить соответствующий уровень шума на основе значения snr.

    Примечание

    Когда вы задаете 'measured', эта функция вычисляет степень сигнала с помощью всех элементов полного входного сигнала. Когда степень вычисляется, входные сигналы массивов не имеют понятия независимых каналов.

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

Потоковый объект случайных чисел, заданный как RandStream объект. Состояние случайного потокового объекта определяет последовательность чисел, произведенную randn функция. Сконфигурируйте случайный потоковый объект с помощью reset функционируйте и его свойства.

wgn генерирует нормальные случайные шумовые выборки с помощью randn. randn функционируйте использует одно или несколько универсальных значений от RandStream объект сгенерировать каждое нормальное значение.

Для получения информации о создании повторяемых шумовых выборок смотрите Советы.

Значение seed генератора случайных чисел, заданное как скаляр.

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

Блок питания сигнала, заданный как 'dB' или 'linear'

  • Когда powertype 'dB', snr измеряется в дБ и signalpower измеряется в dBW.

  • Когда powertype 'linear', snr измеряется как отношение и signalpower измеряется в ваттах.

Для отношений между ОСШ и другими мерами относительной степени шума, такими как E s/N0 и E b/N0, см. Уровень шума Канала AWGN.

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

свернуть все

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

Советы

  • Чтобы сгенерировать повторяемые выборки белого Гауссова шума, используйте один из этих советов:

    • Обеспечьте статический seed значение как вход к wgn.

    • Используйте reset функция на randobject прежде, чем передать его как вход к awgn.

    • Обеспечьте randobject в известном состоянии как вход к awgn. Для получения дополнительной информации смотрите RandStream.

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

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

Функции

Объекты

Представлено до R2006a