Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,6 @- Z4 g6 H8 |
非常需要動態模擬的結果,可是不知道怎麼用。
, C. v. {5 q  g8 |& c! E. B1 }* v1 u. b/ C1 q" {2 d
ADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?
( P9 r4 K2 J3 a, k4 O
% @) p' D  d8 k  w& D另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,
1 `9 H9 O' f( J6 w+ x  V3 g- ^可是我完全不知道動態模擬的Matlab Code應該怎麼寫?/ j/ t) ~. X* {6 [. U7 S+ P+ ]/ F, `

, T8 K& _$ c/ e; ?3 g5 F4 N% A. G: r麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,7 u3 X2 u* d6 H0 d* P  w
感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有% H* G" J7 [5 ~' O
至於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時我老板給我的範本2 v7 r. l; r. O# h
當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式6 K2 G# O3 K7 s* e
測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享. f4 o4 \4 V0 n: r* Y$ P& N5 l1 x
如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式' F) I- n$ G+ F" X% y3 V. _/ n0 }
若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程$ C5 U0 W- V. q0 y

9 R$ O" _/ U* b; ?7 e8 }8 N%clear all% k- r6 f/ g7 Y  v1 r( D
%fid=fopen('test.txt','w')& B! E& n; l. L% J$ v" k
) d2 k3 r( Z2 b. l# A8 y) Y
%% 10MHz data-input speed7 N$ z, f$ v0 p3 W8 y# h
%for M=1:1:1024
* f  \2 ?6 q+ |5 _%       T=M-1;
" O, @# ?( n' ]# E% V%       from=(50*T)+45; %DUAL DAC measure time
2 b2 f- K4 Z& \3 ]6 j( b! q%       to=50+(50*T);
5 j8 n$ g+ V( h7 O%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);: j/ ^" h. F7 X$ D! B! C0 O
%end
7 ~* Z2 r8 }9 E% |$ @* j% S/ e0 O% M8 ^4 y4 K' Y
%fid=fopen('test2_2.txt','w');+ r; P1 `1 X6 J9 r5 m
%for i=1:12^20)
3 O, ?5 R, c, Z%    value=rand(1);
6 P  j& F* m0 _$ |%    fprintf(fid,'%g\n',value);
# v( f5 y) |2 _  H5 f/ F7 n; I8 @%end" N% U4 Y6 g  U! q, P
%fclose(fid);. x. B9 Y% b1 C$ l* c+ E
3 @; M: `* \8 I3 p$ n9 G

& W9 p& I% ~( k& r9 mclock_1000=1000/4000;
# ^8 C# L0 n: w4 P5 T7 V- b9 x%%fid=fopen('test1.txt','w')
8 _+ I! m* B( i! U( }3 q/ [9 j5 [fid=fopen('Measure_4G.txt','w');) O$ \6 m/ p- V
for N=1:12^20)
0 D$ ]! H2 w* ]5 b1 D    value3=clock_1000*N;; P. ^" S8 L# `$ e
%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);7 H# ?! k! e) q4 p
    fprintf(fid,'%g  %g\n',N,value3);
" f. L2 N6 a) y+ S! P- p  Kend
4 r0 A! {- R8 l0 Y8 Ifclose(fid);
. z/ n. ]$ m) T! g% o5 P+ g7 o9 L- Z  l1 V- N5 d

$ q) d0 X% r1 w3 W" ]clock_88=1000/88;  - Y  j9 c' Y3 x% |' J
%%fid=fopen('Measure_88MHz.txt','w')
) f" E, }; `0 i* hfid=fopen('Measure_88MHz_round.txt','w')
' Z0 z: P' Y+ `* I& C$ qfor M=1:12^14)
* }' \0 J( X6 E' p  value1=clock_88*(M+1);
6 P4 p3 u2 S2 E8 T; i- L- n- T  value2=value1-(clock_88/8)*1;. l" }9 Q3 Z! z
  value3=round(value1-(clock_88/8)*1);# v5 l: N. Q3 D! i
  fprintf(fid,'%g\n',value3);
' t9 c9 g( N. r$ k* @, _% G%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3);
6 p  G) d' s- k2 _# [1 N0 _8 I: {6 [end
2 j$ e+ ]4 ]. I( t' U# X, rfclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-1 06:56 AM , Processed in 0.176010 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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