быстрый взгляд

Считайте данные из буфера, не изменяя количество непрочитанных выборок

Синтаксис

out = peek(asyncBuff)
out = peek(asyncBuff,numRows)
out = peek(asyncBuff,numRows,overlap)
[out,nUnderrun] = peek(___)

Описание

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

пример

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

out = peek(asyncBuff,numRows,overlap) возвращает выборки numRows в каждый канал и перекрывает ранее выборки чтения overlap.

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

Примеры

свернуть все

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

Создайте Систему dsp.AsyncBuffer object™. Вход является вектор-столбцом 100 выборок, 1 - 100. Запишите данные в буфер.

asyncBuff = dsp.AsyncBuffer
asyncBuff = 
  AsyncBuffer with properties:

            Capacity: 192000
    NumUnreadSamples: 0

input = (1:100)';
write(asyncBuff,input);

Посмотрите на первые три выборки. Вывод [1 2 3]'.

out1  = peek(asyncBuff,3)
out1 = 3×1

     1
     2
     3

NumUnreadSamples равняется 100, указывая, что функция peek не изменила количество непрочитанных выборок в буфере.

asyncBuff.NumUnreadSamples
ans = int32
    100

После заглядывания считайте 50 выборок с помощью функции read. Вывод [1:50]'.

out2  = read(asyncBuff,50)
out2 = 50×1

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
      ⋮

NumUnreadSamples равняется 50, указывая, что функция read изменила количество непрочитанных выборок в буфере.

asyncBuff.NumUnreadSamples
ans = int32
    50

Теперь посмотрите снова на первые три выборки. Вывод [51 52 53]'. Проверьте, что NumUnreadSamples равняется все еще 50.

out3  = peek(asyncBuff,3)
out3 = 3×1

    51
    52
    53

asyncBuff.NumUnreadSamples
ans = int32
    50

Считайте 50 выборок снова. Вывод теперь содержит последовательность [51:100]'. Проверьте, что NumUnreadSamples 0.

out4  = read(asyncBuff)
out4 = 50×1

    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
      ⋮

asyncBuff.NumUnreadSamples
ans = int32
    0

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

свернуть все

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

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

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

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

свернуть все

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

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

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

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

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

Функции

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

Введенный в R2018b