timescope

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

Описание

timescope отображения объекта сигнализируют во временном интервале.

The scope window shown with data cursors.

Функции осциллографа:

  • Data Cursor — значения сигналов Меры с помощью вертикальных и горизонтальных курсоров.

  • Статистика сигнала — Отображение максимум, минимум, различие от пика к пику, среднее значение, медиана и значения RMS выбранного сигнала.

  • Пиковое Средство поиска — Находит максимумы, показывая x - значения оси, в которых они происходят.

  • Двухуровневые Измерения — переходы Меры, перерегулирования, отклонения от номинала и циклы.

  • Триггеры — Набор инициировал, чтобы синхронизировать повторяющиеся сигналы и приостановить отображение, когда события имеют место.

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

Создание

Описание

пример

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

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

Свойства

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

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

Часто используемый

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

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

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

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

На вкладке 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 + макс. (1/SampleRate.*FrameSize)

Зависимость

Когда вы устанавливаете TimeSpan свойство, TimeSpanSource автоматически установлен в 'property'.

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

На вкладке Scope нажмите Settings. Под Data and Axes, набор Time Span.

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

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

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

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

Зависимости

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

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

На вкладке Scope нажмите Settings. Под Data and Axes, редактирование Time Span.

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

Задайте, как осциллограф отображает новые данные вне видимого отрезка времени как также:

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

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

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

На вкладке Scope нажмите Settings. Под Data and Axes, набор Overrun Action.

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

Тип графика в виде также:

  • 'line' — Линейный график, похожий на line или plot функция.

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

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

На вкладке 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

На вкладке 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

На вкладке Scope нажмите Settings. Под Data and Axes, набор Time Units.

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

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

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

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

На вкладке Scope нажмите Settings. Под Data and Axes, набор Time Offset.

Ось времени помечает в виде:

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

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

  • 'none' — Никакие метки не появляются ни в каком отображении.

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

На вкладке Scope нажмите Settings. Под Data and Axes, набор Time Labels.

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

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

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

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

  • 'off' — Ни одна из осей не кажется максимизируемой.

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

На окне scope нажмите, чтобы максимизировать оси, скрыв все метки и вставив значения осей.

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

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

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

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

На вкладке Scope нажмите Settings. Под Data and Axes, набор Buffer Length.

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

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

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

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

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

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

Задайте входные названия канала как массив ячеек из символьных векторов. Названия канала появляются в легенде, и на вкладке Measurements под Select Channel. Если вы не задаете имена, каналы помечены как Channel 1, Channel 2, и т.д.

Зависимость

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

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

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

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

На вкладке Scope нажмите Settings. Под Display and Labels, набор Active Display.

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

Зависимость

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

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

На вкладке Scope нажмите Settings. Под Display and Labels, набор Title.

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

Задайте текст для осциллографа, чтобы отобразиться слева от y - ось.

Зависимости

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

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

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

На вкладке 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

На вкладке Scope нажмите Settings. Под Display and Labels, набор Y-Axis Limits.

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

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

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

На вкладке Scope нажмите Settings. Под Display and Labels выберите Show Legend.

Типы данных: логический

Установите это свойство на true показать линии сетки на графике.

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

На вкладке Scope нажмите Settings. Под Display and Labels выберите Show Grid.

Сигнал графика как величина и поэтапно осуществленный в виде также:

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

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

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

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

На вкладке Scope нажмите Settings. Под Display and Labels выберите Magnitude Phase Plot.

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

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

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

Если вы хотите перезапустить симуляцию с начала, вызовите reset очистить отображения окна scope. Не вызывайте reset после вызова release.

Примеры

свернуть все

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

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

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

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

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

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

release(scope);

Скройте окно scope.

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

Покажите окно scope.

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

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

Загрузите данные о часах, x и t. Найдите шаг расчета, ts.

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

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

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

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

1. От вкладки Measurements выберите Aberrations.

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

2. В поле Bilevel Settings> Settle Seek введите 2e-6 и нажмите Enter.

Time Scope теперь отображает возрастающее значение Времени урегулирования ребра 118.392 не уточнено.

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

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

4. Перетащите, чтобы увеличить масштаб одного из переходов.

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

В этом примере показано, как визуализировать несколько входных параметров с различными частотами дискретизации и построить сигналы на нескольких осях.

Сгенерируйте три различных синусоиды и постройте их на timescope.

freq = 1/500;
t    = (0:100)'/freq;
t2   = (0:0.5:100)'/freq;
xin1 = sin(1/2*t);
xin2 = sin(1/4*t2);
xin  = sin(1/2*t2)+sin(1/4*t2);

scope = timescope('SampleRate', [freq freq/2 freq], ...
    'TimeSpanSource', 'property', ...
    'TimeSpan', 0.1,...
    'LayoutDimensions',[2,1]);
scope(xin, xin1, xin2)

release(scope)

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

Используйте timescope визуализировать три синусоиды с двумя различными частотами дискретизации.

freq = 1;
t    = (0:100)'/freq;
t2   = (0:0.5:100)'/freq;
xin1 = sin(1/2*t);
xin2 = sin(1/4*t2);
xin  = sin(1/2*t2)+sin(1/4*t2);
    
scope = timescope('SampleRate', [freq freq/2 freq], ...
     'TimeSpanSource', 'property', ...
    'TimeSpan', 100);
scope(xin, xin1, xin2)

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

scope.LayoutDimensions = [2,1];

Измените настройки для первой оси путем определения ActiveDisplay свойство к 1, затем изменяя некоторые свойства для той оси.

scope.ActiveDisplay = 1;
scope.ShowGrid = false;
scope.Title = "Sine Wave 1";
scope.YLimits = [-2,2];

Повторите этот процесс, чтобы изменить вторую ось.

scope.ActiveDisplay = 2;
scope.Title = "Sine Waves 2 & 3";
scope.YLimits = [-1,1];
release(scope)

Создайте dsp.SineWave с частотой дискретизации на 1 000 Гц. Создайте 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('SampleRate',[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('SampleRate',fs,'TimeSpanSource','Auto','ShowLegend',1);
scope(CxSineSum);
release(scope)

По умолчанию, когда вход является сигналом с комплексным знаком, Time 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));

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

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

release(scope)

Используйте Пиковую панель Средства поиска Time Scope, чтобы измерить сердечный ритм.

Создайте и отобразите сигнал ECG

Создайте электрокардиограмму (ECG) сигнал. Пользовательский ecg функция помогает сгенерировать сигнал heartbeat.

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('SampleRate',1/ts);
scope(mhb);
release(scope)

Найдите сердечный ритм

Используйте Пиковые измерения Средства поиска, чтобы измерить время между сердечными ударами.

  1. На вкладке Measurements выберите Peak Finder.

  2. Для свойства Num Peaks введите 10.

В панели Peaks в нижней части окна Time Scope отображает список десяти пиковых амплитудных значений и времена, в которые они происходят.

Список пиковых значений показывает постоянную разницу во времени 0,675 секунд между каждым heartbeat. На основе следующего уравнения сердечный ритм этого сигнала ECG является приблизительно 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

Советы

  • Чтобы закрыть окно scope и очистить его связанные данные, используйте MATLAB® clear функция.

  • Чтобы скрыть или показать окно scope, используйте hide и show функции.

  • Используйте MATLAB mcc функционируйте, чтобы скомпилировать код, содержащий осциллограф. Вы не можете открыть диалоговые окна настройки осциллографа, если у вас есть больше чем один скомпилированный компонент в вашем приложении.

Введенный в R2020a