文档

dsp.BinaryFileWriter系统对象

写数据到二进制文件

描述

dsp.BinaryFileWriter系统对象™将多路信号数据写入二进制文件。如果头不空,然后头之前信号数据。对象指定文件名称和标题的结构。你第一次写入文件,对象写标题,紧随其后的是数据。在随后的调用中,对象写剩下的数据。如果标题为空,则不写标题。

对象可以写浮点数据和整型数据。写字符数据和定点数据,看看写和读字符数据读写定点数据。可以真实的或复杂的输入数据。当数据是复杂的,对象写数据交叉现实和虚构的组件。例如,看到的读写定点数据。作者假设默认的主机字节顺序。改变字节顺序,您可以使用swapbytes函数。例如,看到的改变数据的字节顺序写数据

对象写入的数据存储格式。例如,如果输入数组(1 2 4 5;8 7 9 2),对象写入数据(1 2 4 2 5 7 8 9]。

对象支持C和c++代码万博1manbetx生成。

写数据到一个二进制文件:

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

  2. 调用一步写二进制文件。在第一次调用一步数据之前,对象写标题。在随后的调用中,对象数据到文件的末尾写道。

请注意

或者,而不是使用一步定义的方法来执行操作系统对象,您可以调用对象的参数,就好像它是一个函数。例如,y =步骤(obj)y = obj ()执行相同操作。

建设

作家= dsp.BinaryFileWriter创建一个二进制文件作家对象,作家使用缺省属性。

作家= dsp.BinaryFileWriter(帧)设置文件名财产

作家= dsp.BinaryFileWriter (帧,的名字,价值,…)文件名设置为,每个属性的名字设置为指定的价值。未指定的属性有默认值。

例子:

作家= dsp.BinaryFileWriter (“myFilename.bin”,“HeaderStructure”,结构(“field1”1:10,“field2”单(1)));

属性

全部展开

文件名称的对象写数据,指定为一个特征向量或一个字符串。您必须指定文件的完整路径。

标题写在文件的开头,指定为一个结构。结构可以有任意数量的字段。每个字段的结构必须是一个真正的内置类型的矩阵。例如,如果HeaderStructure被设置为结构(“field1”、1:10 field2,单(1)),对象写头由10双精度值,(1:10),紧随其后的是一个精确值,单(1)。如果你不指定一个标题,对象将该属性设置为一个空结构,结构([])

方法

重置 重置的内部状态系统对象
一步 写数据到二进制文件
常见的系统对象
释放

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

例子

全部展开

创建一个自定义的二进制文件头使用dsp.BinaryFileWriter系统对象™。这个文件写数据。读头和数据使用dsp.BinaryFileReader系统对象。

写入数据

指定文件头和创建一个dsp.BinaryFileWriter对象。对象写标题第一,紧随其后的是数据,ex_file.bin文件。数据是一个嘈杂的正弦波信号。视图中的数据时间范围。

头=结构(“一个”(1 2 3 4),“B”,“x7”);作家= dsp.BinaryFileWriter (“ex_file.bin”,“HeaderStructure”,头);L = 150;正弦= dsp.SineWave (“SamplesPerFrame”L);scopewriter = dsp.TimeScope (1,“YLimits”(-1.5 - 1.5),“SampleRate”,sine.SampleRate,“时间间隔”1);我= = sin () + 0.01 * randn 1:1000数据(L, 1);作家(数据);scopewriter(数据);结束

发布作者,读者可以访问该文件的数据。

释放(作家);

读取数据

指定标题使用HeaderStructure读者对象的属性。如果不知道准确的标题,你必须至少指定标题的原型,也就是说,它的大小和数据类型。的dsp.BinaryFileReader对象读取的二进制数据ex_file.bin直到到达文件的末尾。读取数据到一个频道(列)包含多个帧,每一帧有300个样本。视图中的数据时间范围。

headerPrototype =结构(“一个”[0 0 0 0],“B”,' 0 ');读者= dsp.BinaryFileReader (“ex_file.bin”,“HeaderStructure”headerPrototype,“NumChannels”,1“SamplesPerFrame”,300);scopereader = dsp.TimeScope (1,“YLimits”(-1.5 - 1.5),“SampleRate”,sine.SampleRate,“时间间隔”1);~结束(读者)=读者();scopereader(出);结束

释放(读者);

即使读者有不同的帧大小,读取数据的输出时间范围完全匹配。

使用一个dsp.BinaryFileReader系统对象™从二进制文件读取数据的存储格式。

写入数据

编写矩阵一个二进制文件Matdata.bin使用一个dsp.BinaryFileWriter对象。头之后,指定的对象写数据。

一个= [1 2 3 8;4 5 6 10;7 8 9 11);头=结构(“一个”(1 - 2),“B”,“x7”);作家= dsp.BinaryFileWriter (“Matdata.bin”,“HeaderStructure”,头);作家(一个);

发布作者,读者可以访问数据。

释放(作家);

读取数据

指定标题使用HeaderStructure读者对象的属性。如果不知道准确的标题,你必须至少指定标题的原型,也就是说,它的大小和数据类型。的dsp.BinaryFileReader对象读取二进制文件Matdata.bin直到到达文件的末尾。指定系统对象读取数据到4频道,每个频道包含5个样品。每个循环的迭代读取一个通道(或帧)的数据。

headerPrototype =结构(“一个”[0 0],“B”,' 0 ');读者= dsp.BinaryFileReader (“Matdata.bin”,“HeaderStructure”头,“NumChannels”4“SamplesPerFrame”5);~结束(读者)=读者();显示器(出)结束
了=5×48 1 2 3 4 5 6 7 8 9 10 11 0 0 0 0 0 0 0 0

每一帧的包含帧的矩阵一个,其次是0完成框架。原来的矩阵一个包含4 3样品在每个频道的频道。读者指定读取数据到4频道,每个频道包含5个样品。因为没有足够的样品完成,读者对象附加零在每一帧的结束。

这个例子显示了如何dsp.BinaryFileWriter写复杂的数据对象。

创建一个dsp.BinaryFileWriter对象写入一个文件名为“myfile.dat”。没有头。数据是复杂的。

作家= dsp.BinaryFileWriter (“myfile.dat”);data =(1 2 3 4) + 1我* (5 6 7 8);作家(数据);释放(作家);

读取数据使用dsp.BinaryFileReader系统对象™。视图中的数据格式是写入文件,设置IsDataComplex财产。读者对象读取数据作为一个连续的数字序列主要格式。集SamplesPerFrame1,NumChannels8。

读者= dsp.BinaryFileReader (“myfile.dat”,“SamplesPerFrame”,1“NumChannels”8);s =结构([]);读者。HeaderStructure = s;dataRead =读者();

你可以看到真实的和虚构的成分的原始数据样本交叉。

显示(dataRead);
dataRead =1×81 5 2 6 3 7 4 8

dsp.BinaryFileWriterdsp.BinaryFileReader系统不支持读写定点数据对象。万博1manbetx作为一个解决方案,您可以编写存储整数部分fi数据,读取数据,并使用这个值来重建fi数据。

写定点数据

创建一个fi对象来表示100年签署了随机数的字长14和一小部分的长度12。写的存储整数部分fi对象的数据文件myFile.dat。内置的数据类型int16,它可以计算使用类(storeIntData)

data = randn (100 1);fiDataWriter = fi(12)数据,1,14日;storeIntData = storedInteger (fiDataWriter);作家= dsp.BinaryFileWriter (“myFile.dat”);作家(storeIntData);

发布作者,读者可以访问数据。

释放(作家);

读取定点数据

指定存储整数数据作为读者阅读int16数据与100样本/数据帧。定点数的实际价值可以使用来表示。如果你知道signedness、字长和分数定点数据的长度,你可以重建fi数据使用。在本例中,数据是签了字长14,一小部分的长度12。

读者= dsp.BinaryFileReader (“文件名”,“myFile.dat”,“SamplesPerFrame”,100,“数据类型”,“int16”);data =读者();fractionLength = 12;字= 14;realValue = 2 ^ (-fractionLength) *双(数据);fiDataReader = fi (fractionLength realValue 1字);

确认作者的数据是一样的读者数据。

isequal (fiDataWriter fiDataReader)
ans =逻辑1

dsp.BinaryFileWriterdsp.BinaryFileReader系统对象不支持读写字符。万博1manbetx作为一个解决方案,将字符数据的内置数据类型和写整型数据。阅读器读取数据后,将数据转换成字符使用字符函数。

写字符数据

把一个字符为uint8使用函数。写数据到数据文件myFile.dat

data =“binary_file”;castData =投(数据,“uint8”);作家= dsp.BinaryFileWriter (“myFile.dat”);作家(castData);

发布作者,读者可以访问数据。

释放(作家);

读了uint8数据

指定阅读的读者数据uint8数据。

读者= dsp.BinaryFileReader (“myFile.dat”,“数据类型”,“uint8”,“SamplesPerFrame”11);readerData =读者();charData = char (readerData);

确认作者的数据是一样的读者数据。默认情况下,读者在列为主的格式返回数据。

比较字符串(数据,charData。”)
ans =逻辑1

默认情况下,dsp.BinaryFileWriter系统对象™使用主机字节顺序的。改变字节顺序,使用swapbytes函数。

写一个数字数组myfile.dat使用dsp.BinaryFileWriter对象。在写数据之前,改变数据的字节顺序使用swapbytes函数。

数据= (1 2 3 4 2 2);swapData = swapbytes(数据);作家= dsp.BinaryFileWriter (“myfile.dat”);作家(swapData);

扩展功能

介绍了R2016b

这个主题有帮助吗?