1.matlab生成数据以二进制数据格式写入txt文件中
QB=16;
%将生成的数据以二进制数据格式写入txt文件中
Q_x=round(se1_addnoise/max(abs(se1_addnoise))*(2^14-1););%QB比特量化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%新建文本文件前,必须建好文件存放的目录文件夹,否则出现提示信息:
%??? Error using ==> fprintf
%Invalid file identifier
fid=fopen('C:\Users\lcy\Desktop\bishe\matlab\data_in_hex.txt','w');
for k=1:65536
B_si=dec2bin(Q_x(k)+(Q_x(k)<0)*2^QB,QB);
for q=1:QB
if B_si(q)=='1'
tb=1;
else
tb=0;
end
fprintf(fid,'%d',tb);
end
fprintf(fid,'\r\n');
end
fprintf(fid,';');
fclose(fid);
verilog 仿真tb文件里读取数据代码段
integer Pattern;
initial
begin
//文件必须放置在"工程目录\simulation\modelsim"路径下
$readmemb("data_in_hex.txt",data_in_hex);//SamSin100dB_in.txt
Pattern=0;
repeat(65536)
begin
Pattern=Pattern+1;
data_in=data_in_hex[Pattern];
#10;
end
end
matlab生成十进制数,存于coe文件,用于滤波器系数
rcos_filter=abs(round(rcos_filter/max_rcos_filter*(2^(N-1)-1)))';
fid=fopen('shape.coe','wt');
fprintf(fid,'Radix = 10;\n');
fprintf(fid,'CoefData=\n');
for i=1:length(rcos_filter)
if(i~=length(rcos_filter))
fprintf(fid,'%d,\n',rcos_filter(i));
else
fprintf(fid,'%d;\n',rcos_filter(i));
end
end
fclose(fid);