read

Считайте данные из буфера

Описание

out = read(asyncBuff) возвращает все непрочитанные выборки в буфер, asyncBuff.

пример

out = read(asyncBuff,NumRows) возвращает NumRows выборки от каждого канала (столбец) буфера.

out = read(asyncBuff,NumRows,Overlap) возвращает NumRows выборки от каждого канала и перекрытий ранее читают выборки Overlap.

[out,nUnderrun] = read(asyncBuff,___) также возвращает количество строк, дополненных нулем, если недогрузка произошла, с помощью какого-либо из предыдущих аргументов.

Примеры

свернуть все

dsp.AsyncBuffer Система object™ форматы кадра переменной чтения поддержек от буфера.

Создайте dsp.AsyncBuffer Системный объект. Вход является белым Гауссовым шумом со средним значением 0, стандартным отклонением 1 и форматом кадра 512 выборок. Запишите вход в буфер с помощью write метод.

asyncBuff = dsp.AsyncBuffer;
input = randn(512,1);
write(asyncBuff,input);
plot(input)
hold on

Храните данные, которые считаны из буфера в outTotal.

Постройте входной сигнал и данные, которые считаны из буфера в том же графике. Считайте данные из буфера, пока все выборки не будут считаны. В каждой итерации цикла, randi определяет количество выборок, чтобы читать. Поэтому сигнал читается в как сигнал переменного размера. prevIndex переменная отслеживает предыдущее значение индекса, которое содержит данные.

outTotal = zeros(size(input));
prevIndex = 0;
while asyncBuff.NumUnreadSamples ~= 0
    numToRead = randi([1,64]);
    out = read(asyncBuff,numToRead);
    outTotal(prevIndex+1:prevIndex+numToRead) = out;
    prevIndex = prevIndex+numToRead;
end
plot(outTotal,'r')
hold off

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

S = info(asyncBuff)
S = struct with fields:
     CumulativeOverrun: 0
    CumulativeUnderrun: 28

CumulativeUnderrun поле показывает количество демонстрационной недогрузки на канал. Недогрузка происходит, при попытке считать больше выборок, чем доступный.

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

свернуть все

Асинхронный буфер, заданный как dsp.AsyncBuffer Системный объект.

Количество выборок, считанных из каждого канала (столбец) буфера, заданного как положительное целое число. Если требуемое количество выборок больше количества непрочитанных выборок, выход дополнен нулем.

Функция возвращает NumRows выборки от каждого канала и перекрытий ранее читают выборки Overlap. Общим количеством демонстрационного чтения является NumRows × NumChann, где NumChann является количеством каналов в буфере. Общее количество нового демонстрационного чтения (NumRowsOverlap) × NumChann. Если фрагмент перекрытия содержит выборки, которые перезаписываются и поэтому непрерывно не записаны, выход дополнен нулем.

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

свернуть все

Данные считаны из буфера, возвращенного как массив NumRows × выборки NumChann. Если Overlap задан, функция возвращается (NumRowsOverlap) × выборки NumChann. Если требуемое количество выборок больше количества непрочитанных выборок, выход дополнен нулем.

Типы данных: double
Поддержка комплексного числа: Да

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

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

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

Функции

Системные объекты

Введенный в R2017a