Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 5832|回復: 4
打印 上一主題 下一主題

[問題求助] 請問要怎麼去跑出DAC的動態模擬?拜託各位,極需要動態模擬的結果。

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,! g2 N( m  E7 j! o/ L) C
非常需要動態模擬的結果,可是不知道怎麼用。
6 H+ `% @& ]' s: c; g2 ^5 k
, E) G) C5 i/ ~' f: I. }  N. mADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?
" S0 c, R/ A- j0 p$ C& W8 i. L
/ |8 ^! [0 k3 M另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,% p- G2 Q0 v: Z8 s- d( ~; t' l, d
可是我完全不知道動態模擬的Matlab Code應該怎麼寫?
# V0 A/ ?( P, L3 @
) J: E& j* M3 n+ ]) v: D麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,& E4 C, a4 O! O5 {$ n# N
感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有
+ d6 D. Q) g+ [$ ?/ x; N至於DAC的動態模擬,你要先在matlab上把一個sin波轉成你DAC的數位碼,然後再把這些數位碼餵到你DAC的電路作模擬,然後再將輸出的analog output voltage記錄起來,將這些值再丟到matlab去跑出相關的值出來,這是目前量測DAC的流程
3#
發表於 2010-6-15 09:26:11 | 只看該作者
我也特别想知道,finster大大能不能给一个示例啊???
4#
發表於 2010-6-16 01:16:50 | 只看該作者
這個程式是我當初作DAC時我老板給我的範本6 @2 N9 }4 @6 P* [5 i: N
當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式+ ~$ W7 {! ]) Q8 ^1 E
測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享% ?) ?: n0 S3 i: u
如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式
+ [  _5 o* d3 C# W. t; ?4 h若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程
+ T/ S8 ^& L5 c; @5 E. K- ]5 C& v2 d+ j. @  L
%clear all
: F( v# u3 j3 T- V1 G%fid=fopen('test.txt','w')
/ w/ H( Y. p4 l" N* Q( M9 k. }- m. _1 A
%% 10MHz data-input speed
/ ^# n& k0 |6 L; n%for M=1:1:10240 z  L* Q9 _, |8 n/ }
%       T=M-1;" q- j# z: e: D% O3 }
%       from=(50*T)+45; %DUAL DAC measure time( R6 ]! h1 n+ L4 e0 Q
%       to=50+(50*T);
; F- Y/ Y' y% R# ^# O7 t5 y# f%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);
% g; `" }/ l) u$ D" U: _%end: \3 f+ j( B6 E2 e: l% T/ e) ?! N

9 u8 _, V. @8 V1 B8 n' w2 W%fid=fopen('test2_2.txt','w');
3 S9 X3 B+ }2 M; ~- s9 w%for i=1:12^20)
5 ~& ]4 Y+ _; m2 w- [%    value=rand(1);
8 Z! g+ C9 |/ R%    fprintf(fid,'%g\n',value);$ @8 w/ t( O- t0 V  s  G5 g
%end9 F: w; U+ ~; m! @, q+ T
%fclose(fid);
/ H- R. y+ H5 U$ n/ l  v. F- O
5 r7 G, N4 ^) c
clock_1000=1000/4000;7 u) k' c+ A; S. I9 o9 F
%%fid=fopen('test1.txt','w')- m1 r$ d. a! ]) y/ h+ c
fid=fopen('Measure_4G.txt','w');8 \) K4 _4 l! A/ m, X% \8 f
for N=1:12^20)0 E0 K' ^) l5 ^: E& C+ d: h
    value3=clock_1000*N;8 \! e. `& w4 N
%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);  Q8 Y/ D" _6 g3 e- y4 t2 c! S4 W
    fprintf(fid,'%g  %g\n',N,value3);2 K1 J: O# e5 [
end  Y+ n$ f/ a$ V6 n$ E3 n" ^+ b6 b
fclose(fid);
: E+ _, h) X( n! B
9 `9 J: h6 S1 v4 s! L
. e' p2 Y8 R- V/ \$ ?8 g# H4 ]clock_88=1000/88;  7 P' V- V9 ?: g* _2 f& o6 H' S
%%fid=fopen('Measure_88MHz.txt','w')
3 z" \7 z- z( l- g; f5 h0 T& {fid=fopen('Measure_88MHz_round.txt','w')
& E# {) B+ l' G' P# E. J8 |for M=1:12^14)
% u( E. I. W2 M3 k$ r3 q0 E/ O1 x  value1=clock_88*(M+1);
4 Z. y! L! l" a* [+ e" }( b  value2=value1-(clock_88/8)*1;3 o. g; R3 K1 _
  value3=round(value1-(clock_88/8)*1);8 R+ n' u/ A! v8 d( K
  fprintf(fid,'%g\n',value3);
7 g% \  p! @6 H) s7 x4 G+ {' k. R' d%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3);
5 K8 f4 j: m6 j5 |# qend
6 G' [% W1 j8 C/ M* Ofclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-6-6 05:45 PM , Processed in 0.119515 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表