exponenta event banner

powermeter

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

Описание

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 собственность. Дополнительные сведения о том, как объект вычисляет пиковую мощность, см. в разделе Пиковая мощность.

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

Предположим, что максимальное напряжение сигнала равно 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 = A122R + A222R + var (шум),

где,

  • 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