Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
1#
發表於 2010-6-12 09:01:21 | 顯示全部樓層
論壇有相關的文章討論,你找一下應該有2 H& S: W; y/ b4 C5 Z/ W
至於DAC的動態模擬,你要先在matlab上把一個sin波轉成你DAC的數位碼,然後再把這些數位碼餵到你DAC的電路作模擬,然後再將輸出的analog output voltage記錄起來,將這些值再丟到matlab去跑出相關的值出來,這是目前量測DAC的流程
2#
發表於 2010-6-16 01:16:50 | 顯示全部樓層
這個程式是我當初作DAC時我老板給我的範本+ c$ S- z/ U( @4 e3 a3 e7 q  U) F
當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式
$ K6 h5 i- t; [2 \' E3 A  I測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享& C! C9 N% W$ Q
如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式, ]* ~: O' b1 V1 `4 Q# }. d2 F
若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程  D+ s1 R6 T7 L3 S
9 z9 S: }; Y* Y  q0 q. z0 @
%clear all$ i. h4 N8 @4 J: x  `7 v3 B3 S% u* B
%fid=fopen('test.txt','w')7 K9 z/ H! w, K

: \* D6 V5 N5 U7 l5 l%% 10MHz data-input speed
# n" t* Q& G+ l# x$ `) W& J%for M=1:1:1024
/ {& Q( \8 Z/ R/ r  v+ s) ]%       T=M-1;
- ^6 I# L2 L' g: j%       from=(50*T)+45; %DUAL DAC measure time* `3 v, x) T7 y9 J( j
%       to=50+(50*T);
- X* W. Y: e  i0 w6 k%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);
8 J: c; ~& S; ~1 Y7 k* B6 y" Q%end
3 \" z, Q: e$ Y: f) @/ ~( |8 l7 J/ c$ P6 y# v0 G7 z. t
%fid=fopen('test2_2.txt','w');
+ H  u6 I* n4 j* j. U9 B%for i=1:12^20)
* z9 E; ^1 ]# ~# O8 E2 f# d0 c%    value=rand(1);1 B8 K0 H# g( C0 n1 X+ B
%    fprintf(fid,'%g\n',value);7 ]8 c5 Q. f( ?4 ~6 U
%end' C5 j, i4 z( Z" u
%fclose(fid);
/ |, P' f# H! ]" Y- [# Q) M! }' @7 _- n
3 F" @3 B- q' y) W
clock_1000=1000/4000;! e/ \; t; O# ]. o) g* B& {
%%fid=fopen('test1.txt','w')' x9 B7 @8 m5 c. g0 p& ^, o: Y( S% U
fid=fopen('Measure_4G.txt','w');
/ c8 X4 q  @  X; U9 o) J( afor N=1:12^20)
# u; f+ Y# @  R4 [  D    value3=clock_1000*N;* l' }) d. l# [4 K5 X
%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);( X, F6 j- R7 V
    fprintf(fid,'%g  %g\n',N,value3);3 h3 w  I! j! c& r  Z* i
end
6 Y1 p8 f0 V, A! v' f/ Qfclose(fid);
, o1 `6 r2 d- x) g+ i2 r" f$ V5 Q( [) H, n3 @
5 ]/ @: K# b: d. B2 R5 n1 G. ?; l2 g
clock_88=1000/88;    O) n& E" F3 f* D- F
%%fid=fopen('Measure_88MHz.txt','w')- u* e7 I" l: o4 i  h% l3 ]2 J5 H
fid=fopen('Measure_88MHz_round.txt','w')
3 [4 Z8 R4 _7 ?4 N: Y7 Ifor M=1:12^14)
1 y! P$ e3 @* ]1 H# w  L  value1=clock_88*(M+1);( f% b' J9 J% l, b+ N
  value2=value1-(clock_88/8)*1;8 L4 _; ~1 [0 c3 ?/ Z
  value3=round(value1-(clock_88/8)*1);
9 |" H+ O- A: D  E& c  fprintf(fid,'%g\n',value3);% K5 c8 Y/ q9 t9 S  s' z; x& B; z: n
%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3); , V% _( f) ]2 h
end
% S% |3 S- R( c  t( P3 {- O% lfclose(fid);
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-16 07:57 AM , Processed in 0.100013 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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