exponenta event banner

разделение

Хранилище данных сигнала секционирования и возвращаемая секционированная часть

Описание

пример

subsds = partition(sds,numPartitions,index) разделяет хранилище данных сигнала на количество частей, указанное в numPartitions и возвращает раздел, соответствующий index.

пример

subsds = partition(sds,'Observations',index) секционирует хранилище данных сигнала и возвращает раздел, соответствующий index в Observations собственность.

  • Если sds содержит данные файла, функция разбивает хранилище данных сигнала по файлам.

  • Если sds содержит данные в памяти, функция разделяет хранилище данных сигнала на элементы.

subsds = partition(sds,'Observations',obsname) секционирует хранилище данных сигнала и возвращает раздел, соответствующий имени наблюдения obsname.

  • Если sds содержит данные файла, функция разбивает хранилище данных по файлам.

  • Если sds содержит данные в памяти, функция разбивает хранилище данных на элементы.

Примеры

свернуть все

Укажите путь к файлу для примерных сигналов, включенных в MATLAB ®. Создайте хранилище данных сигнала, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','matlab','audiovideo');
sds = signalDatastore(folder,'SampleRateVariableName','Fs');

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

n = numpartitions(sds)
n = 7

Разбиение хранилища данных на разделы по умолчанию и возврат хранилища данных, соответствующего четвертому разделу.

subsds = partition(sds,n,4);

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

fName = extractAfter(subsds.Files,'audiovideo\')
fName = 1x1 cell array
    {0x0 char}

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

while hasdata(subsds)
    [data,info] = read(subsds);
    fs = info.SampleRate;
    f_res = 0.5*fs;
    ts = (0:length(data)-1)/fs;
    data_res = resample(data,1,2);
    t_res = (0:length(data_res)-1)/f_res;
    plot(ts,data,t_res,data_res,':')
    xlabel('Time (s)')
    ylabel('Signal')
    legend('Original','Resampled','Location','NorthWest')
end

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Resampled.

Укажите путь к каталогу, содержащему примеры сигналов, включенных в MATLAB ®.

folder = fullfile(matlabroot,'toolbox','matlab','audiovideo');

Создайте хранилище данных сигнала, указывающее на указанную папку.

sds = signalDatastore(folder);

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

pool = gcp;
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
n = numpartitions(sds,pool)
n = 7

Разделите хранилище данных сигнала и считайте данные сигнала в каждой части.

parfor ii = 1:n
    subds = partition(sds,n,ii);
    while hasdata(subds)
        data = read(subds);
    end
end

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

свернуть все

Хранилище данных сигнала, указанное как signalDatastore объект.

Число разделов, указанное как положительное целое число. Используйте numpartitions Функция (Audio Toolbox) для оценки разумного значения numPartitions.

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

Индекс хранилища субданных, указанный как положительное целое число в диапазоне [1,numPartitions].

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

Имя наблюдения, указанное как строковый скаляр или символьный вектор.

Значение obsname является:

  • Имя файла в случае данных файла.

  • Имя члена в случае данных в памяти.

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

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

свернуть все

Хранилище данных выходного сигнала, возвращаемое как signalDatastore объект.

Представлен в R2020a