awgn

Добавьте белый Гауссов шум, чтобы сигнализировать

Синтаксис

out = awgn(in,snr)
out = awgn(in,snr,signalpower)
out = awgn(in,snr,signalpower,randobject)
out = awgn(in,snr,signalpower,seed)
out = awgn(___,powertype)

Описание

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

Для просмотра документации необходимо авторизоваться на сайте