comm.AWGNChannel

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

Описание

comm.AWGNChannel добавляет белый Гауссов шум к входному сигналу.

Когда применимо, если входы к объекту имеют переменное количество каналов, свойства EbNo, EsNo, SNR, BitsPerSymbol, SignalPower, SamplesPerSymbol и Variance должны быть скалярами.

Чтобы добавить белый Гауссов шум к входному сигналу:

  1. Создайте comm.AWGNChannel Объекту и установите его свойства.

  2. Вызывайте объект с аргументами, как будто это функция.

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

пример

awgnchan = comm.AWGNChannel создает аддитивный канал белого Гауссова шума (AWGN) System object™, awgnchan. Затем этот объект добавляет белый Гауссов шум к действительному или комплексному входному сигналу.

пример

awgnchan = comm.AWGNChannel(Name,Value) создает объект канала AWGN, awgnchan, с заданным свойством Name установить на заданную Value. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

Свойства

расширить все

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

Если свойство настраивается, можно изменить его значение в любой момент.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

Метод уровня шума, заданный как 'Signal to noise ratio (Eb/No)', 'Signal to noise ratio (Es/No)', 'Signal to noise ratio (SNR)', или 'Variance'. Для получения дополнительной информации смотрите Определение отклонения прямо или косвенно.

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

Отношение энергии на бит к спектральной плотности степени шума (Eb/No) в децибелах, заданное как скалярный или 1-бай- N вектор C. N C - количество каналов.

Настраиваемый: Да

Зависимости

Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Eb/No)'.

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

Отношение энергии на символ к спектральной плотности степени шума (Es/No) в децибелах, заданное как скалярный или 1-бай- N вектор C. N C - количество каналов.

Настраиваемый: Да

Зависимости

Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Es/No)'.

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

Отношение степени сигнала к степени шума в децибелах, заданное как скалярный или 1-байт- N вектор C. N C - количество каналов.

Настраиваемый: Да

Зависимости

Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (SNR)'.

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

Количество бит на символ, заданное как положительное целое число.

Зависимости

Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Eb/No)'.

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

Входной сигналв ваттах, заданная как положительный скаляр или 1-байт N вектор C. N C - количество каналов. Объект принимает номинальное сопротивление 1 Ом.

Настраиваемый: Да

Зависимости

Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Eb/No)', 'Signal to noise ratio (Es/No)', или 'Signal to noise ratio (SNR)'.

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

Количество выборок на символ, заданное в виде положительного целого числа или 1-байтового N вектора C. N C - количество каналов.

Зависимости

Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Eb/No)' или 'Signal to noise ratio (Es/No)'.

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

Источник отклонения шума, заданный как 'Property' или 'Input port'.

  • Задайте VarianceSource на 'Property' чтобы задать значение отклонения шума с помощью свойства Дисперсия.

  • Задайте VarianceSource на 'Input port' задать значение отклонения шума с помощью входа в объект, когда вы вызываете его как функцию.

Для получения дополнительной информации смотрите Определение отклонения прямо или косвенно.

Зависимости

Это свойство применяется, когда NoiseMethod 'Variance'.

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

Белая Гауссова шумовое отклонение, заданная как положительный скаляр или 1-байт N вектор C. N C - количество каналов.

Настраиваемый: Да

Зависимости

Это свойство применяется, когда NoiseMethod установлен в 'Variance' и для параметра VarianceSource задано значение 'Property'.

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

Источник потока случайных чисел, заданный как 'Global stream' или 'mt19937ar with seed'.

  • Когда вы задаете RandomStream на 'Global stream'объект использует MATLAB® случайный поток по умолчанию для генерации случайных чисел. Чтобы сгенерировать воспроизводимые числа с помощью этого объекта, можно сбросить случайный поток MATLAB по умолчанию. Для примера reset(RandStream.getGlobalStream). Для получения дополнительной информации см. RandStream.

  • Когда вы задаете RandomStream на 'mt19937ar with seed'объект использует алгоритм mt19937ar для нормально распределенной генерации случайных чисел. В этом сценарии, когда вы вызываете reset функция, объект повторно инициализирует поток случайных чисел к значению Seed свойство. Можно сгенерировать воспроизводимые числа путем сброса объекта.

Для комплексного входного сигнала объект создает случайные данные следующим образом:

noise = randn(NS,NC)+1i(randn(NS,NC))
N S - количество выборок, а N C - количество каналов.

Зависимости

Это свойство применяется, когда NoiseMethod установлен в 'Variance'.

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

Начальное начальное число потока случайных чисел mt19937ar, заданное как неотрицательное целое число. Для каждого вызова на reset функция, объект повторно инициализирует поток случайных чисел mt19937ar в Seed значение.

Зависимости

Это свойство применяется, когда для RandomStream задано значение 'mt19937ar with seed'.

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

Использование

Описание

пример

outsignal = awgnchan(insignal) добавляет белый Гауссов шум, как задано awgnchan, к входному сигналу. Результат возвращается в outsignal.

пример

outsignal = awgnchan(insignal,var) задает отклонение белого Гауссова шума. Этот синтаксис применяется, когда вы задаете значение NoiseMethod 'Variance' и VarianceSource к 'Input port'.

Для примера:

awgnchan = comm.AWGNChannel('NoiseMethod','Variance', ...
     'VarianceSource','Input port');
var = 12;
...
outsignal = awgnchan(insignal,var);

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

расширить все

Входной сигнал, заданный как скаляр, N вектор S-элемента или N S-бай- N C матрица. N S - количество выборок, а N C - количество каналов.

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

Отклонение аддитивного белого Гауссово шума, заданная как положительный скаляр или 1-байт N вектор C. N C - количество каналов, определяемое количеством столбцов в матрице входного сигнала.

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

расширить все

Выходной сигнал, возвращенный с такими же размерностями, как insignal.

Функции объекта

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj, используйте следующий синтаксис:

release(obj)

расширить все

stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Создайте объект системы канала AWGN с настройкой по умолчанию. Передайте данные сигнала через этот канал.

Создайте объект канала AWGN и данные о сигнале.

awgnchan = comm.AWGNChannel;
insignal = randi([0 1],100,1);

Передайте входной сигнал через канал.

outsignal = awgnchan(insignal);

Модулируйте сигнал 8-PSK, добавьте белый Гауссов шум и постройте график сигнала, чтобы визуализировать эффекты шума.

Создайте систему модулятора M-PSK object™. Порядок модуляции по умолчанию для объекта равен 8.

pskModulator = comm.PSKModulator;

Модулируйте сигнал.

modData = pskModulator(randi([0 7],2000,1));

Добавьте белый Гауссов шум к модулированному сигналу путем передачи сигнала через аддитивный канал белого Гауссова шума (AWGN).

channel = comm.AWGNChannel('EbNo',20,'BitsPerSymbol',3);

Передайте сигнал через канал AWGN.

channelOutput = channel(modData);

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

scatterplot(modData)

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

scatterplot(channelOutput)

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

Измените EbNo свойство до 10 дБ для увеличения шума.

channel.EbNo = 10;

Передайте модулированные данные через канал AWGN.

channelOutput = channel(modData);

Постройте график выхода канала. Можно увидеть эффекты повышенного шума.

scatterplot(channelOutput)

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

Передайте одноканальный и многоканальный сигнал через object™ системы канала AWGN.

Создайте системный объект канала AWGN с отношением Eb/No, установленным для одноканального входа. В этом случае EbNo свойство является скаляром.

channel = comm.AWGNChannel('EbNo',15);

Сгенерируйте случайные данные и примените QPSK модуляцию.

data = randi([0 3],1000,1);
modData = pskmod(data,4,pi/4);

Передайте модулированные данные через канал AWGN.

rxSig = channel(modData);

Постройте шумное созвездие.

scatterplot(rxSig)

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

Сгенерируйте двухканальные входные данные и примените QPSK модуляцию.

data = randi([0 3],2000,2);
modData = pskmod(data,4,pi/4);

Передайте модулированные данные через канал AWGN.

rxSig = channel(modData);

Постройте график шумных созвездий. Каждый канал представлен как один столбец в rxSig. Графики почти идентичны, потому что одно и то же значение Eb/No применяется к обоим каналам.

scatterplot(rxSig(:,1))
title('First Channel')

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

scatterplot(rxSig(:,2))
title('Second Channel')

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

Измените объект канала AWGN, чтобы применить другое значение Eb/No к каждому каналу. Чтобы применить другие значения, установите EbNo свойство вектору 1 на 2. При изменении размерности EbNo свойство, вы должны освободить объект канала AWGN.

release(channel)
channel.EbNo = [10 20];

Передайте данные через канал AWGN.

rxSig = channel(modData);

Постройте график шумных созвездий. Первый канал имеет значительно больше шума из-за его нижнего значения Eb/No.

scatterplot(rxSig(:,1))
title('First Channel')

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

scatterplot(rxSig(:,2))
title('Second Channel')

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

Применить вход отклонения шума в виде скаляра или вектора-строки с длиной, равной количеству каналов входного сигнала тока.

Создайте систему каналов AWGN object™ с NoiseMethod значение свойства установлено на 'Variance' и VarianceSource значение свойства установлено на 'Input port'.

channel = comm.AWGNChannel('NoiseMethod','Variance', ...
'VarianceSource','Input port');

Сгенерируйте случайные данные для двух каналов и примените 16-QAM модуляцию.

data = randi([0 15],10000,2);
txSig = qammod(data,16);

Передайте модулированные данные через канал AWGN. Объект канала AWGN обрабатывает данные из двух каналов. Отклонение входа является вектором 1 на 2.

rxSig = channel(txSig,[0.01 0.1]);

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

scatterplot(rxSig(:,1))

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

scatterplot(rxSig(:,2))

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

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

rxSig = channel(txSig,0.2);
scatterplot(rxSig(:,1))

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

scatterplot(rxSig(:,2))

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

Задайте seed, чтобы получить те же выходы при использовании случайного потока, в котором вы задаете seed.

Создайте системный object™ канала AWGN. Установите NoiseMethod свойство к 'Variance', а RandomStream свойство к 'mt19937ar with seed', и Seed свойство к 99.

channel = comm.AWGNChannel( ...
    'NoiseMethod','Variance', ...
    'RandomStream','mt19937ar with seed', ...
    'Seed',99);

Передайте данные через канал AWGN.

y1 = channel(zeros(8,1));

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

y2 = channel(zeros(8,1));

Поскольку seed изменяется между вызовами функции, выход отличается.

isequal(y1,y2)
ans = logical
   0

Сброс объекта канала AWGN путем вызова reset функция. Поток случайных данных сбрасывается на начальное начальное число 99.

reset(channel);

Передайте вектор всех нулей через канал AWGN.

y3 = channel(zeros(8,1));

Подтвердите, что эти два сигнала идентичны.

isequal(y1,y3)
ans = logical
   1

Алгоритмы

расширить все

Ссылки

[1] Proakis, John G. Digital Communications. 4th Ed. McGraw-Hill, 2001.

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

.

См. также

Блоки

Объекты

Функции

Введенный в R2012a