comm.PhaseNoise

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

Описание

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

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

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

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

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

Создание

Описание

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

пример

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

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в 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-by-M числовая матрица. N S является количеством отсчетов, и M является количеством каналов.

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

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

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

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

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

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием 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)

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

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

Инициализируйте переменные для симуляции.

fc = 1e6; % Carrier frequency in Hz
fs = 4e6; % Sample rate in Hz.
phNzLevel = [-85 -118 -125 -145]; % in dBc/Hz
phNzFreqOff = [1e3 9.5e3 19.5e3 195e3]; % in Hz
Nspf = 6e6; % Number of Samples per frame
freqSpan = 400e3; % in Hz, for spectrum computation

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

sinewave = dsp.SineWave('Amplitude',1, ...
    'Frequency',fc, ...
    'SampleRate',fs, ...
    'SamplesPerFrame',Nspf, ...
    'ComplexOutput',true);
pnoise = comm.PhaseNoise('Level',phNzLevel, ...
    'FrequencyOffset',phNzFreqOff, ...
    'SampleRate',fs);
spectrumscopeRBW1 = dsp.SpectrumAnalyzer( ...
    'NumInputPorts',2, ...
    'SampleRate',fs, ...
    'FrequencySpan','Span and center frequency', ...
    'CenterFrequency',fc, ...
    'Span',freqSpan, ...
    'RBWSource','Property', ...
    'RBW',1, ...
    'SpectrumType','Power density', ...
    'SpectralAverages',10, ...
    'SpectrumUnits','dBW', ...
    'YLimits',[-150 10], ...
    'Title','Resolution Bandwidth 1 Hz', ...
    'Position',[79 147 605 374]);
spectrumscopeRBW10 = dsp.SpectrumAnalyzer( ...
    'NumInputPorts',2, ...
    'SampleRate',fs, ...
    'FrequencySpan','Span and center frequency', ...
    'CenterFrequency',fc, ...
    'Span',freqSpan, ...
    'RBWSource','Property', ...
    'RBW',10, ...
    'SpectrumType','Power density', ...
    'SpectralAverages',10, ...
    'SpectrumUnits','dBW', ...
    'YLimits',[-150 10], ...
    'Title','Resolution Bandwidth 10 Hz', ...
    'Position',[685 146 605 376]);

Чтобы анализировать спектр и шум фазы, пример включает два спектра объекты анализатора, с полосами пропускания разрешения на 10 Гц и на 1 Гц, соответственно. Спектр объекты анализатора использует Hann по умолчанию установка работы с окнами, модули установлены в dBW/Hz, и номер спектральных средних значений определяется к 10.

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

Когда полоса пропускания разрешения составляет 1 Гц, dBW/Hz просмотрите для спектра, который анализатор показывает тону в 0 dBW/Hz. Спектр объект анализатора корректирует для эффекта распространения степени работы с окнами Hann. Результаты показывают, что визуальное среднее значение шума фазы совпадает с заданным спектром шума фазы.

spectrumscopeRBW1(x,y)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object with title Resolution Bandwidth 1 Hz contains 2 objects of type line. These objects represent Channel 1, Channel 2.

Когда полоса пропускания разрешения составляет 10 Гц, dBW/Hz просмотрите для спектра, который анализатор показывает тону в-10 dBW/Hz. Тональная энергия синусоиды теперь распространена через 10 Гц вместо 1 Гц, таким образом, синусоида уровень PSD уменьшает на 10 дБ. С полосой пропускания разрешения на уровне 10 Гц визуальное среднее значение шума фазы все еще достигает шума фазы, заданного объектом шума фазы.

С полосой пропускания разрешения, увеличенной от 1 Гц до 10 Гц, спектр, который объект анализатора все еще корректирует для эффекта распространения степени окна Hann, и это достигает лучшего спектрального усреднения с более широкой полосой пропускания разрешения. Для получения дополнительной информации смотрите Почему Windows Использования?

spectrumscopeRBW10(x,y)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object with title Resolution Bandwidth 10 Hz contains 2 objects of type line. These objects represent Channel 1, Channel 2.

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

ph_err = unwrap(angle(y) - angle(x));
rms_ph_nz_deg = rms(ph_err)*180/pi();
sprintf('The computed RMS phase noise is %3.2f degrees.\n', ...
    rms_ph_nz_deg)
ans = 
    'The computed RMS phase noise is 0.18 degrees.
     '

Алгоритмы

Выходной сигнал, 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