2013-10-15 74 views
-3

由於信號:Matlab的練習:我只是不明白這一點

f1[n] = sinc[n] {1[n+5]-1[n-5]} 
f2[n] = 1-rect[n] 
f3[n] = 1[n]-1[n-5] 

寫在MATLAB一個PROGRAMM中,您將檢查以下禮節:

1)sinc[n]:=sin(phi*n)/phi*n; 
2)(f1*f2)[n] = (f2*f1)[n]; 
3)f1[n]*{ f2[n] + f3[n] } = f1[n]*f2[n] + f1[n]*f3[n]; 
4)(f1*delta)[n] = (delta*f1)[n] = f1[n]; 

我真的真的感謝關於如何解決這個問題的任何提示/理想。 :)

回答

1
sinc[n]:=sin(phi*n)/phi*n; 

這當然是不Matlab的語法和;末使得它不太像一個問題提出。無論如何,你有兩個選擇。可以繪製函數以視覺評估等價性,或者檢查矢量。我會用這個演示,然後你可以嘗試所有其他的。

首先,您需要製作一個樣本n矢量,它將成爲您的用於測試等效性(即您的圖的x值)的域。我要去任意選擇:

n = -10:0.01:10; 

而且我要通過phi假設你實際上是基於對sinc Matlab的定義意味着pihttp://www.mathworks.com/help/signal/ref/sinc.html

所以現在我們要功能:

a = sinc(n); 
b = sin(n)./n; 

ab現在有用於的n每個元素對應的「Y」值的向量。您還會注意到我在/之前使用了.,這意味着按元素進行劃分,即將每個元素除以每個對應元素,而不是矩陣分割,其中矩陣分割是矩陣相乘,然後是矩陣乘法。

現在讓我們來繪製出來:

plot(n, a, n, b, 'r') 

最後檢查數值等同,我們可以這樣做:

all(a == b) 

但(這可能是一個有點超出範圍的提問,但重要要知道)你實際上從來不應該檢查像這樣的浮點數的絕對等價,因爲你在內部計算中由於截斷不同而導致精度錯誤(因爲你的計算機如何存儲浮點數)。相反,最好檢查兩個數字之間的差異是否小於某個微小的閾值。

all((a - b) < 0.000001) 

我會留下,其餘由你

相關問題