awgn

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

Описание

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

пример

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

пример

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

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

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

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

Примеры

свернуть все

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

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

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

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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original Signal, Signal with AWGN.

Передайте и примите данные с помощью непрямоугольного 16-арного созвездия в присутствии Гауссова шума. Покажите график поля точек шумного созвездия и оцените вероятность ошибки символа (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, имеющий отношение сигнал/шум (ОСШ) 20 дБ.

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

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

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

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains 2 objects of type line. This object represents Channel 1.

Демодулируйте принятый сигнал при помощи 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 объект и reset функция объекта.

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

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 дБВ.

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

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

Примечание

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

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

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

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

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

    Примечание

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

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

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

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

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

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

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

Сигнал степени модуля, заданный как 'dB' или 'linear'

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

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

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

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

свернуть все

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

Совет

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

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

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

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

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

.

См. также

Функции

Объекты

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