matlabcoe⽂件格式,MATLAB程序⽣成XilinxFPGA的coe⽂件利⽤MATLAB程序⽣成Xilinx FPGA的coe⽂件(RAM和FIR)在⽣成RAM时可以设置RAM的初始化⽂件(coe),以及在为FIR滤波器⽣成滤波系数时会涉及到coe⽂件。程序清单如下:
(1)⽣成RAM coe⽂件matlab程序:
%% ===============================================================
%% ================Xilinx FPGA RAM COE⽂件⽣成程序===============
%% ===============================================================
clear;close all;clc;
y1 = load('');
y1_1 = y1(1:16384)*128+127.5; %将数据进⾏必要放⼤,然后开始将负值抬升为正值
fid = fopen('C: \','wt'); %也可以⽣成TXT⽂件之后,将txt后缀改为coe
fprintf( fid, 'memory_initialization_radix=10;\n');
fprintf( fid, 'memory_initialization_vector =\n' );
fprintf(fid,'%8.0f,\n',y1_1);
fclose(fid);
(2)⽣成FIR coe⽂件matlab程序:
%% ==============================================================
%% =============== FPGA滤波器核系数转换程序===================
%% ============ 把matlab产⽣的滤波器系数⽂件‘.mat’格式========
%% ==============================================================
clear;close all;clc;
bitwh= 16; %要转换位数的宽度
load t_im20130814; %% input_file_name.mat 要转换的⽂件名,为滤波器系数变量
fprintf格式
s= t_im;
L=length(s);
s1= zeros(1,length(s));
s=round(s*(2^bitwh));
%s=round(s*(2^bitwh)/max(abs(s))); %% 量化(根据实际量化位数进⾏量化,这⾥为10bit,数据总长度为12位,符号位1位,正数位1位)
for k=1:length(s)
s1(k)=int32(s(k));
end
fid_s = fopen('E:\','wt');
fprintf(fid_s,'%s\n','radix=10;');
fprintf(fid_s,'%s\n','coefdata='); fprintf(fid_s,'%0.0f,\n',s1(1:end-1)); fprintf(fid_s,'%0.0f,\n',s1(end)); fclose(fid_s);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论