matlab生成数据以二进制数据格式写入txt文件中

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);

猜你喜欢

转载自blog.csdn.net/weixin_44884357/article/details/121576552