read

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

Описание

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

пример

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

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

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

Примеры

свернуть все

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

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

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

Figure contains an axes object. The axes object contains an object of type line.

Храните данные, которые считаны из буфера в 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

Figure contains an axes object. The axes object contains 2 objects of type line.

Проверьте, что входные данные и данные, считанные из буфера (исключая выборки недогрузки, если таковые имеются), являются тем же самым. Совокупное число превышенных и выборок недогрузки в буфере определяется 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
Для просмотра документации необходимо авторизоваться на сайте