Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,
) p5 H7 R1 o9 `/ ~& x" Q! y! T非常需要動態模擬的結果,可是不知道怎麼用。! n$ S1 _5 @9 g* ]9 H' e, u) S

5 U  R9 @4 ~  b6 _8 n; P4 wADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?
0 `1 T/ H: @) m3 x; a% z9 j8 f0 W
另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,/ E; [4 _) L/ X# t+ [* z
可是我完全不知道動態模擬的Matlab Code應該怎麼寫?' i; ^7 N" ?. W/ \: g, X3 ~# c
8 M( M8 m6 g! |
麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,0 j' U8 _& o% Q0 [. y
感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有9 A: t* C) J; L2 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時我老板給我的範本
. |/ [+ h2 [- Q) n/ V當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式  h( u, k; ]$ z. Y" X5 y7 g! W
測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享) H" w8 n( [* Y6 E6 k7 s
如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式! m" ^  }. b8 I& ~# m( i
若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程
2 b! D) x. S2 _) W  o8 v6 h. K; W) ~* Z
%clear all
" w% x& `+ }- _) {3 ], \5 I4 i%fid=fopen('test.txt','w')
! x3 _* k+ u$ L0 y0 h1 p2 g% J' b8 Q* _
%% 10MHz data-input speed  E7 \, ^5 l* N4 K& u/ u+ U
%for M=1:1:1024
+ q; Z8 a% M2 p' r( V/ b6 d# }- C( ^%       T=M-1;
) u) l/ N+ y2 `4 Q4 ?%       from=(50*T)+45; %DUAL DAC measure time& F" I+ {/ m$ w3 |
%       to=50+(50*T);' s4 p# v) r2 q% u/ b5 ?- J
%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);: X$ r8 y6 f- U3 r# M
%end
/ D+ S; h" I! T7 W0 l4 T/ h
+ T1 U+ V/ N4 k( t1 H* U%fid=fopen('test2_2.txt','w');' R4 B7 Y  `" R% y! J' z
%for i=1:12^20)
7 Q) A# G8 Z* ?4 u) ]. d( g/ z%    value=rand(1);
" ^* {! r7 [1 K. ?%    fprintf(fid,'%g\n',value);
$ v* I9 f' t1 f) w; q! ]9 a! P%end
* p! A* y! {. r- M+ }1 S%fclose(fid);
/ s4 \) O8 ~1 K# ?  C& U2 O2 z2 k0 q( v3 J/ C
. {( W" H* Q6 [7 ]
clock_1000=1000/4000;1 N6 e, z; s  c- p6 G' Q1 d
%%fid=fopen('test1.txt','w')
7 g1 `- L) y) o3 z' {9 v- Ffid=fopen('Measure_4G.txt','w');+ t& ]; a) m. e* p. K
for N=1:12^20); u4 m9 }6 u# e$ ~  r5 k
    value3=clock_1000*N;
; z3 h% k3 K6 l. G%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);
) L* [$ B; q# D) l    fprintf(fid,'%g  %g\n',N,value3);
& A+ h( O7 |3 Rend# w( u7 y/ e; ^' K9 Z
fclose(fid);
$ l) N: h2 `6 [$ O, D/ h0 J' {5 i9 u( n  ]% ?; v5 u6 a& t* a  _
  S6 d2 B- X/ j3 }0 D6 _+ ?
clock_88=1000/88;  0 O2 x! e8 j4 `' m, D, J* n9 S' `
%%fid=fopen('Measure_88MHz.txt','w'). W( r. H9 K# a) ^0 l3 L
fid=fopen('Measure_88MHz_round.txt','w')
9 y6 z0 I8 s, r, m' Hfor M=1:12^14)
- T5 W; G- d% f) V* k5 `  value1=clock_88*(M+1);$ p' D1 `+ Z. b. k( Z
  value2=value1-(clock_88/8)*1;
; j: f: W. t# k- O% n$ {  value3=round(value1-(clock_88/8)*1);1 m  A) l0 c( _% M5 d5 W
  fprintf(fid,'%g\n',value3);. }& i! k: v& \7 j
%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3); 4 P. b8 b( R5 p, |" X0 ~7 X/ ^- a
end
$ y7 _9 P3 O. M! {9 W. f  lfclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-1 04:48 AM , Processed in 0.120016 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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