exponenta event banner

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

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

Описание

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