write

Запишите данные, чтобы буферизовать

Описание

пример

nOverrun = write(asyncBuff,x) пишет входной массив, x, к объекту буферизации, asyncBuff, и возвращает количество превышенных выборок, nOverrun.

Примеры

свернуть все

Запишите синусоиду переменного формата кадра к буферу. Вычислите БПФ синусоиды и визуализируйте результат на графике массивов.

Инициализируйте dsp.AsyncBuffer, dsp.ArrayPlot, и dsp.FFT Системные объекты.

asynBuff = dsp.AsyncBuffer;
plotter = dsp.ArrayPlot;
fftObj = dsp.FFT('FFTLengthSource','Property','FFTLength',256);

Синусоида сгенерирована с помощью sin функция в MATLAB. start и finish переменные отмечают запуск и индексы конца каждой системы координат. Если достаточно данных кэшируется, читайте из буфера и выполните БПФ. Просмотрите БПФ на графике массивов.

start = 1;

for Iter = 1 : 2000
    numToWrite = randi([200,800]);
    finish = start + numToWrite;

    inputData = sin(start:finish)';
    start = finish + 1;

    write(asynBuff,inputData);
    while asynBuff.NumUnreadSamples >= 256
        x = read(asynBuff,256);
        X = abs(fftObj(x));
        plotter(log(X));
    end
end

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

свернуть все

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

Данные, записанные в буфер в виде вектора или матрицы. Максимальное количество строк в буфере определяется Capacity свойство asyncBuff. Количество каналов в буфере определяется вторым измерением First Data, записанной в буфер. Последовательные вводы данных могут варьироваться по количеству строк, но количество каналов должно остаться фиксированным. Чтобы изменить количество каналов, необходимо вызвать release на буфере.

Например, следующее принято:

asyncBuff = dsp.AsyncBuffer;
% First call to write
write(asyncBuff,randn(15,5)); 
% Add more data with a different number of rows
write(asyncBuff,randn(25,5)); 
write(asyncBuff,randn(5,5));

Следующее не принято и ошибки:

asyncBuff = dsp.AsyncBuffer;
% First call to write
write(asyncBuff,randn(15,5)); 
% Add more data with a different number of columns
write(asyncBuff,randn(15,15));

Чтобы изменить количество каналов, вызовите release на буфере.

asyncBuff = dsp.AsyncBuffer;
% First call to write
write(asyncBuff,randn(15,5)); 
release(asyncBuff)
% Add more data with a different number of columns
write(asyncBuff,randn(15,15));

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного числа: Да

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

свернуть все

Количество выборок, превышенных в текущем вызове write. Количество превышенных выборок является количеством непрочитанных перезаписанных выборок. Если x многоканальный вход, затем nOverrun количество строк потерь данных.

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

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

Функции

Объекты

Введенный в R2017a