2024年1月7日发(作者:)

用MATLAB生成DAT文件

f1=10;f2=100;fs=400;N=400;

x = linspace(0,N/fs,N);

y1 = sin(2*pi*f1*x);

y2 = sin(2*pi*f2*x);

y=y1+y2;

figure

plot(x,y)

%创建文件,可写入

fid=fopen('','w');

%将文件头写入文件,将生成的y信号写入到文件,格式四位小数

fprintf(fid,'1651 4 0 1 0n');

fprintf(fid,'%.4fn',y);

%将文件头写入文件,将生成的y信号写入到文件,格式十六进制,负数用补码

fprintf(fid,'1651 1 0 1 0n');

fprintf(fid,'0x%xn', round(y*100) + (y<0)*2^16);

设置两个叠加信号的频率分别为10hz,100hz,采样频率400hz,采样点数400,采样时间1S。

linspace(x1,x2,N)用法:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。在matlab的命令窗口下输入help linspace或者doc linspace可以获得该函数的帮助信息。

y1,y2为频率不同的两个正弦信号,y=y1+y2为叠加后信号。Plot画图显示信号y。

21.510.50-0.5-1-1.5-200.10.20.30.40.50.60.70.80.91

fopen(filename,permission)函数作用:

用指定的方式打开文件,”permission”是打开方式参数。由以下字符串确定:

r 读出

w 写入(文件若不存在,自动创建)

a 后续写入(文件若不存在,自动创建)

r+ 读出和写入(文件应已存在)

w+ 重新写入(文件若不存在,自动创建)

a+ 后续写入(文件若不存在,自动创建)

w 重新写入,但不自动刷新

文件打开的默认方式是:二进制。以文本方式打开,可在方式参数“permission”中加入“t”,如“rt”,“wt”。

fprintf函数

fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:

数据的格式化输出:fprintf(fid, format, variables),按指定的格式将变量的值输出到屏幕或指定文件,fid为文件句柄,若缺省,则输出到屏幕,format用来指定数据输出时采用的格式

%d 整数

%e 实数:科学计算法形式

%f 实数:小数形式

%g 由系统自动选取上述两种格式之一

%s 输出字符串

fprintf(fid,format,A)

说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。