Добавьте белый Гауссов шум к входному сигналу
comm.AWGNChannel добавляет белый Гауссов шум к входному сигналу.
Когда применимо, если входы к объекту имеют переменное количество каналов, свойства EbNo, EsNo, SNR, BitsPerSymbol, SignalPower, SamplesPerSymbol и Variance должны быть скалярами.
Чтобы добавить белый Гауссов шум к входному сигналу:
Создайте comm.AWGNChannel Объекту и установите его свойства.
Вызывайте объект с аргументами, как будто это функция.
Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».
создает аддитивный канал белого Гауссова шума (AWGN) System object™, awgnchan = comm.AWGNChannelawgnchan. Затем этот объект добавляет белый Гауссов шум к действительному или комплексному входному сигналу.
создает объект канала AWGN, awgnchan = comm.AWGNChannel(Name,Value)awgnchan, с заданным свойством Name установить на заданную Value. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).
Если не указано иное, свойства являются нетронутыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируются, когда вы вызываете их, и release функция разблокирует их.
Если свойство настраивается, можно изменить его значение в любой момент.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.
NoiseMethod - Метод уровня шума'Signal to noise ratio (Eb/No)' (по умолчанию) | 'Signal to noise ratio (Es/No)' | 'Signal to noise ratio (SNR)' | 'Variance'Метод уровня шума, заданный как 'Signal to noise ratio (Eb/No)', 'Signal to noise ratio (Es/No)', 'Signal to noise ratio (SNR)', или 'Variance'. Для получения дополнительной информации смотрите Определение отклонения прямо или косвенно.
Типы данных: char
EbNo - Отношение энергии на бит к спектральной плотности степени шума10 (по умолчанию) | скалярный вектор | строкуОтношение энергии на бит к спектральной плотности степени шума (Eb/No) в децибелах, заданное как скалярный или 1-бай- N вектор C. N C - количество каналов.
Настраиваемый: Да
Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Eb/No)'.
Типы данных: double
EsNo - Отношение энергии на символ к спектральной плотности степени шума10 (по умолчанию) | скалярный вектор | строкуОтношение энергии на символ к спектральной плотности степени шума (Es/No) в децибелах, заданное как скалярный или 1-бай- N вектор C. N C - количество каналов.
Настраиваемый: Да
Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Es/No)'.
Типы данных: double
SNR - Отношение степени сигнала к степени шума10 (по умолчанию) | скалярный вектор | строкуОтношение степени сигнала к степени шума в децибелах, заданное как скалярный или 1-байт- N вектор C. N C - количество каналов.
Настраиваемый: Да
Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (SNR)'.
Типы данных: double
BitsPerSymbol - Количество битов на символ1 (по умолчанию) | положительное целое числоКоличество бит на символ, заданное как положительное целое число.
Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Eb/No)'.
Типы данных: double
SignalPower - Мощность входного сигнала1 (по умолчанию) | положительная скалярная величина | вектор-строкаВходной сигналв ваттах, заданная как положительный скаляр или 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
SamplesPerSymbol - Количество выборок на символ1 (по умолчанию) | положительное целое число | вектор-строкаКоличество выборок на символ, заданное в виде положительного целого числа или 1-байтового N вектора C. N C - количество каналов.
Это свойство применяется, когда NoiseMethod установлен в 'Signal to noise ratio (Eb/No)' или 'Signal to noise ratio (Es/No)'.
Типы данных: double
VarianceSource - Источник отклонения шума'Property' (по умолчанию) | 'Input port'Источник отклонения шума, заданный как 'Property' или 'Input port'.
Задайте VarianceSource на 'Property' чтобы задать значение отклонения шума с помощью свойства Дисперсия.
Задайте VarianceSource на 'Input port' задать значение отклонения шума с помощью входа в объект, когда вы вызываете его как функцию.
Для получения дополнительной информации смотрите Определение отклонения прямо или косвенно.
Это свойство применяется, когда NoiseMethod 'Variance'.
Типы данных: char
Variance - Белая Гауссово отклонение шума1 (по умолчанию) | положительная скалярная величина | вектор-строкаБелая Гауссова шумовое отклонение, заданная как положительный скаляр или 1-байт N вектор C. N C - количество каналов.
Настраиваемый: Да
Это свойство применяется, когда NoiseMethod установлен в 'Variance' и для параметра VarianceSource задано значение 'Property'.
Типы данных: double
RandomStream - Источник потока случайных чисел'Global stream' (по умолчанию) | 'mt19937ar with seed'Источник потока случайных чисел, заданный как 'Global stream' или 'mt19937ar with seed'.
Когда вы задаете RandomStream на 'Global stream'объект использует MATLAB® случайный поток по умолчанию для генерации случайных чисел. Чтобы сгенерировать воспроизводимые числа с помощью этого объекта, можно сбросить случайный поток MATLAB по умолчанию. Для примера reset(RandStream.getGlobalStream). Для получения дополнительной информации см. RandStream.
Когда вы задаете RandomStream на 'mt19937ar with seed'объект использует алгоритм mt19937ar для нормально распределенной генерации случайных чисел. В этом сценарии, когда вы вызываете reset функция, объект повторно инициализирует поток случайных чисел к значению Seed свойство. Можно сгенерировать воспроизводимые числа путем сброса объекта.
Для комплексного входного сигнала объект создает случайные данные следующим образом:
N S - количество выборок, а N C - количество каналов.Это свойство применяется, когда NoiseMethod установлен в 'Variance'.
Типы данных: char
Seed - Начальный seed67 (по умолчанию) | неотрицательное целое числоНачальное начальное число потока случайных чисел mt19937ar, заданное как неотрицательное целое число. Для каждого вызова на reset функция, объект повторно инициализирует поток случайных чисел mt19937ar в Seed значение.
Это свойство применяется, когда для RandomStream задано значение 'mt19937ar with seed'.
Типы данных: double
задает отклонение белого Гауссова шума. Этот синтаксис применяется, когда вы задаете значение NoiseMethod outsignal = awgnchan(insignal,var)'Variance' и VarianceSource к 'Input port'.
Для примера:
awgnchan = comm.AWGNChannel('NoiseMethod','Variance', ...
'VarianceSource','Input port');
var = 12;
...
outsignal = awgnchan(insignal,var);insignal - Входной сигналВходной сигнал, заданный как скаляр, N вектор S-элемента или N S-бай- N C матрица. N S - количество выборок, а N C - количество каналов.
Типы данных: double
Поддержка комплексного числа: Да
var - Отклонение аддитивного белого Гауссово шумаОтклонение аддитивного белого Гауссово шума, заданная как положительный скаляр или 1-байт N вектор C. N C - количество каналов, определяемое количеством столбцов в матрице входного сигнала.
outsignal - Выходной сигналВыходной сигнал, возвращенный с такими же размерностями, как insignal.
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj, используйте следующий синтаксис:
release(obj)
Создайте объект системы канала 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)

scatterplot(channelOutput)

Измените EbNo свойство до 10 дБ для увеличения шума.
channel.EbNo = 10;
Передайте модулированные данные через канал AWGN.
channelOutput = channel(modData);
Постройте график выхода канала. Можно увидеть эффекты повышенного шума.
scatterplot(channelOutput)

Передайте одноканальный и многоканальный сигнал через 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)

Сгенерируйте двухканальные входные данные и примените 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.
Создайте системный 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
Для незакодированных комплексных входных сигналов comm.AWGNChannel относится E b/ N 0, E s/ N 0 и ОСШ согласно этим уравнениям:
E s/ N 0 = N sps × SNR
E s/ N 0 = E b/ N 0 + 10log10 (k) в дБ
где
E s представляет энергию сигнала в джоулях.
E b представляет энергию битов в джоулях.
N 0 представляет шум степени спектральную плотность в ваттах/Гц.
N sps представляет количество выборок на символ, SamplesPerSymbol.
k представляет количество информационных бит на входной символ, BitsPerSymbol.
Для действительных входов сигнала comm.AWGNChannel относится E s/ N 0 и ОСШ согласно этому уравнению:
<reservedrangesplaceholder3> s / <reservedrangesplaceholder2> 0 = 0.5 (N SPS) × <reservedrangesplaceholder0>
Примечание
Все значения степени принимают номинальное сопротивление 1 Ом.
Уравнение для реального случая отличается от соответствующего уравнения для комплексного случая в 2 раза. В частности, объект использует шум степени спектральную плотность N 0/2 Вт/Гц для действительных входных сигналов от N 0 Вт/Гц для сложных сигналов.
Для получения дополнительной информации смотрите уровень шума канала AWGN.
Чтобы непосредственно задать отклонение шума, генерируемого comm.AWGNChannel, задайте VarianceSource как:
'Property', затем установите значение NoiseMethod равным 'Variance' и задайте отклонение со свойством «Дисперсия».
'Input port' затем задайте уровень отклонения для объекта как вход с входным параметром, var.
Чтобы косвенно задать отклонение, то есть вычислить ее по comm.AWGNChannel, задайте VarianceSource следующим 'Property' и NoiseMethod как:
'Signal to noise ratio (Eb/No)', где объект использует эти свойства для вычисления отклонения:
EbNo, отношение энергии битов к спектральной плотности степени шума
SignalPower, фактическая степень выборок входного сигнала
'Signal to noise ratio (Es/No)', где объект использует эти свойства для вычисления отклонения:
EsNo, отношение энергии сигнала к спектральной плотности степени шума
SignalPower, фактическая степень выборок входного сигнала
'Signal to noise ratio (SNR)', где объект использует эти свойства для вычисления отклонения:
ОСШ, отношение степени сигнала к степени шума
SignalPower, фактическая степень выборок входного сигнала
Изменение количества выборок на символ (SamplesPerSymbol) влияет на отклонение шума, добавляемого на выборку, что также вызывает изменение конечной частоты ошибок.
NoiseVariance = SignalPower × SamplesPerSymbol/10(EsNo)/10
Совет
Выберите количество выборок на символ в зависимости от того, что представляет собой символ и применяемую к нему избыточную дискретизацию. Для примера символ может иметь 3 бита и быть переизбран на 4. Для получения дополнительной информации смотрите уровень шума канала AWGN.
[1] Proakis, John G. Digital Communications. 4th Ed. McGraw-Hill, 2001.
Указания и ограничения по применению:
Смотрите Системные объекты в Генерации кода MATLAB (MATLAB Coder).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.