用matlab 對序列卷積演算法的驗證

2021-06-22 01:09:23 字數 1134 閱讀 8314

我思路是用豎乘法設計演算法,在程式開頭能使用者隨機輸出兩個序列的數值、長度和起始位置。程式能計算出兩個序列的卷積。最後結果和直接呼叫卷積函式的結果進行對比。並將圖繪製出來。

程式部分:

clc;clear all

x1=[1,3,5,7,6,4,2,1,4,5,2,12,34,11,34,12,2,33,12,12,12,5,61,35];ns1=-3;

x2=[4,0,2,1,-1,3,45,22,32,12,32,12,12,12,14,54,12,11,22,3,42,3,4];ns2=1;

nf1=ns1+length(x1)-1;

nf2=ns2+length(x2)-1;

n1=ns1:nf1

n2=ns2:nf2

ns3=ns2+ns1                       %計算卷積序列起始位置

nf3=ns3+length(x1)+length(x2)-2      %計算卷積序列終止位置

n3=ns3:nf3

y2=zeros(1,length(n3));              %對卷積序列賦零初值

n=ns2             %定義迴圈起始位置

m=0              %在迴圈中

m變數依次表示被卷積序列的每個元素

q=1               %用

q引數控制移位資訊

while n<=nf2        %定義迴圈終止位置

m=x2(n)

y1=m*x1                 %m與序列1相乘

[y1,n4] = seqshift(y1,n1,q)   %相乘結果依次移

1-length(x2

)位 

[y2,n3]=seqadd(y1,n4,y2,n3)  %通過迴圈移位後結果累加

q=q+1

n=n+1

end[y4,n5] = convwthn (x1,n1,x2,n2)   %呼叫卷積函式計算

subplot(211);stem(n3,y2,'.');xlabel('x1*x2演算法

');grid;

subplot(212);stem(n5,y4,'.');xlabel('x1*x2函式

');grid;

MATLAB中的卷積運算

imfilter 線性空間濾波 conv2 二位卷積 conv2 a,b,same 將b作為模版在a上平移,最後的矩陣大小與a相同 例如 a 1 2 3 4 5 6 7 8 9 b 1 1 1 1 1 1 1 1 1 conv2 a,b,same 12 21 16 27 45 33 24 39 28...

卷積操作的matlab實現

工作之餘,腦海中突然蹦出 影象的卷積操作怎麼實現呢?然後仔細考慮了以下實現細節,並記錄下來,以備日後檢視。為了便於敘述和驗證程式的有效性,這裡貼出一張原圖 圖1 和它相應地經過均值核卷積以後的效果圖 圖2 圖1.castle原始 圖2.castle經過均值核卷積後的結果 matlab functio...

Matlab的卷積編碼實現

最近在做乙個scfde波形的c和向量實現,指導老師給了幾份matlab 要我把對應的c語言和向量寫出來 並行運算指令操作 簡單的 一下就寫完了,有些寫的還是有點煩躁,特別是卷積編碼的解碼,今天我們先不談解碼,先談下編碼,這個還是寫的比較流暢的。卷積編碼器,聽著就不好理解,沒事,我來分析一波,首先我們...