% 定义方波参数
t = 1:628;
Z = zeros(1,length(t));
% 方波
Z = square(t/50,50);
Z = Z;
Z = Z*5;
ZZ = 0.1*randn(1,628);
ZZ = ZZ * 10;
Z = Z+ZZ;
%生成正弦波
% t = linspace(0,10,628);
% Z = 10*sin(2*pi*t)+2;
% ZZ = randn(1,628);
% Z=Z+ZZ+10;
plot(Z);
% 生成 coe 文件
depth = 628; % 存储深度
bits = 32; % 存储位宽
filename = 'signal4.coe'; % coe 文件名
% 将信号量化为整数
% q_signal = round(Z * (2^(bits-1)-1));
q_signal = round(Z);
% q_signal = Z;
% 打印 coe 文件头部信息
fid = fopen(filename,'w');
fprintf(fid,'; Sample COE file for signal\n');
fprintf(fid,'; Depth=%d, Width=%d\n',depth,bits);
fprintf(fid,'; Radix=2\n'); % Change Radix to 2 for binary
fprintf(fid,';--------------------------------------------\n');
fprintf(fid,'memory_initialization_radix=2;\n'); % Change radix to 2 for binary
fprintf(fid,'memory_initialization_vector=\n');
% 存储信号 as 32-bit binary numbers
for i = 1:depth
% fprintf(fid,'%d,\n',int32(q_signal(i)));
% fprintf(fid,'%032s,\n',dec2bin(int32(q_signal(i)), bits));
fprintf(fid, '%s,\n', dec2bin(typecast(int32(q_signal(i)), 'uint32'), bits));%能生成方波低电平是负数的代码
% fprintf(fid,'%f,\n',single(q_signal(i)));
% fprintf(fid,'%a,\n', typecast(single(q_signal(i)), 'uint32'));
end
fclose(fid);
MATLAB产生方波coe文件
最新推荐文章于 2024-08-31 21:31:39 发布