convertToFrames

Удалите буферизацию из систем координат основанного на системе координат сигнала

    Синтаксис

    Описание

    пример

    convertToFrames(sigObj) удаляет буферизацию из каждой системы координат основанного на системе координат сигнала, который соответствует Simulink.sdi.Signal объект sigObj. Например, предположите sigObj основанный на системе координат сигнал с 64 2 демонстрационными значениями. convertToFrames функция интерпретирует каждого 64 2 выборка как 64 равномерно распределенный 1 2 выборки.

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

    Примеры

    свернуть все

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

    Этот пример преобразует представление двух основанных на системе координат сигналов из модели sfcndemo_frameкоторый:

    1. Производит сигнал, загрязненный шумом с помощью аналого-цифрового преобразователя.

    2. Выполняет дискретное преобразование Фурье (ДПФ) на системе координат произведенного сигнала.

    3. Удаляет шум из сигнала в частотном диапазоне.

    4. Выполняет обратного ДПФ на отфильтрованном сигнале возвратиться к временному интервалу.

    Симуляция модели для этого примера требует лицензии на DSP System Toolbox™. Преобразование основанных на системе координат данных в Инспекторе Данных моделирования не требует лицензии на DSP System Toolbox.

    Откройте и симулируйте модель

    Откройте модель sfcndemo_frame, затем отметьте сигналы временной области для логгирования и дайте сигнальным линиям имя.

    open_system('sfcndemo_frame');
    ADPort = get_param(find_system(gcs,  'FindAll', 'on', 'name', 'A/D Converter' ), 'PortHandles');
    set_param(ADPort.Outport,'DataLogging','on');
    
    ADLine = get_param(ADPort.Outport,'Line');
    set_param(ADLine,'Name','Noisy Signal');
    
    DAPort = get_param(find_system(gcs,  'FindAll', 'on', 'name', 'Remove trailing zeros' ), 'PortHandles');
    set_param(DAPort.Outport,'DataLogging','on');
    
    DALine = get_param(DAPort.Outport,'Line');
    set_param(DALine,'Name','Noise Removed Signal');

    Симулируйте модель.

    out = sim('sfcndemo_frame','StopTime','99.84');
    

    Доступ к данным в инспекторе данных моделирования

    Используйте Simulink.sdi.getCurrentSimulationRun функционируйте, чтобы получить доступ к данным моделирования.

    runObj = Simulink.sdi.getCurrentSimulationRun('sfcndemo_frame');

    Используйте getSignalsByName функционируйте, чтобы получить доступ к Simulink.sdi.Signal объект для каждого из сигналов временной области, Noisy Signal и Noise Removed Signal.

    NoisySig = getSignalsByName(runObj,'Noisy Signal');
    NoNoiseSig = getSignalsByName(runObj,'Noise Removed Signal');

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

    size(NoisySig.Values.Data(:,:,1))
    ans = 1×2
    
        64     2
    
    
    size(NoNoiseSig.Values.Data(:,:,1))
    ans = 1×2
    
        64     2
    
    

    Преобразуйте сигналы удалить буферизацию системы координат

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

    convertToFrames(NoisySig);
    convertToFrames(NoNoiseSig);

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

    size(NoisySig.Values.Data(1,:))
    ans = 1×2
    
         1     2
    
    
    size(NoNoiseSig.Values.Data(1,:))
    ans = 1×2
    
         1     2
    
    

    Поскольку получившийся сигнал имеет меньше чем четыре элемента, Инспектор Данных моделирования также автоматически преобразует сигнал в каналы. Run объект теперь содержит четыре сигнала.

    runObj.SignalCount
    ans = int32
        4
    

    Можно получить доступ к Signal объекты для каждого канала с помощью Children свойство для каждого исходного Signal объекты.

    NoisyChannel1 = NoisySig.Children(1);
    NoisyChannel1.Name
    ans = 
    'Noisy Signal(1)'
    
    NoisyChannel2 = NoisySig.Children(2);
    NoisyChannel1.Name
    ans = 
    'Noisy Signal(1)'
    

    Каждый канал имеет скалярные демонстрационные значения.

    size(NoisyChannel1.Values.Data(1,:))
    ans = 1×2
    
         1     1
    
    

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

    свернуть все

    Сигнал с данными, чтобы преобразовать в виде Simulink.sdi.Signal объект. convertToFrames функция не поддерживает сигналы переменного размера.

    Смотрите также

    Объекты

    Функции

    Введенный в R2021b