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