comm.AWGNChannel

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

Описание

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

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

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

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

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

пример

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

пример

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

Свойства

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

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

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

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

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

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

Зависимости

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

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

Отклонение Белого Гауссова шума, заданное как положительная скалярная величина или 1 NC вектором. 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

Начальный seed 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);

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

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

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

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

Отклонение аддитивного белого Гауссова шума, заданного как положительная скалярная величина или 1 NC вектором. 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, добавьте белый Гауссов шум и постройте сигнал наблюдать эффекты шума.

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

scatterplot(channelOutput)

Измените EbNo свойство к 10 дБ, чтобы увеличить шум.

channel.EbNo = 10;

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

channelOutput = channel(modData);

Постройте канал выход. Вы видите эффекты увеличенного шума.

scatterplot(channelOutput)

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

Создайте Системный объект канала 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)

Сгенерируйте двухканальные входные данные и примените модуляцию 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')

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

Измените объект канала 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')

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

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

Создайте Систему канала 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))

scatterplot(rxSig(:,2))

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

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

scatterplot(rxSig(:,2))

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

Создайте Систему канала AWGN object™. Установите 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 функция. Случайный поток данных сбрасывается к начальному seed 99.

reset(channel);

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

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

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

isequal(y1,y3)
ans = logical
   1

Алгоритмы

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

Ссылки

[1] Proakis, цифровая связь Джона Г. 4-й Эд. McGraw-Hill, 2001.

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

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

Блоки

Объекты

Функции

Представленный в R2012a