comm.PhaseNoise

Примените шум фазы к сгенерированному модулированному сигналу

Описание

comm.PhaseNoise Система object™ добавляет шум фазы в комплексный сигнал. Этот объект эмулирует нарушения, введенные локальным генератором передатчика радиосвязи или получателя. Объект генерирует отфильтрованный шум фазы согласно заданной спектральной маске и добавляет его во входной сигнал. Для описания моделирования шума фазы см. Алгоритмы.

Добавить шум фазы использование comm.PhaseNoise объект:

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

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

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

Создание

Описание

phznoise = comm.PhaseNoise создает Системный объект шума фазы со значениями свойств по умолчанию.

пример

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

phznoise = comm.PhaseNoise(level,offset,samplerate) создает объект шума фазы с уровнем шума фазы, смещением частоты и свойствами частоты дискретизации, заданными в качестве аргументов только для значения. При определении аргумента только для значения необходимо задать все предыдущие аргументы только для значения.

Свойства

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

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

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

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

Уровень шума фазы в децибелах относительно поставщика услуг на герц (дБн/Гц) в виде вектора отрицательных скаляров. Level и FrequencyOffset свойства должны иметь ту же длину.

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

Частота возмещена в Гц в виде вектора положительных значений увеличения. Level и FrequencyOffset свойства должны иметь ту же длину.

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

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

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

Источник случайного потока в виде 'Global stream' или 'mt19937ar with seed'.If RandomStream установлен в 'mt19937ar with seed', mt19937ar алгоритм используется в нормально распределенной генерации случайных чисел, в этом случае метод сброса повторно инициализирует поток случайных чисел к значению Seed свойство.

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

Начальный seed для RandomStreamВ виде положительной скалярной величины меньше чем 232.

Зависимости

Чтобы включить это свойство, установите RandomStream к 'mt19937ar with seed'.

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

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

Синтаксис

Описание

пример

out = phznoise(in) добавляет шум фазы, заданный phznoise Системный объект, к входному сигналу. Результат возвращен в out.

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

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

Входной сигнал в виде вектора S-1 N комплексных чисел. N S является количеством выборок.

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Добавьте вектор шума фазы и вектор смещения частоты к 16-QAM сигналу. Затем постройте сигнал.

Создайте Системный объект шума фазы.

pnoise = comm.PhaseNoise('Level',-50,'FrequencyOffset',20);

Сгенерируйте модулируемые символы.

M = 16; % From 16-QAM
data = randi([0 M-1],1000,1);
modData = qammod(data,M);

Используйте pnoise применять шум фазы. Отобразите данные, которым повреждают на графике.

y = pnoise(modData);
scatterplot(y)

Создайте генератор синусоиды, имеющий несущую частоту 100 Гц, частоту дискретизации 1 000 Гц и формат кадра 10 000 выборок.

sinewave = dsp.SineWave('Frequency',100,'SampleRate',1000, ...
    'SamplesPerFrame',1e4,'ComplexOutput',true);

Создайте объект шума фазы. Задать уровень шума фазы, чтобы быть? 40 дБн/Гц для смещения на 100 Гц и? 70 дБн/Гц для смещения на 200 Гц.

pnoise = comm.PhaseNoise('Level',[-40 -70],'FrequencyOffset',[100 200], ...
    'SampleRate',1000);

Создайте спектр анализатор.

spectrum = dsp.SpectrumAnalyzer('NumInputPorts',2,'SampleRate',1000, ...
    'SpectralAverages',10,'PowerUnits','dBW');

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

x = sinewave();
y = pnoise(x);

spectrum(x,y)

Шум фазы? 40 dBW в ±100 Гц поставщика услуг. Шум фазы? На 70 дБ ниже поставщика услуг для смещений, больше, чем 200 Гц.

Алгоритмы

Выходной сигнал, y k, связан, чтобы ввести последовательность x k y k=xkejφk, где φ k является шумом фазы. Шум фазы отфильтрован Гауссов шум, таким образом, что φ k=f (n k), где n k является шумовой последовательностью и f, представляет операцию фильтрации.

Чтобы смоделировать шум фазы, задайте характеристику маски плотности спектра мощности (PSD) путем определения скалярных или векторных значений для смещения частоты и уровня шума фазы.

  • Для скалярного смещения частоты и спецификации уровня шума фазы, БИХ-цифровой фильтр вычисляет маску спектра. Маска спектра имеет 1/f характеристику, которая проходит через заданную точку.

  • Для векторного смещения частоты и спецификации уровня шума фазы, КИХ-фильтр вычисляет маску спектра. Маска спектра интерполирована через log10 (f). Это плоско от DC до самого низкого смещения частоты, и от самого высокого смещения частоты до половины частоты дискретизации.

БИХ-цифровой фильтр

Для БИХ-цифрового фильтра коэффициент числителя

λ=2πfoffset10L/10,

где смещение f является смещением частоты в Гц, и L является уровнем шума фазы в дБн/Гц. Коэффициенты знаменателя, γ i, рекурсивно определяются как

γi=(i2.5)γi1i1,

где γ 1 = 1, i = {1, 2..., N t}, и N t является количеством коэффициентов фильтра. N t является степенью 2 от 27 к 219. Значение N t растет, когда смещение шума фазы уменьшается к 0 Гц.

КИХ-фильтр

Для КИХ-фильтра уровень шума фазы определяется через log10 (f) интерполяция для смещений частоты в области значений [df, f s / 2], где df является разрешением частоты, и f s является частотой дискретизации. Шум фазы является плоским от 0 Гц до самого маленького смещения частоты, и от самого большого смещения частоты до f s / 2. Разрешение частоты равно fs2(1Nt), где N t является количеством коэффициентов и является степенью 2 меньше чем или равных 216. Если N t <28, КИХ-фильтр области времени используется. В противном случае КИХ-фильтр частотного диапазона используется.

Алгоритм увеличивает N t, пока эти условия не соблюдают:

  • Разрешение частоты меньше минимального значения вектора смещения частоты.

  • Разрешение частоты меньше минимального различия между двумя последовательными частотами в векторе смещения частоты.

  • Максимальным количеством КИХ-касаний фильтра является 216.

Ссылки

[1] Kasdin, N. J. "Дискретная Симуляция Цветных Шумовых и Стохастических процессов и 1 / (f^alpha); Генерация Шума Закона о Степени". Продолжения IEEE. Издание 83, № 5, май 1995, стр 802–827.

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

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

Объекты

Блоки

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