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

The 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
      ⋮

The 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) × <reservedrangesplaceholder0>. Если фрагмент перекрытия содержит выборки, которые перезаписаны и поэтому не записаны непрерывно, выход заполнен нулями.

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

свернуть все

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

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

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

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

См. также

Функции

Объекты

Введенный в R2018b