Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,, f3 `: t& t& u! B# R# J4 `
非常需要動態模擬的結果,可是不知道怎麼用。& Z- O/ `% k* L6 H

1 c* Y# [; a: |ADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?6 q' h% W% O  B1 l

2 \% V6 N3 S8 x2 u另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,
$ b$ _1 B  \; ]* t+ O可是我完全不知道動態模擬的Matlab Code應該怎麼寫?
& a- w$ J: A2 O8 j% E: E; P9 H  i3 w, @5 w3 b) `
麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,
& R  R; |7 ]1 X) A感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有
: x* a: ^9 l/ O( C4 W8 Y至於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 [/ o0 k: f+ ?9 I. [  m; v# S% \* F
當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式) R1 l2 S8 X$ P+ `) J  G
測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享
! N8 n9 h: e8 G( N; t如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式
5 t1 a' P$ s- [0 f  C$ [3 m若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程# j3 r- L. q. t9 C% c
" w* i3 J4 }9 P* [9 y# E% U. i  ~! A
%clear all! C% p. b1 e0 H" ?$ o
%fid=fopen('test.txt','w')
; w7 m+ |9 x# y7 r" ^5 x; F
! M6 [) ]3 z" _2 n- O%% 10MHz data-input speed. a: ~) b5 I. w/ e2 \; p
%for M=1:1:1024* |8 V2 F, O: N! h7 R: z0 U' E
%       T=M-1;
7 L1 L/ i, O$ d% X+ }! }2 ~%       from=(50*T)+45; %DUAL DAC measure time; f% Z7 [; O# u6 H/ c) z
%       to=50+(50*T);
* y. i4 ^5 @9 N/ F" J%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);1 t7 e: @, R8 u; p( X
%end
7 h' L  f0 y& ^! U$ N; N) s: [* w: E. v6 {% D, |' G6 d
%fid=fopen('test2_2.txt','w');
# Z8 W2 e/ Y: G8 T& W6 H4 J%for i=1:12^20)- G+ n& O  d6 T1 R% }. d
%    value=rand(1);" Y* ?0 N* W+ _3 p6 c4 `
%    fprintf(fid,'%g\n',value);/ J1 F$ S5 V! B
%end
! ~. H; ]- w# b; D; q* r! E9 M%fclose(fid);
# \% v/ Y0 Y/ B, l1 r$ [+ {+ b; W4 D. R5 i5 G/ Q
& r' P, ]9 V0 A8 P8 S* h, j+ c0 K- _
clock_1000=1000/4000;( G& n* u; @. u  Z) q6 l
%%fid=fopen('test1.txt','w'); R' h8 N# l' Z5 \% ]
fid=fopen('Measure_4G.txt','w');
9 ~; w# Q' J+ q/ W" ffor N=1:12^20)0 t7 R' X! f+ [. y* T& K
    value3=clock_1000*N;2 a$ M9 ?( w8 f5 M
%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);2 O* T% l4 k* X
    fprintf(fid,'%g  %g\n',N,value3);( f% ?" ?  N) C9 j
end
& V# D1 z2 P6 P! @8 d) O( Nfclose(fid);) l- d9 `8 O2 ~. }1 v
  ~' N# A8 J+ j7 w+ ^
9 K- G- e$ |* k1 u: C
clock_88=1000/88;  
9 v, f4 f- B7 ^/ N%%fid=fopen('Measure_88MHz.txt','w')  Y9 c8 i& L" y4 j
fid=fopen('Measure_88MHz_round.txt','w')2 b: |1 k; L6 B
for M=1:12^14)
& p0 V7 N/ n) P2 s  value1=clock_88*(M+1);
# ^% r  L6 k! d  value2=value1-(clock_88/8)*1;
) g$ A3 y7 O6 i  value3=round(value1-(clock_88/8)*1);) n7 I$ x# n& c8 F( U8 S* [
  fprintf(fid,'%g\n',value3);
1 s/ |- @6 ~# h9 e" ?0 c%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3);
9 E, ^- n6 J! I5 `end
' N& }. y4 o5 `- ?* \fclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-1 06:16 AM , Processed in 0.124016 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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