⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sim_vecfile_gen.m

📁 matlab在fpga中的应用的三个具体事例
💻 M
字号:
%---------这个文件用于产生仿真向量文件 filsim.vec----------%
%           f1=150;                                                                 %
%           f2=330;                                                                 %
%           fs=1000;                                                               %
%           fir_coef=0.5;                                                         %
%           i=3.1415926;                                                        %    
%           dets=1/fs;                                                             %
%           fp=fir_coef*fs/2;                                                    %    
%----------------------------------------------------------------------%
clear;
fid = fopen('..\Quartus\filter.vec','w');
fid_xin=fopen('..\matlab\filter.vec','w');
if (fid==-1 | fid_xin==-1)
    disp('Couldn''t open file filsim.vec for writing');
end
sim_end_time=54400;
g_clk_interval=10;
data_in_interval=340;
ad_end_interval=170;

f1=150;
f2=330;
fs=1000; 
fir_coef=0.5;
pi=3.1415926;
dets=1/fs;
fp=fir_coef*fs/2;   % 滤波器的通带为: 0---0.25*fs %

if f1<fp & f2>fp
        disp('%--------The coef is RIGHT!---------%');
end;

gausnoise=0.1*randn(1,161);

for i=0:160;
    data_in(i+1)=sin(2*pi*f1*i*dets)+sin(2*pi*f2*i*dets)+gausnoise(i+1);
    data_in(i+1)=fix(data_in(i+1)*1024);
    xin(i+1)=data_in(i+1);
    if (data_in(i+1) < 0)
        a=dec2bin(abs(data_in(i+1)),12);
        for k=1:12
            if a(k)==dec2bin(1)
                a(k)=dec2bin(0);
            else
                a(k)=dec2bin(1);
            end;
        end;
        data_in(i+1)=bin2dec(a)+1;
    end;
    fprintf(fid_xin,'%d \n',xin(i+1)); 
end;

fprintf(fid,'START 0;\n');
fprintf(fid,'STOP %d;\n',sim_end_time );
fprintf(fid,'RADIX DEC;\n');

fprintf(fid,'INTERVAL %d;\n', g_clk_interval);
fprintf(fid,'inputs g_clk ;\n');
fprintf(fid,'pattern \n');
fprintf(fid,'0 1;\n');

fprintf(fid,'inputs xin[12..1];\n');
fprintf(fid,'pattern \n');
fprintf(fid,'0> 0 \n');
for i=1:160
    fprintf(fid,'%d> %d \n',i*data_in_interval,data_in(i));
end
fprintf(fid,'%d> %d; \n',161*data_in_interval,data_in(161));  %add ;%

fprintf(fid,'inputs clr;\n');
fprintf(fid,'pattern \n');
fprintf(fid,'0>1;\n');

fprintf(fid,'INTERVAL %d;\n', ad_end_interval);
fprintf(fid,'inputs ad_end;\n');
fprintf(fid,'pattern \n');
fprintf(fid,'>0 1;\n');

fprintf(fid,'OUTPUTS z[18..1];\n');

fclose(fid);
fclose(fid_xin);


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -