conv是做卷積,就是按照書上的做法,先翻轉,在一步步平移,得出結果。對於兩個長度分別為n,m的序列,卷積結果長度為m+n-1
filter是做濾波,其實原理跟卷積是想通的,只不過處理結果的方法不同,先看示例程式:
x=[1,2,3,4,5];
h=[1,1,1];
y1=conv(h,x)
y2=filter(h,1,x)
y3=filter(x,1,h)
y4=filter(x,1,[h,zeros(1,4)])
結果為:
y1 =
1 3 6 9 12 9 5
y2 =
1 3 6 9 12
y3 =
1 3 6
y4 =
1 3 6 9 12 9 5
現在對結果一一作出解釋;
1.y1的確是嚴格按照卷積的數學表示式計算的,不解釋。
在解釋後面幾條時,先說一下filter的用法:filter(b,a,x),其中b,a組成乙個差分方程,x是輸入訊號,例如:
filter([1,2],1,[1,2,3,4,5])實現 y[k]=x[k]+2*x[k-1]
咱們這裡討論的就是a=1的情況。有了基本說明,現在言歸正傳:
2.說明filter函式平移停滯在x的最後乙個輸入與濾波器的第乙個係數對齊時。這裡為
從
1 1 1
5 4 3 2 1
輸出1,到
1 1 1
5 4 3 2 1
輸出12
3.驗證2的觀點,這裡為:
從
1 2 3 4 5
1 1 1
輸出1,到
1 2 3 4 5
1 1 1
輸出6
4.依然是驗證2的觀點,從
1 2 3 4 5
0 0 0 0 1 1 1 1
輸出1,到
1 2 3 4 5
0 0 0 0 1 1 1 1
輸出5
並且,第4種情況下,通過補0使得所有的1都移到了濾波器抽頭的末尾,這個結果與卷積是相同的。
到這裡,我想大家就明白了二者的區別和關係。
Matlab 在Matlab中如何畫圓
rectangle函式功能 建立二維矩形物件。1.1 rectangle position x,y,w,h 其中以x,y為起始座標開始,畫出長為w,寬為h的矩形。1.2 rectangle curvature a,b 指定矩陣邊的曲率,可以使它從矩形到橢圓不同變化,水平曲率x為矩形寬度的分數,是沿著...
Matlab中的括號()
matlab中經常會用到括號去引用某array或者是cel l的內容,但三者有什麼具體區別呢?中括號用來構建向量 vectors 或者是矩陣 matrices 如 6.9 9.64 sqrt 1 就是乙個有三個元素的向量。11 12 13 21 22 23 是乙個二乘三的矩陣.分號 用來結束一行。中...
MATLAB中fopen fprintf函式的用法
matlab中fopen函式在指定檔案開啟的例項如下 1 fopen 開啟檔案,賦予檔案代號。語法1 fid fopen filename,permission 用指定的方式開啟檔案 fid n n是正整數 表示檔案開啟成功,檔案代號是n.fid 1 表示檔案開啟不成功。fid在此次檔案關閉前總是有...