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