線性常係數差分方程的Matlab遞推求解

2021-05-12 09:58:48 字數 1147 閱讀 2390

%matlab訊號處理工具箱提供了filter函式,可以實現線性常係數差分方程的遞推求解,呼叫格式如下:

%yn=filter(b,a,xn,xi)

%xi=filtic(b,a,ys,xs)

%呼叫引數xn是輸入訊號向量,b和a是差分方程(2.5.1b)的係數向量,

%即σ(k=0到n)ak*y(n-k)=σ(i=0到m)bk*x(n-i),a0=1

%b=[b0,b1,…,bm]

%a=[a0,a1,…,an]

%其中a0=1,如果a0≠1,則用a0對係數向量b和a歸一化。

%xi是與初始條件有關的向量,用xi=filtic(b,a,ys,xs)函式格式計算,

%其中ys和xs是初始化條件向量,即:

%ys=[y(-1),y(-2),...,y(-n)]

%xs=[x(-1),x(-2),...,x(-m)]

%如果xn是因果序列,則xs=0,呼叫時可預設xs,用filtic(b,a,ys,xs)函式

%計算出的xi被稱為等效初始條件的輸入向量。(預設xs可用filtic(b,a,ys)計算)

%用filter(b,a,xn,xi)函式計算出的yn向量與輸入訊號和系統的初始狀態有關,稱為系統的全響應。如果

%系統的初始條件為零,就預設xi=0,呼叫格式為

%yn=filter(b,a,xn)

%這樣計算出的yn稱為系統的零狀態響應

%例2.5.1的matlab程式:y(n)=a*y(n-1)+x(n);x(n)=δ(n),分別求不同初始條件的輸出序列yn(1)y(-1)=1;

%(2)y(-1)=1;(3)y(n)=0(n>0)

a=0.8;ys=1;

xn=[1,zeros(1,30)];

b=1;a=[1,-a];

xi=filtic(b,a,xn);

yn=filter(b,a,xn,xi);

n=0:length(yn)-1;

subplot(1,2,1),stem(n,yn,'.');title('(a)');xlabel('n');ylabel('y(n)');

subplot(1,2,2),stem(n,hn,'.');title('(b)');xlabel('n');ylabel('h(n)');

有趣的微分方程之常係數線性微分方程

學習需靜心,淨心,精心 先來看看齊次的 方程1 p,q為常數。多麼漂亮的乙個式子啊!下面來看看我們如何來求解這個式子 找到方程1的兩個線性無關的解,則它們的組合y c1y1 x c2y2 x 是方程1的通解 當r為常數時,y erx 和它的n次導數只差乙個常數因子,哦吼,想到了什麼?似乎已經初步看到...

常係數線性微分方程的直接解法 利用特徵方程

線性系統的最重要的特徵是 系統對激勵的反應是線性的,而且系統本身是線性的,牢記 疊加組合性。例如 二階線性微分方程 x 2x 5x 0 x t 0 0 x t 0 0 這是個齊次二階常係數微分方程,對應的初始條件為均0,意味著系統初始狀態為0,由於系統無激勵,系統的初始狀態又為0,所以系統不運動,即...

有趣的微分方程之常係數非齊次線性微分方程

上次我們見識了齊次的,這次我們來看看非齊次的。我們已經知道 假設,不然應該看看前面的文章 二階非齊次線性微分方程的通解是其所對應的齊次微分方程的通解加上其的乙個特解,如何求齊次微分方程的通解我們已知,現在的問題就是求非齊次方程的乙個特解,這該如何做呢?先說兩種特殊情景,可以使用待定係數法不用積分就可...