给别人做网站去掉版权,文档管理软件,怎样评价一个网站做的好与不好,北京it培训机构Matlab-FPGA 小数转换为定点二进制小数脚本#xff1a;
% 更新于2023年6月17日#xff0c;修改旋转因子文件#xff0c;不修改fpga
%首先明确我们的二维FFT的数组维数,此为1024*8的二维矩阵#xff0c;1024行#xff0c;8列
column 1024;
row 8;
nk[];
Ncolumn*row;
fo…Matlab-FPGA 小数转换为定点二进制小数脚本
% 更新于2023年6月17日修改旋转因子文件不修改fpga
%首先明确我们的二维FFT的数组维数,此为1024*8的二维矩阵1024行8列
column 1024;
row 8;
nk[];
Ncolumn*row;
for i0:row-1for j0:column-1nk[nk,j*i];end
end
for k1:column*row %必须保存所有可能的数值w_re(k)cos(2*pi*(nk(k))/N);w_im(k)-sin(2*pi*(nk(k))/N);
end
W2w_re1i*w_im;
numint1;%numint位整数numdec位小数
numdec14;%选取的总位数为1numintnumdec其中1为符号位所占用。
fp1fopen(w_re_data.txt,w);
fp2fopen(w_im_data.txt,w);
% tempdiag(ones(length(a)));
aw_re;%a 为被定点化的矩阵或标量,为实数
for i1:length(a)fixed_afloor(a(i)*2^numdec); %模拟计算机中直接截位的结果%限幅if ((fixed_a2^(numintnumdec))||(fixed_a-2^(numintnumdec)))fixed_asign(a(i))*(2^(numintnumdec)-1)0.5*(sign(a(i))-1);%正数最大是2^(numintnumdec)-1负数最大是-2^(numintnumdec)end%转化为补码if (a(i)0)%需要写成补码的形式fixed_afixed_a2^(numintnumdec);fixed_bindec2bin(fixed_a,numintnumdec);fixed_binstrcat(1,fixed_bin); elsefixed_bindec2bin(fixed_a,numintnumdec);fixed_binstrcat(0,fixed_bin);end% 保存数据到txt文件
% for j1:numintnumdec1fprintf(fp1,%s,fixed_bin);fprintf(fp1,\r\n);end
fclose(fp1);
clear a;
aw_im;
for i1:length(a)fixed_afloor(a(i)*2^numdec); %模拟计算机中直接截位的结果%限幅if ((fixed_a2^(numintnumdec))||(fixed_a-2^(numintnumdec)))fixed_asign(a(i))*(2^(numintnumdec)-1)0.5*(sign(a(i))-1);%正数最大是2^(numintnumdec)-1负数最大是-2^(numintnumdec)end%转化为补码if (a(i)0)%需要写成补码的形式fixed_afixed_a2^(numintnumdec);fixed_bindec2bin(fixed_a,numintnumdec);fixed_binstrcat(1,fixed_bin); elsefixed_bindec2bin(fixed_a,numintnumdec);fixed_binstrcat(0,fixed_bin);end% 保存数据到txt文件
% for j1:numintnumdec1fprintf(fp2,%s,fixed_bin);fprintf(fp2,\r\n);end
fclose(fp2);
数据转.coe文件脚本
clear
clc
depth 8192; % rom深度
% width 32; % 数据宽度
cstr0textread(w_re_data.txt,%s); % 将TXT中的数据以文本的方式取回
cstr1textread(w_im_data.txt,%s);
%实部
fid fopen(rotate_re.coe,wt); % 创建文件
fprintf(fid,memory_initialization_radix2;\n); % memory_initialization_radix定义存储器初始化值的基可取值为2进制10进制16进制等
fprintf(fid,memory_initialization_vector\n); % memory_initialization_vector 储存器内数据向量
for idnex 1:depthif(idnexdepth) fprintf(fid,%s,\n,char(cstr0{idnex}));else fprintf(fid,%s;\n,char(cstr0{idnex})); % 最后的数据应以[;]结尾end
end
% 虚部
fid fopen(rotate_im.coe,wt); % 创建文件
fprintf(fid,memory_initialization_radix2;\n); % memory_initialization_radix定义存储器初始化值的基可取值为21016等
fprintf(fid,memory_initialization_vector\n); % memory_initialization_vector 储存器内数据向量for idnex 1:depthif(idnexdepth) fprintf(fid,%s,\n,char(cstr1{idnex}));else fprintf(fid,%s;\n,char(cstr1{idnex})); % 最后的数据应以[;]结尾end
end