Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,3 A" y; {- I, D  r
非常需要動態模擬的結果,可是不知道怎麼用。, C: L8 ~- T" ]; k' M" P2 U

1 a. I6 n" S$ jADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?! |% n( M; N* f) S: }6 v; G
0 c, c$ t  p' i( a  y7 U: w
另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,' @1 |* i8 _& ?: ~" R
可是我完全不知道動態模擬的Matlab Code應該怎麼寫?- F* `: Y2 G# Z( z9 U6 t2 Q
9 z  m* H, Y5 }% _
麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,
( w3 V# y, Q8 l$ l; l! I1 Q+ X感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有( E+ }5 l" u1 p* L6 S- C# I; 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時我老板給我的範本3 }+ _3 W3 [& D. r' o; I' [6 \
當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式
0 k: X7 ]7 d, [. x0 O" B2 K. D測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享$ |6 e! n' D9 F* k5 b9 H! g
如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式" e. Y3 `7 ]' R/ ?) u- @# I2 K
若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程
/ j" j& O9 w0 c" b. F: J: |, S: x: q+ H# R6 o; d7 F$ K' S9 t
%clear all( i& P' E9 _6 q  a/ P% P
%fid=fopen('test.txt','w')
% H- z, G+ ~0 t2 L" k; x" n- n$ V7 [( X& Q% \1 A  Z3 @- N
%% 10MHz data-input speed
+ P3 V1 P. L; f, q%for M=1:1:1024
5 V+ v0 |2 b. M* G* I. X%       T=M-1;1 _" X9 w* m# N, M9 ~! M
%       from=(50*T)+45; %DUAL DAC measure time
7 K, Y5 z& k. N( W$ E) J2 ?3 b) b%       to=50+(50*T);
$ B- ?4 l- H" r  E, a5 m) c%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);
$ S4 h+ O3 {8 d+ d%end
7 B7 n+ U; |% x& J5 ^2 A' ?' z$ B% ^' x9 N( M4 g- R  K
%fid=fopen('test2_2.txt','w');
5 k8 f$ V# c' }3 B8 W%for i=1:12^20)
( f. X; O0 S* o& v# D& p/ j3 l%    value=rand(1);* q) A( V( m. O3 q  _+ @6 `
%    fprintf(fid,'%g\n',value);% u- h0 N6 c7 {. R# _* d. l  Z/ T
%end% c; L* H3 g4 h
%fclose(fid);6 r. L( F! |! [! z) v
- l: N) P; P$ c- H
8 q& i6 C0 V% Y3 R, m4 N% G
clock_1000=1000/4000;  W4 y! [, G, C4 c% n. C; f
%%fid=fopen('test1.txt','w')
% N" S: Q5 I( p# U0 ~fid=fopen('Measure_4G.txt','w');
2 B0 Q+ ?: T" j5 V3 t: s( i1 qfor N=1:12^20)
7 _8 Z) c9 I. s/ m$ x! [    value3=clock_1000*N;
" T5 u4 Z/ Q: `7 z! z% {8 F%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);
- v& }0 O/ y8 o& G1 M    fprintf(fid,'%g  %g\n',N,value3);
' y+ I  L) M" Y, f4 ]6 j. N8 \1 zend9 ]5 K- \" A: h4 @2 T# u
fclose(fid);4 y9 W! I% y. P4 L3 N' _' V
$ y2 U/ E" p& X) J( @9 z: Z0 z, T
: [2 H  f) `: ~/ b- A. m$ s$ ~
clock_88=1000/88;  
+ ?  Y4 u/ N* ]% t4 m%%fid=fopen('Measure_88MHz.txt','w')
9 O5 t7 Q, [$ M# gfid=fopen('Measure_88MHz_round.txt','w')
/ R9 k+ l% ~% c) Wfor M=1:12^14); ]6 x$ D) I( W" H$ q
  value1=clock_88*(M+1);6 L. A9 T8 A$ f2 K9 X
  value2=value1-(clock_88/8)*1;2 Y# K4 B1 m5 l" o. u+ a# R
  value3=round(value1-(clock_88/8)*1);. V  g8 H7 V2 B# M6 V
  fprintf(fid,'%g\n',value3);
. T. s6 \' c  m5 ~%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3); - [" Q5 x' Y6 W% Z4 h( G$ \
end: Y  R4 H+ f; O& V+ w9 T  A' a# ?
fclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-5 05:40 PM , Processed in 0.111514 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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