exponenta event banner

коммуникация. AWGNChannel

Добавление белого гауссова шума к входному сигналу

Описание

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

Если входы объекта имеют переменное количество каналов, свойства EbNo, EsNo, SNR, BitsPerSymbol, SignalPower, SharingPerSymbol и 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-by-NC вектор. NC - количество каналов.

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

Число выборок на символ, указанное как положительное целое число или 1-by-NC вектор. NC - количество каналов.

Зависимости

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

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

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

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

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

Дополнительные сведения см. в разделе Определение отклонения прямо или косвенно.

Зависимости

Это свойство применяется в том случае, если NoureMethod имеет значение 'Variance'.

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

Дисперсия белого гауссова шума, заданная как положительный скалярный или 1-by-NC вектор. NC - количество каналов.

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

Зависимости

Это свойство применяется в том случае, если для параметра NoureMethod установлено значение 'Variance' и VaritySource имеет значение '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))
NS - количество выборок, а NC - количество каналов.

Зависимости

Это свойство применяется в том случае, если для параметра NoureMethod установлено значение 'Variance'.

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

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

Зависимости

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

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

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

Описание

пример

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

пример

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

Например:

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

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

развернуть все

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

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

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

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

развернуть все

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

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

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

release(obj)

развернуть все

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

Примеры

свернуть все

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

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

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

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

outsignal = awgnchan(insignal);

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

Создайте object™ системы модулятора M-PSK. Порядок модуляции по умолчанию для объекта - 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.

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

Создание object™ системы каналов AWGN с помощью 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.

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

Создание системного 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));

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

isequal(y1,y2)
ans = logical
   0

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

reset(channel);

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

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

Убедитесь, что эти два сигнала идентичны.

isequal(y1,y3)
ans = logical
   1

Алгоритмы

развернуть все

Ссылки

[1] Проакис, Джон Г. Digital Communications. 4-й ред. Макгроу-Хилл, 2001.

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

.
Представлен в R2012a