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

📄 text.txt

📁 MIT的一个数字频综源代码
💻 TXT
字号:
module: dsynth_dac
inputs: double input double_interp clk 
outputs: double dac_out 
parameters: int r_elem_num int c_elem_num double res double mmstddev_r  double cap double mmstddev_c double fs double cap_filt
static_variables: double r_dn Vector r Vector c double r_tot int in_r int in_c IntVector c_value double c_tot int in int i double vl double vh double charge int c_temp double c_tst double charge1
classes: EdgeDetect edge1() 
init:
r_dn=0;
r_tot=0;
c_tot=0;
c_value.set_length(c_elem_num+1);
	gauss_ran_vector(mmstddev_r,r_elem_num+1,r);
	add(r,1.0,r);  //r=1.0+r
        mul_elem(r,res,r);  //r=res*r
	gauss_ran_vector(mmstddev_c,c_elem_num+1,c);
	add(c,1.0,c);  //c=1.0+c
        mul_elem(c,cap,c);  //c=cap*c
for(i=1;i<=r_elem_num;i++)
    { 
      r_tot=r_tot+r.get_elem(i);
    }
for(i=1;i<=c_elem_num;i++)
    { 
      c_tot=c_tot+c.get_elem(i);
    }
dac_out=0;
code:
if(edge1.inp(clk))
 {
   in=(int)input;
   in_c=in%c_elem_num;
   in_r=(in-in_c)/c_elem_num; 
   for(i=1;i<=c_elem_num;i++)
    {
      c_temp=(i<=in_c) ? 1:0;
      c_value.set_elem(i,c_temp);
    }
   r_dn=0;
   for(i=1;i<=in_r;i++)
    { 
      r_dn=r_dn+r.get_elem(i);
    }
    vl=fs*r_dn/r_tot;
    if(in_r<r_elem_num)
    {
    r_dn=r_dn+r.get_elem(in_r+1);
    }
    vh=fs*r_dn/r_tot;
   charge=0;
   c_tst=0;
   for(i=1;i<=c_elem_num;i++)
    { 
      c_tst=c_tst+c.get_elem(i);
    }
    for(i=1;i<=in_c;i++)
    { 
      charge=charge+c.get_elem(i)*vh;
    }
    charge1=charge;
    for(i=in_c+1;i<=c_elem_num;i++)
    { 
      charge=charge+c.get_elem(i)*vl;
    }
    dac_out=(dac_out*cap_filt+charge)/(c_tot+cap_filt);
 }

⌨️ 快捷键说明

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