Запишите данные, чтобы буферизовать
nOverrun = write(asyncBuff,x)
Запишите синусоиду переменного формата кадра к буферу. Вычислите БПФ синусоиды и визуализируйте результат на графике массивов.
Инициализируйте 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
asyncBuff
— Асинхронный буферСистема dsp.AsyncBuffer
object™
Асинхронный буфер, заданный как Системный объект dsp.AsyncBuffer
.
x
Ввод данныхДанные записаны в буфер, заданный как вектор или матрица. Максимальное количество строк в буфере определяется свойством 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 | логический
Поддержка комплексного числа: Да
nOverrun
— Количество выборок превышаетсяКоличество выборок, превышенных в текущем вызове write
. Количество превышенных выборок является количеством непрочитанных перезаписанных выборок. Если x
является многоканальным входом, то nOverrun
является количеством строк потерь данных.
Типы данных: int32
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.