exponenta event banner

timescope

Отображение сигналов временной области

Описание

timescope объект отображает сигналы во временной области.

The scope window shown with data cursors.

Функции области:

  • Курсоры данных - измерение значений сигналов с помощью вертикальных и горизонтальных курсоров.

  • Статистика сигнала - отображение максимальных, минимальных, пиковых разностей, средних, медианных и среднеквадратичных значений выбранного сигнала.

  • Пиковый поиск (Peak Finder) - поиск максимумов, показывающих значения по оси X, при которых они возникают.

  • Двухуровневые измерения (Bilevel Measurements) - измерение переходов, перегрузок, недоработок и циклов.

  • Триггеры - установка триггеров для синхронизации повторяющихся сигналов и приостановка отображения при возникновении событий.

Используйте Функции объекта (Object Functions), чтобы показать, скрыть и определить видимость окна области.

Создание

Описание

пример

scope = timescope возвращает timescope объект, scope. Этот объект отображает сигналы с плавающей и фиксированной точками в реальном и комплексном значениях во временной области.

scope = timescope(Name,Value) возвращает timescope с заданными свойствами. Укажите свойства и их значения в кавычках, разделенных запятыми. Можно указать аргументы пары имя-значение в любом порядке.

Свойства

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

Большинство свойств можно изменить из timescope ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС.

Часто используется

Частота дискретизации входного сигнала в герцах, заданная как конечный числовой скаляр или вектор скаляров.

Обратная частота дискретизации определяет расстояние по оси X (оси времени) между точками в отображаемом сигнале. Когда значение NumInputPorts больше 1 и частота дискретизации является скалярной, объект использует одинаковую частоту дискретизации для всех входов. Чтобы задать различные частоты дискретизации для каждого ввода, используйте вектор.

Это свойство можно задать только при создании объекта или после вызова release.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Данные и оси (Data and Axes) задайте Скорость выборки (Sample Rate).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

  • 'property' - Объект извлекает пределы по оси X из TimeDisplayOffset и TimeSpan свойства.

  • 'auto' - Пределы по оси X получаются из TimeDisplayOffset собственность, SampleRate и количество строк в каждом входном сигнале (FrameSize в уравнениях ниже). Предельные значения рассчитываются следующим образом:

    • Минимальный предел по оси времени = TimeDisplayOffset

    • Максимальное ограничение по оси времени = TimeDisplayOffset + max(1/SampleRate.*FrameSize)

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Данные и оси (Data and Axes) задайте Временной интервал (Time Span).

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

Временной интервал в секундах, заданный как положительное числовое скалярное значение. Пределы по оси времени рассчитываются следующим образом:

  • Минимальный предел по оси времени = TimeDisplayOffset

  • Максимальное ограничение по оси времени = TimeDisplayOffset + TimeSpan

Зависимости

Чтобы включить это свойство, установите TimeSpanSource кому 'property'.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе «Данные и оси» измените временной интервал.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Укажите способ отображения в области новых данных за пределами видимого интервала времени:

  • 'scroll' - В этом режиме область прокручивает старые данные влево, чтобы освободить место для новых данных справа от экрана области. Этот режим полезен для отладки и контроля изменяющихся во времени сигналов.

  • 'wrap' - В этом режиме область добавляет данные слева от графика после переполнения правого графика.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Данные и оси (Data and Axes) задайте Действие переполнения (Overrun Action).

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

Тип графика, указанный как:

  • 'line' - Линейный график, аналогичный line или plot функция.

  • 'stairs' - График лестничного шага, аналогичный stairs функция. Графики лестничных шагов полезны для построения графиков истории времени для данных с цифровой выборкой.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Данные и оси (Data and Axes) задайте Тип печати (Plot Type).

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

Если для этого свойства установлено значение:

  • 'onceatstop' - Лимиты обновляются один раз в конце моделирования (когда release называется).

  • 'auto' - Область всегда пытается сохранить данные на дисплее, минимизируя количество обновлений в пределах осей.

  • 'manual' - Область действия не выполняется, если не указано пользователем.

  • 'updates' - Область масштабирует оси один раз и только один раз после 100 обновлений визуализации.

Это свойство можно задать только при создании объекта.

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

Расширенный

Задайте размеры разметочной сетки как двухэлементный вектор: [numberOfRows,numberOfColumns]. Сетка может содержать максимум 4 строки и 4 столбца.

При создании сетки из нескольких осей для изменения настроек отдельных осей используйте ActiveDisplay.

Пример: scope.LayoutDimensions = [2,4]

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Показать сетку (Display Grid) () и выберите определенное количество строк и столбцов в сетке.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Укажите единицы измерения, используемые для описания оси X (временной оси). Можно выбрать один из следующих вариантов:

  • 'seconds' - Область всегда отображает единицы измерения по оси X в секундах. В области отображается словоTime(s) на оси X.

  • 'none' - В области не отображаются единицы измерения по оси X. В области отображается только слово Time на оси X.

  • 'metric' - В области отображаются единицы измерения по оси X как Time (s) изменение единиц измерения на день, недели, месяцы или годы при построении дополнительных точек данных.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Данные и оси (Data and Axes) задайте Единицы времени (Time Units).

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

Укажите в секундах расстояние перемещения данных по оси X. Значение сигнала не изменяется, изменяются только пределы, отображаемые на оси X.

Если это свойство указано как скаляр, то это значение является смещением отображения времени для всех каналов. Если задать это свойство в качестве вектора, каждый входной канал может иметь различное смещение отображения времени

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Данные и оси (Data and Axes) задайте значение Смещение по времени (Time Offset)

Метки оси времени, указанные как:

  • 'all' - Метки оси времени отображаются на всех экранах.

  • 'bottom - Метки оси времени отображаются в нижней части каждого столбца.

  • 'none' - Метки не отображаются ни на одном экране.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Данные и оси (Data and Axes) задайте Метки времени (Time Labels).

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

Укажите, следует ли отображать область в режиме максимизированных осей. В этом режиме оси разворачиваются, чтобы вписаться во весь экран. Для экономии места метки отображаются не на каждом экране. Вместо этого деления и их значения отображаются поверх выводимых на печать данных. Можно выбрать один из следующих вариантов:

  • 'auto' - Оси отображаются развернутыми на всех экранах только в том случае, если Title и YLabel для каждого экрана свойства пусты. Если ввести какое-либо значение для любого из этих свойств, оси не будут развернуты.

  • 'on' - Оси отображаются на всех экранах с максимумом. Любые значения, введенные в Title и YLabel свойства скрыты.

  • 'off' - Ни одна из осей не выглядит развернутой.

Использование пользовательского интерфейса

В окне области щелкните, чтобы развернуть оси, скрывая все метки и вставляя значения осей.

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

Укажите длину буфера, используемого для каждого входного сигнала, как положительное целое число.

Это свойство можно задать только при создании объекта.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Данные и оси (Data and Axes) установите значение Длина буфера (Buffer Length).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Визуализация

Укажите имя области как вектор символа или скаляр строки. Это имя отображается как заголовок окна рисунка области. Чтобы задать заголовок графика области, используйте команду Title собственность.

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

Положение окна области в пикселях, определяемое размером и расположением окна области в виде четырехэлементного вектора формы [left bottom width height]. Можно поместить окно области в определенное положение на экране, изменив значения этого свойства.

По умолчанию окно отображается в центре экрана шириной 800 пикселы и высота 500 пикселы. Точные значения положения зависят от разрешения экрана.

Укажите имена входных каналов как массив ячеек символьных векторов. Имена каналов отображаются в легенде и на вкладке Измерения (Measurements) в разделе Выбор канала (Select Channel). Если имена не указаны, каналы помечаются как Channel 1, Channel 2и т.д.

Зависимость

Чтобы включить это свойство, установите ShowLegend кому true.

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

Активный дисплей, используемый для установки свойств, определяемых целочисленным отображаемым номером. Номер дисплея соответствует индексу размещения дисплея по строкам. Установка этого свойства определяет, какое отображение используется для следующих свойств: YLimits, YLabel, ShowLegend, ShowGrid, Title, и PlotAsMagnitudePhase.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Отображение и метки (Display and Labels) установите значение Активное отображение (Active Display).

Укажите заголовок отображения в виде символьного вектора или строкового скаляра.

Зависимость

При установке этого свойства ActiveDisplay управляет обновленным отображением.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Отображение и метки (Display and Labels) задайте Заголовок (Title).

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

Укажите текст области для отображения слева от оси Y.

Зависимости

Это свойство применяется только в том случае, если PlotAsMagnitudePhase является false. Когда PlotAsMagnitudePhase является true, две метки оси Y являются значениями только для чтения "Magnitude" и "Phase"для графика величины и фазового графика соответственно.

При установке этого свойства ActiveDisplay управляет обновленным отображением.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Отображение и метки (Display and Labels) задайте значение YLabel.

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

Задайте пределы оси Y в виде двухэлементного числового вектора. [ymin, ymax].

  • Если PlotAsMagnitudePhase является false, значение по умолчанию - [-10,10].

  • Если PlotAsMagnitudePhase является true, значение по умолчанию - [0,10]. Это свойство задает пределы оси Y только для графика величины. Пределы по оси Y фазового графика всегда [-180,180]

Зависимость

При установке этого свойства ActiveDisplay управляет обновленным отображением.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Отображение и метки (Display and Labels) задайте Пределы оси Y (Y-Axis Limits).

Чтобы отобразить легенду с входными именами, задайте для этого свойства значение true.

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

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе «Отображение и метки» выберите «Показать легенду».

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

Установить для этого свойства значение true отображение линий сетки на графике.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе «Отображение и метки» выберите «Показать сетку».

Постройте график сигнала как величины и фазированного, заданного как:

  • true - Область применения отображает величину и фазу входного сигнала на двух отдельных осях в пределах одного активного дисплея.

  • false - Область действия отображает действительную и мнимую части входного сигнала на двух отдельных осях в пределах одного активного дисплея.

Это свойство полезно для комплексных входных сигналов. Включение этого свойства влияет на фазу для действительных входных сигналов. Когда амплитуда входного сигнала неотрицательна, фаза равна 0 градусам. Когда амплитуда входного сигнала отрицательная, фаза составляет 180 градусов.

Использование пользовательского интерфейса

На вкладке Область (Scope) щелкните Параметры (Settings). В разделе Отображение и метки (Display and Labels) выберите График фазы величины (Magnitude Phase Plot

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

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

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

Примеры

свернуть все

Создайте синусоидальный сигнал временной области. Отображение сигнала путем вызова объекта временной области.

Создайте синусоидальный сигнал с двумя тонами, один с частотой 0,3 кГц, а другой с частотой 3 кГц.

t = (0:1000)'/8e3;
xin = sin(2*pi*0.3e3*t)+sin(2*pi*3e3*t);

Создать timescope объект и просмотр синусоидального сигнала путем вызова объекта временной области scope.

scope = timescope('SampleRate', 8e3,...
    'TimeSpanSource', 'property', ...
    'TimeSpan', 0.1);
scope(xin)

Управляемый release позволяет изменять значения свойств и входные характеристики. Область автоматически масштабирует оси.

release(scope);

Скрыть окно области.

if(isVisible(scope))
    hide(scope)
end

Отображение окна области.

if(~isVisible(scope))
    show(scope)
end

Создание и отображение входного синхросигнала

Загрузите данные синхросигнала, x и t. Найдите время образца, ts.

load clockex
ts = t(2)-t(1);

Создать timescope и вызовите объект для отображения сигнала. Для автоматического масштабирования осей и включения изменений значений свойств и входных характеристик вызовите release.

scope = timescope(1,1/ts,'TimeSpanSource','Auto');
scope(x);
release(scope);

Использование панели «Измерения уровня» для поиска времени настройки

1. На вкладке Измерения (Measurements) выберите Аберрации (Aberrations).

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

2. В поле «Параметры билевела» > «Отрегулировать поиск» введите 2e-6 и нажмите Enter.

Область времени теперь отображает растущее значение времени настройки, равное 118.392 ns.

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

3. Наведите курсор на правый верхний угол осей области и нажмите кнопку зумирования.

4. Щелкните и перетащите, чтобы увеличить изображение одного из переходов.

Time Scope обновляет растущее значение Settling Time для отражения нового временного окна.

Создать dsp.SineWave с частотой дискретизации 1000 Гц. Создать dsp.FIRDecimator объект для прореживания синусоидальной волны на 2. Создать timescope объект с двумя портами ввода.

Fs = 1000;  % Sampling frequency
sine = dsp.SineWave('Frequency',50,...
   'SampleRate',Fs, ...
   'SamplesPerFrame',100);
decimate = dsp.FIRDecimator; % To decimate sine by 2
scope = timescope(2,[Fs Fs/2], ...
   'TimeDisplayOffset',[0 38/Fs], ...
   'TimeSpanSource','Property',...
   'TimeSpan',0.25, ...
   'YLimits',[-1 1], ...
   'ShowLegend', true);

Позвоните в dsp.SineWave объект для создания синусоидального сигнала. Используйте dsp.FIRDecimator объект для создания второго сигнала, который равен исходному сигналу, но прорежен коэффициентом 2. Отображение сигналов путем вызова timescope объект.

for ii = 1:2
     xsine = sine();
     xdec = decimate(xsine);
     scope(xsine,xdec)
end
release(scope)

Закройте окно Временная область (Time Scope) и очистите переменные.

clear scope Fs sine decimate ii xsine xdec

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

fs = 1000;
t = (0:1/fs:10)';
CxSine = cos(2*pi*0.2*t) + 1i*sin(2*pi*0.2*t);
CxSineSum = cumsum(CxSine);
scope = timescope(1,fs,'TimeSpanSource','Auto','ShowLegend',1);
scope(CxSineSum);
release(scope)

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

Изменить PlotAsMagnitudePhase свойство для true и звонить release.

scope.PlotAsMagnitudePhase = true;
scope(CxSineSum);
release(scope)

Теперь Time Scope отображает величину и фазу входного сигнала на двух отдельных осях в пределах одного активного дисплея. Верхние оси отображают величину, а нижние - фазу в градусах.

В этом примере показано, как timescope объект визуализирует входные данные, изменяющие размеры на полпути.

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

fs = 10;
sigdim2 = [ones(5*fs,1) 1+ones(5*fs,1)];                   % 2-dim 0-5 s
sigdim3 = [2+ones(5*fs,1) 3+ones(5*fs,1) 4+ones(5*fs,1)];  % 3-dim 5-10 s
scope = timescope('SampleRate',fs,'TimeSpanSource','Property');
scope.PlotType = 'Stairs';
scope.TimeSpanOverrunAction = 'Scroll';
scope.TimeDisplayOffset = [0 5];
scope([sigdim2; sigdim3(:,1:2)], sigdim3(:,3));

В этом примере размер входного сигнала во временной области изменяется по мере выполнения моделирования. Если время моделирования составляет менее 5 секунд, то Time Scope отображает только двухканальный сигнал, sigdim2. Через 5 секунд Time Scope также отображает трехканальный сигнал, sigdim3.

Запустить release способ обеспечения возможности изменения значений свойств и входных характеристик. Область автоматически масштабирует оси.

release(scope)

Для измерения частоты сердечных сокращений используйте панель «Поиск пиков» в области времени.

Создание и отображение сигнала ЭКГ

Создайте сигнал электрокардиограммы (ЭКГ). Обычай ecg функция помогает генерировать сигнал пульса.

function x = ecg(L)
a0 = [0,  1, 40,  1,   0, -34, 118, -99,   0,   2,  21,   2,   0,   0,   0];
d0 = [0, 27, 59, 91, 131, 141, 163, 185, 195, 275, 307, 339, 357, 390, 440];
a = a0 / max(a0);
d = round(d0 * L / d0(15));
d(15) = L;
for i = 1:14
    m = d(i) : d(i+1) - 1;
    slope = (a(i+1) - a(i)) / (d(i+1) - d(i));
    x(m+1) = a(i) + slope * (m - d(i));
end

x1 = 3.5*ecg(2700).';
y1 = sgolayfilt(kron(ones(1,13),x1),0,21);
n = (1:30000)';
del = round(2700*rand(1));
mhb = y1(n + del);
ts = 0.00025;

Создать timescope и вызовите объект для отображения сигнала. Для автоматического масштабирования осей и включения изменений значений свойств и входных характеристик вызовите release.

scope = timescope(1,1/ts);
scope(mhb);
release(scope)

Найти частоту сердечных сокращений

Используйте измерения Peak Finder для измерения времени между ударами сердца.

  1. На вкладке Измерения (Measurements) выберите Поиск пиков (Peak Finder).

  2. Для свойства «Значения пиков» введите 10.

На панели «Пики» в нижней части окна в области времени отображается список из десяти значений пиковой амплитуды и времени их возникновения.

Список пиковых значений показывает постоянную разность во времени 0,675 секунды между каждым контрольным сигналом. Основываясь на следующем уравнении, частота сердечных сокращений этого ЭКГ-сигнала составляет около 89 ударов в минуту.

$$\frac{60 \textrm{ s/min}}{0.675 \textrm{ s/beat}} = 88.89 \textrm{ bpm}$$

Закройте окно Область времени (Time Scope) и удалите переменные, созданные в рабочей области.

clear scope x1 y1 n del mhb ts
Представлен в R2020a