文档

dsp.AsyncBuffer系统对象

描述

dsp.AsyncBuffer系统对象™将样本写入和读取样本先入先出(FIFO)缓冲区。的方法将数据写入缓冲区和方法从缓冲区中读取数据。在创建对象时,你可以设置缓冲区的数量的样品(行)使用能力财产。通道的数量(列)被设置在第一次调用。通过调用初始化缓冲设置在第一次调用之前

你写的数据占用的下一个可用空间缓冲区。如果缓冲区已满,所有数据在未读,也就是说,如果asyncBuff。NumUnreadSamples = = asyncBuff.Capacity,最古老的数据与对象覆盖任何新的数据。只有当数据缓冲区删除数据覆盖,所以你可以重读来自过去的数据。的dsp.AsyncBuffer对象支持读写可万博1manbetx变帧大小的信号。有关示例,请参见从缓冲区读取可变帧大小可变帧大小写入缓冲区

一个FIFO缓冲区的读写样本:

  1. 创建一个dsp.AsyncBuffer对象并设置对象的属性。

  2. 调用写样品到缓冲区。

  3. 调用从缓冲区读取样品。

建设

asyncBuff = dsp.AsyncBuffer返回一个AsyncBuffer对象,asyncBuff使用缺省属性。

asyncBuff = dsp.AsyncBuffer (cap)设置能力财产

asyncBuff = dsp.AsyncBuffer(名称、值)指定属性的使用名称,值对。未指定的属性有默认值。

例子:

asyncBuff = dsp.AsyncBuffer (200000);

属性

全部展开

在缓冲/可读可写的行数。在每次写入缓冲区的行数不得超过缓冲区的容量。如果缓冲区已满,所有的数据在未读,最古老的数据与对象覆盖任何新的数据。的CumulativeOverrun属性返回的信息方法给出了样本的数量每通道自上次调用泛滥重置。样品的数量泛滥是未读的数量样品覆盖。

默认情况下,此属性的数据类型int32

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

这个属性是只读的。

每个通道的未读的样本数量(列)的缓冲区。未读的样本总数的缓冲区NumUnreadSamples×numChann,在那里numChann在缓冲通道的数量。

CumulativeUnderrun属性返回的信息方法给出了样本的数量每通道自上次调用暗流重置。暗流发生如果你试图了解更多比可用的样本。

数据类型:int32

限制

在调用之前方法,您必须在调用初始化缓冲的设置方法。例如,看到的为什么dsp。AsyncBufferObject Error When You Call read Before write?

方法

信息 得到累积泛滥和暗流
从缓冲区读取数据
重置 重置的内部状态系统对象
写数据到缓冲区
常见的系统对象
释放

允许系统对象属性值的变化

例子

全部展开

dsp.AsyncBuffer系统对象™支持从缓冲区读取可变万博1manbetx帧大小。

创建一个dsp.AsyncBuffer系统对象。输入与零均值高斯白噪声,标准差为1,一帧512个样本的大小。写的输入缓冲区使用方法。存储的数据从缓冲区中读取的outTotal

asyncBuff = dsp.AsyncBuffer;输入= randn (512 1);写(asyncBuff、输入);outTotal = [];情节(输入)

情节的输入信号和数据从缓冲区读取相同的情节。从缓冲区读取数据,直到所有的样本都读。在每一个迭代循环,兰迪确定样品的数量。因此,信号读入为适应信号。

asyncBuff。NumUnreadSamples ~ = 0 numToRead =兰迪([64]);=阅读(asyncBuff numToRead);outTotal =] [outTotal;;% #好吧情节(outTotal“r”);暂停(0.2)结束持有

写一个正弦波可变帧大小的缓冲区。计算FFT的正弦波和可视化结果数组阴谋。

初始化dsp.AsyncBuffer,dsp.ArrayPlot,dsp.FFT系统对象。

asynBuff = dsp.AsyncBuffer;绘图机= dsp.ArrayPlot;fftObj = dsp.FFT (“FFTLengthSource”,“属性”,“FFTLength”,256);

使用生成正弦波在MATLAB®。的开始完成变量标记每一帧的开始和结束指数。如果有足够多的数据缓存,从缓冲区读取并执行FFT。查看FFT数组阴谋。

开始= 1;Iter = 1: 2000 numToWrite =兰迪([200800]);完成= + numToWrite开始;inputData =罪(开始:完成);开始=完成+ 1;写(asynBuff inputData);asynBuff。NumUnreadSamples > = 256 x =阅读(asynBuff, 256);X = abs (fftObj (X));绘图仪(日志(X));结束结束

扩展功能

介绍了R2017a

这个主题有帮助吗?