2017-03-23 30 views
0

我想繪製使用kroneckerDelta從下面的代碼產生的函數。我嘗試了很多方法來繪製三角洲,但沒有任何工作。我試過fplot並在繪圖之前將S變量轉換爲雙精度型。但沒有任何實際工作。Kronecker Delta的符號Z變換

close all;clear all;clc; %#ok<*CLSCR> 
syms y(n) x(n) H(Z) z 
H(Z) = 5*x + 2*x*z^-2 + 3*x*z^-1; 
h(n) = iztrans(H(Z), z, n) 
S = subs(h(n), {x}, {1}) 

輸出是:

h(n) = 5*x(n)*kroneckerDelta(n, 0) + 3*x(n)*kroneckerDelta(n - 1, 0) + 2*x(n)*kroneckerDelta(n - 2, 0) 


S = 3*kroneckerDelta(n - 1, 0) + 2*kroneckerDelta(n - 2, 0) + 5*kroneckerDelta(n, 0) 

回答

2

你不表達你想要繪製所以不可能說你做錯了什麼。但是,由於Kronecker delta的離散性質,您應該可以使用stem函數繪製圖。有沒有必要明確地轉換爲浮點,但你需要在你的價值觀來取代n

syms n; 
S = 3*kroneckerDelta(n - 1, 0) + 2*kroneckerDelta(n - 2, 0) + 5*kroneckerDelta(n, 0); 
N = -5:5; 
S2 = subs(S,n,N); 
stem(N,S2); 

另一種選擇是使用matlabFunction到象徵性的表達轉換爲數值函數:

syms n; 
S = 3*kroneckerDelta(n - 1, 0) + 2*kroneckerDelta(n - 2, 0) + 5*kroneckerDelta(n, 0); 
S2 = matlabFunction(S); 
N = -5:5; 
stem(n,S2(N)); 

這兩個選項都會產生如下所示的情節: stem plot

+0

非常感謝,您讓我瞭解了一些模糊的概念並提供了答案。再次感謝 – Tes3awy