<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 接口電路仿真的算法分析及實(shí)現

接口電路仿真的算法分析及實(shí)現

作者: 時(shí)間:2009-03-10 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/192139.htm

  1 引言

  系統是近30年才發(fā)展起來(lái)的一門(mén)新興學(xué)科,它通過(guò)對所研究系統的認識和了解,抽取其中的基本要素,建立與現實(shí)系統相對應的模型,并通過(guò)系統模型實(shí)驗去研究一個(gè)已經(jīng)存在的或者正在設計的系統的過(guò)程。Matlab是一種功能強大的的工具,它包括眾多的功能各異的工具箱、以矩陣和數組為基本單位的編程語(yǔ)言,為數學(xué)計算和試驗數據分析提供了極大的便利。Siumlink是MATLAB的一個(gè)共生產(chǎn)品,包括豐富的模塊資源和工具箱資源,具有相對獨立的功能和使用方法,提供了建模、分析和仿真各種動(dòng)態(tài)系統的交互環(huán)境,建立仿真模型后可以很容易地通過(guò)改變仿真參數,得到不同參數的仿真結果。結合MATLAB 和Simulin的特點(diǎn),可以實(shí)現各種電路的仿真。

  在構建仿真電路時(shí),有些可以直接調用Simulink模塊,有些用Simulink模塊難以實(shí)現的,可以通過(guò)編寫(xiě)Simulink 支持的S函數來(lái)完成。對于比較復雜的仿真電路,可以采用Simulink模塊調用和編程混合的方式實(shí)現。本文所實(shí)現的A/D轉換電路的仿真就是采用 Simulink模塊調用和MATLAB編程混合的方式。

  2 A/D轉換電路的仿真

  2.1 A/D轉換電路的的仿真

  模/數(A/D)轉換電路的任務(wù)是將連續變換的模擬信號轉換為離散的數字信號,以便于數字系統進(jìn)行處理,模/數轉換一般要完成采樣、量化和編碼等幾個(gè)過(guò)程。

  采樣是在連續變化的模擬量上按一定的規律(周期地)取出其中的某一些瞬時(shí)值來(lái)代表這個(gè)連續的模擬量。為了保證采樣信號不丟失的信息,即采樣后的離散信號能代替或能恢復原來(lái)的連續信號,采樣必須遵循采樣定理,即對信號采樣時(shí),采樣頻率必須大于或等于信號最高頻率的兩倍。

  量化就是將f(nT)的所有值映射到數字量所表示的狀態(tài)上。實(shí)際上,在量化過(guò)程中是將樣本的幅值范圍分為若干個(gè)量化層,每一個(gè)量化層對應一個(gè)量化輸出,所有落于該量化層內的樣本都統一取該量化輸出值。量化層的數目與量化后編碼的位數有關(guān)。

  2.1.1 采樣功能的實(shí)現

  A/D轉換就是一個(gè)量化的過(guò)程,它把采樣后的模擬信號轉換成數字量。在實(shí)際工作中,A/D轉換首先要選定一個(gè)合適的編碼方案,然后根據編碼的位數確定量化層,從而確定采樣頻率。實(shí)現仿真電路的關(guān)鍵是采樣模塊的構建,由于Simulink的模塊難以構建采樣功能,采樣模塊主要是通過(guò)編寫(xiě)Simulink支持的S函數實(shí)現的。S函數有固定的程序格式,S函數的實(shí)現包括初始化、連續狀態(tài)微分、計算輸出和仿真終止??梢杂肕ATLAB語(yǔ)言可以編寫(xiě)S函數,也可以使用C 語(yǔ)言、C++和Fortran 等語(yǔ)言編寫(xiě)。S函數使用一種特殊調用規則來(lái)實(shí)現用戶(hù)與Simulink的內部解法器進(jìn)行交互,并且這種交互可以適用于不同性質(zhì)的系統。S函數模塊存放在 FunctionsTables模塊庫中,通過(guò)此模塊可以創(chuàng )建包含S函數的Simulink模塊。S函數文件名區域要填寫(xiě)S函數的文件名。S函數參數區填入S函數所需要的參數。

  本系統假定輸入的模擬信號周期為2,編寫(xiě)了4個(gè)S函數,分別為sf_ad4、sf_ad8、sf_ad16、sf_ad32,對應的采樣時(shí)間分別為 0.5、0.25、0.125、0.0625,即采樣頻率分別是信號最高頻率的四倍、八倍、十六倍和三十二倍。下面以sf_ad32函數為例,說(shuō)明其算法及實(shí)現程序。

  首先,設模擬信號是周期為2的Sine波,且用連續的時(shí)間函數f(t)表示,采樣就是周期地取f(t)的瞬時(shí)值。根據采樣定理,對每個(gè)周期的模擬信號采樣32次,則采樣的時(shí)間就為0.0625(2/32)的倍數。完成一個(gè)周期的采樣時(shí)間為0.0625*n(0=32,n 為整數),延時(shí)為0。采樣后將相應值輸出,但信號在量值上仍然是連續的,需將f(nT)的所有值映射到數字量所表示的狀態(tài)上,這種過(guò)程為量化。在量化過(guò)程中是將樣本的幅值范圍分為若干個(gè)量化層,每一個(gè)量化層對應一個(gè)量化輸出,所有落在該量化層內的樣本都統一取該量化輸出值。本實(shí)例中,采用4位編碼,則有 24=16個(gè)量化層。在編碼過(guò)程中采用從1000到0111的編碼,來(lái)輸出相應的量化值。其源代碼如下:

function[sys,x0,str,ts]=sf_ad32(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
………
case 9,
sys=[];
otherwise
error([unhandle flag=,num2str(flag)]);
end

function[sys,x0,str,ts]=mdlInitializeSizes
sizes=simsizes;
sizes.NumContStates=0;
sizes.NumDiscStates=0;
sizes.NumOutputs=1;
sizes.NumInputs=1;
sizes.DiRFeedthrough=1;
sizes.NumSampleTimes=32;
sys=simsizes(sizes);
x0=[];
str=[];
ts=[
0.0625 0
0.125 0
0.0625*3 0
0.25 0
………
0.0625*31 0
2 0 ];
function sys=mdlUpdate(t,x,u)
sys=x;
function sys=mdlOutput(t,x,u)
sys=u;


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 接口電路 仿真 算法分析

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>