powermeter

Измерьте степень сигнала напряжения

Описание

The powermeter Система object™ вычисляет измерения мощности сигнала напряжения. Измерения мощности включают среднюю степень, пиковую степень и отношение пиковой степени к средней. Объект использует метод скользящего окна, чтобы вычислить эти измерения. Для получения дополнительной информации см. «Алгоритмы».

Для измерения степени сигнала напряжения:

  1. Создайте powermeter Объекту и установите его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

meter = powermeter(len) возвращает объект счетчика степени с WindowLength значение свойства установлено в len.

пример

meter = powermeter(Name,Value) возвращает объект счетчика степени с каждым заданным набором свойств заданное значение. Заключайте каждое имя свойства в кавычки. Можно использовать этот синтаксис с предыдущим входным параметром.

Свойства

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

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

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

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

Требуемое измерение мощности, заданное как одно из следующего:

  • 'Average power' (по умолчанию)

  • 'Peak power'

  • 'Peak-to-average power ratio'

  • 'All'

Для получения дополнительной информации о том, как объект вычисляет эти измерения, см. Алгоритмы.

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

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

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

Модули измерения значений степени, заданные как одно из следующего:

  • 'dBm'

  • 'dBW'

  • 'Watts'

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

Описание

пример

avgpwr = meter(x) вычисляет среднюю степень входного сигнала x когда Measurement для свойства задано значение 'Average power'. Каждый столбец x является независимым каналом. Объект вычисляет среднюю степень каждого канала входного сигнала независимо.

peakpwr = meter(x) вычисляет пиковую степень входного сигнала x когда Measurement для свойства задано значение 'Peak power'. Каждый столбец x является независимым каналом. Объект вычисляет пиковую степень каждого канала входного сигнала независимо.

papr = meter(x) вычисляет отношение пиковой и средней степени входного сигнала x когда Measurement для свойства задано значение 'Peak-to-average power ratio'. Каждый столбец x является независимым каналом. Объект вычисляет отношение пиковой и средней степени каждого канала входного сигнала независимо.

пример

[avgpwr,peakpwr,papr] = meter(x) вычисляет среднюю степень, пиковую степень и отношение пиковой степени к средней мощности входного сигнала x когда Measurement для свойства задано значение 'All'. Каждый столбец x является независимым каналом. Объект вычисляет измерения мощности каждого канала входного сигнала независимо.

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

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

Входной сигнал напряжения, заданный в виде вектора или матрицы и измеренный в вольтах. Если x является матрицей, каждый столбец рассматривается как независимый канал. Измерение мощности вычисляется вдоль каждого канала с помощью метода раздвижного окна.

Объект также принимает входы переменного размера. То есть, когда объект заблокирован, можно изменить размер каждого входного канала, но вы не можете изменить количество каналов.

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

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

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

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

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

Пиковая степень сигнала напряжения, возвращенная в виде вектора или матрицы и измеренная в модулях, определяемых PowerUnits свойство. Для получения дополнительной информации о том, как объект вычисляет пиковую степень, смотрите Peak Power.

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Вычислите измерения мощности зашумленного синусоидального сигнала с помощью счетчика степени. Эти измерения включают среднюю степень, пиковую степень и отношение пиковой степени к средней.

Предположим, что максимальное напряжение сигнала составляет 100 В. Мгновенные значения синусоидальной формы волны заданы уравнением Vi=Vmax×sin(2πft), гдеVi - текущее значение, Vmax является максимальным напряжением сигнала, и f - частота сигнала в Гц.

Инициализация

Входной сигнал является суммой двух синусоид с частотами, установленными на 1 кГц и 10 кГц соответственно. Длина системы координат и частота дискретизации сгенерированного сигнала составляют 512 выборки и 44,1 кГц, соответственно.

Чтобы измерить степень в этом сигнале, создайте powermeter объект. Задайте 'Measurement' на 'All'. Эта настройка позволяет объекту измерить среднюю степень, пиковую степень и отношение пиковой степени к средней. Установите длину скользящего окна равным 16 выборкам, а ссылку равной 50 Ohms. Используйте этот объект для измерения степени в dBm модулей. Визуализируйте измерения мощности с помощью timescope объект.

FrameLength = 512;
Fs = 44.1e3;
A = 100;
sine1 = dsp.SineWave('Amplitude',A,'Frequency',1e3,'SampleRate',44.1e3,'SamplesPerFrame',FrameLength);
sine2 = dsp.SineWave('Amplitude',A,'Frequency',10e3,'SampleRate',44.1e3,'SamplesPerFrame',FrameLength);
pm  = powermeter(16, 'Measurement', 'All', ...
                     'ReferenceLoad', 50, ...
                     'PowerUnits', 'dBm');
scope  = timescope('NumInputPorts',4,'SampleRate',Fs,...
                   'TimeSpanSource','property',...
                   'TimeSpan',96,...
                   'YLabel','dBm',...
                   'YLimits',[-30 90]);
title = 'Power Measurements';
scope.ChannelNames = {'Average power','Peak power','Peak-to-average power ratio','Expected Average Power'};
scope.Title = title;

Вычислите измерения мощности

Добавьте средний белый Гауссов шум со стандартным отклонением 0,001 к сумме синусоид. Варьируйте амплитуду синусоид. Измерьте среднюю степень, пиковую степень и отношение пиковой степени к средней для этого шумного синусоидального сигнала, который имеет изменяющуюся амплитуду. Для получения дополнительной информации о том, как объект измеряет эти значения степени, см. Алгоритмы. Сравните измеренные значения с ожидаемым значением средней степени.

Ожидаемое значение средней степени P шумного синусоидального сигнала задается следующим уравнением.

P=A122R+A222R+var(noise),

где,

  • A1 - амплитуда первого синусоидального сигнала.

  • A2 - амплитуда второго синусоидального сигнала.

  • R - ссылка нагрузка в Омсе.

В dBmожидаемая степень вычисляется с помощью следующего уравнения:

expPwrdBm=10log10(P)+30.

Сравните ожидаемое значение со значением, вычисленным объектом. Все значения указаны в dBm. Эти значения очень близко совпадают. Для проверки просмотрите вычисленные измерения с помощью timescope объект.

Vect = [1/8 1/2 1 2 1 1/2 1/8 1/16 1/32];
for index = 1:length(Vect)
    V = Vect(index);
    for i = 1:1000
        x = V*sine1()+V*sine2()+0.001.*randn(FrameLength,1);
        P = (((V*A)^2)/100)+(((V*A)^2)/100)+(0.001)^2;
        expPwr = (10*log10(P)+30)*ones(FrameLength,1);
        [avgPwr,pkPwr,papr] = pm(x);
        scope(avgPwr,pkPwr,papr,expPwr);
    end
end

Алгоритмы

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

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

.
Введенный в R2021a