comm.PhaseNoise

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

Описание

The 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 Использование Системных объектов.

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

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

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

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

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

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

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

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

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

Зависимости

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

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

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

Синтаксис

Описание

пример

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

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

расширить все

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

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

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

расширить все

Выходной сигнал, возвращенный как N вектор S-на-1 комплексных значений. 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)

Figure Scatter Plot contains an axes. The axes 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]; % Phase noise level in dBc/Hz
phNzFreqOff = [1e3 9.5e3 19.5e3 195e3]; % Phase noise frequency offset in Hz
Nspf = 6e6; % Number of Samples per frame
freqSpan = 400e3; % Frequency span 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]);

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

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

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

spectrumscopeRBW1(x,y)

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

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

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

spectrumscopeRBW10(x,y)

Figure Spectrum Analyzer contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes 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 = x k ejφk, где φ k - фазовый шум. Шум фазы фильтруется Гауссовым шумом таким образом, что φ k = f (n k), где n k - шумовая последовательность, а f представляет собой операцию фильтрации.

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

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

  • Для вектора смещения частоты и фазы спецификации уровня шума конечной импульсной характеристики фильтр вычисляет маску спектра. Маска спектра интерполирована через лог10 (f). Он плоский от постоянного тока до самого низкого смещения частоты, и от самого высокого смещения частоты до половины частоты дискретизации.

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

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

λ=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 с/2. Разрешение частоты равно fs2(1Nt), где N t - количество коэффициентов, и является степенью на 2 меньше или равной 216. Если N t < 28используется конечная импульсная характеристика временного интервала. В противном случае используется конечная импульсная характеристика частотного диапазона.

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

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

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

  • Максимальное количество ответвлений конечной импульсной характеристики фильтра 216.

Ссылки

[1] Kasdin, N. J., "Discrete Simulation of Colored Noise and Stochastic Processes and 1/( f ^ alpha); Генерация шума по закону о степени ". Материалы IEEE. Том 83, № 5, май 1995, стр 802-827.

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

.

См. также

Объекты

Блоки

Введенный в R2012a