Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,. b4 V& C' X3 R9 U" @" {& B/ S
非常需要動態模擬的結果,可是不知道怎麼用。" O$ f3 ?  Z: r4 M

3 E4 X) Q" n' nADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?
6 t! {& K- N+ ]: r6 \4 L" N2 ^% k. f
另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,
* t# k3 l( f) l+ W7 u0 P# s可是我完全不知道動態模擬的Matlab Code應該怎麼寫?+ u& J/ y4 {1 S+ b! R/ t4 \
: [5 @# O( {2 j- Y4 z
麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,
2 S) V) a5 t* N9 M  L% e感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有, w8 L! [* l9 Y6 v/ W+ [) a& y# S
至於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時我老板給我的範本& L( L9 [- f* A% a' n
當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式" j1 I8 N/ S, {8 v6 U. v
測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享
0 _8 l3 F( r" u: h* B: X7 M6 R! p; z如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式6 L# c4 Y5 n7 D0 C; U) E+ r
若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程
3 [! ]+ ^: k& a1 z' f# d
/ d  p" o# d. k  l- n! U1 u* X%clear all
: W1 K5 T: l$ ~2 P1 @* b2 q& l# S1 T%fid=fopen('test.txt','w')) q: ?; o2 p/ L
' y- |& w# \' ^! O2 L$ Y: e
%% 10MHz data-input speed
+ e1 X. k  r- {/ z/ |5 ]# F$ A%for M=1:1:10248 q1 o2 L  |  S7 ?9 t& p& |
%       T=M-1;- }1 q7 N3 Q4 T  V$ d1 o8 R
%       from=(50*T)+45; %DUAL DAC measure time
) q( ?8 s/ n) y" {! D+ |%       to=50+(50*T);5 K( T* U/ g5 {, C$ h" T
%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);. J! t, X1 c) r* V) T
%end
* V1 s& x4 M2 ]; i/ K* F- t+ H! z  M* ^
%fid=fopen('test2_2.txt','w');* y; f4 g; S& ?2 b/ Z9 `, N, ^
%for i=1:12^20)
! U) U: Y7 k8 `: @/ g2 p. ~%    value=rand(1);0 W6 {1 u; L$ p0 O
%    fprintf(fid,'%g\n',value);. D6 S+ ~: }: h5 \8 s8 B
%end. P/ M  |! p- K$ A. E; x% A# Y
%fclose(fid);
" z9 z: @' J1 `! z3 S
% S4 F. W- p3 W2 h( H5 [0 A% O7 {1 [2 S1 B; @
clock_1000=1000/4000;
1 ^6 @% ?  w9 ~! Y: Y; w%%fid=fopen('test1.txt','w')
% k' f0 ^& ]0 `; @7 P* afid=fopen('Measure_4G.txt','w');
; s1 |5 B; P7 o! `1 _for N=1:12^20)
5 O2 H5 _/ d$ n4 @. N: w' i    value3=clock_1000*N;. f& E, E% H3 ^3 b
%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);
6 z' a$ |0 r$ w" y: V3 v    fprintf(fid,'%g  %g\n',N,value3);1 Q, _! ~1 C( a9 C, ^3 _1 j
end2 w9 `( [$ ^6 w3 x
fclose(fid);% Z8 P+ b/ w0 ~, ^- w$ o7 v( `

4 G& D) W. n( x6 L6 m( p. Y( S! g/ _. }& w( I' Y
clock_88=1000/88;  
  N* C+ @) N: y: D%%fid=fopen('Measure_88MHz.txt','w')  K4 x6 N8 F. g" ?5 `* I
fid=fopen('Measure_88MHz_round.txt','w'), z/ N+ E4 m/ Q
for M=1:12^14)8 k6 R, c6 r" R% V
  value1=clock_88*(M+1);2 e! Q+ l. y: I# W: Q6 e
  value2=value1-(clock_88/8)*1;1 K3 H1 L7 ~. ?# R: S% b
  value3=round(value1-(clock_88/8)*1);& }* E- H9 _3 v0 X
  fprintf(fid,'%g\n',value3);
* J9 T# k+ S0 s7 S1 t1 z8 q3 T%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3);
) d; \  R, \, T2 ~end
; G3 W/ y: A, G0 i2 ffclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-6 12:08 PM , Processed in 0.103006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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