為了完成學校布置的卷積動畫任務,匆匆學了下matlab的相關操作,寫的**也是很爛,最後實現了相關功能,分享一下。
clc
subplot(2
,1,2
)t1=[0
0.1]
;%同時輸入兩個點,兩點一線
m1=0.5
*t1;
p =plot
(t1,m1,
'-b'
,'markersize',5
);axis([
0501.5])
;grid on;x=-
3:0.01:6
; y=
zeros(1
,length
(x))
;% x,y 的初始化n=1
;j=1;
%定義兩個計數變數
%定義乙個函式h(x)
ft=f
(x,0,1
);subplot(2
,1,1
)h=plot
(x,ft)
;txt=text (1,
1.06
,'h(x)');
axis([
x(1)
,x(end),0
,1.5])
;grid on;
hold on;
%在同乙個figure下繪製g(x)
%繪製g(x)
plot
(x,f
(x,0
,0.5),
'm')
;l=text (1,
0.56
,'g(x)');
pause(2
);%把x變為τ,反褶h(τ)
k=plot
(x,f
(-x,0,
1),'r');
axis([
x(1)
,x(end),0
,1.5])
;txt2=
text(-
1,1.06
,'h(-τ)');
grid on;
pause(1
);delete
(h);
%清除h(x)的影象
delete
(l);
text (1,
0.56
,'g(τ)');
delete (txt)
pause
(0.5);
%令h(x-τ)動態右移
delete
(k);
delete (txt2)
for i=0:
0.01:4
subplot(2
,1,1
) m=
plot
(x,f
(-x,
-i,1),
'r')
axis([
x(1)
,x(end),0
,1.5])
; grid on;
txt=text (-1
+i,1.06
,'h(x-τ)');
if i<
2 y=
0.5*
(x==i)
u(n)
=plot
(x,y,
'k')
%用直線填充函式交匯的地方
n=n+1;
elseif j<=
200
delete (
u(j)
)%刪除不交匯區域的直線
j=j+
1
endpause
(0.01);
delete
(m);
delete
(txt)
;%刪除前乙個函式繪製後乙個函式實現動態移動
subplot(2
,1,2
) hold on
t1=t1+
0.01
;%下一段線
if i<
1.9 m1=
0.5*t1;
p =plot
(t1,m1,
'-b'
,'markersize',5
); elseif i>
1.97
m1=-0.5
*t1+
2 p =
plot
(t1,m1,
'-b'
,'markersize',5
); end
axis([
0501.5])
;pause
(0.0001
);
end subplot(2
,1,1
)plot
(x,f
(-x,-4
,1),
'r')
text (4,
1.06
,'h(x-τ)');
%繪製寬度為2,位置隨i變化,高度隨q變化的脈衝子函式
卷積操作的matlab實現
工作之餘,腦海中突然蹦出 影象的卷積操作怎麼實現呢?然後仔細考慮了以下實現細節,並記錄下來,以備日後檢視。為了便於敘述和驗證程式的有效性,這裡貼出一張原圖 圖1 和它相應地經過均值核卷積以後的效果圖 圖2 圖1.castle原始 圖2.castle經過均值核卷積後的結果 matlab functio...
Matlab的卷積編碼實現
最近在做乙個scfde波形的c和向量實現,指導老師給了幾份matlab 要我把對應的c語言和向量寫出來 並行運算指令操作 簡單的 一下就寫完了,有些寫的還是有點煩躁,特別是卷積編碼的解碼,今天我們先不談解碼,先談下編碼,這個還是寫的比較流暢的。卷積編碼器,聽著就不好理解,沒事,我來分析一波,首先我們...
卷積的運算過程及matlab實現
卷積是訊號處理領域最為常見的運算,對於乙個線性時不變系統而言,只要知道了系統的單位衝擊響應,則可以由輸入序列x n 和單位衝擊響應h n 經卷積運算得到系統的輸出。下面給出輸入訊號x 1 2 3 4 單位衝擊響應h 2 1 1 時,系統輸出的運算過程,雖然matlab自帶了卷積函式conv,但是通過...