❶ matlab 如何實現兩個連續函數的卷積,並得到卷積函數
連續函數也需要數字化,如 y(x) = f(x) * g(x); 這里*代表卷積, 如:
% 假定f(x) = sin(x), x的范圍是[-1, 1];
% 假定g(x) = cos(x), x的范圍是[0, 1];
% y(x)為f(x)和g(x)的卷積,為待求專函數
dx = 0.01; % 設定數字化的屬最小精度
x = -1 : dx : 1;
fx = sin(x); % 數字化後的f(x);
x = 0 : dx : 1;
gx = cos(x); % 數字化後的g(x);
yx = conv(fx, gx); % yx即為所求的卷積函數;
❷ matlab如何卷積
f=conv(f1(x),f2(2))
conv是求卷積的函數
❸ matlab怎樣求卷積
function [f,k]=sconv(f1,f2,k1,k2,p)
%計算連續信號卷積積分f(t)=f1(t)*f2(t)
%f:卷積積分f(t)對應的非零樣值向量
%k:f(t)的對應時間向量
%f1:f1(t)非零樣值向量
%f2:f2(t)的非零樣值向量
%k1:f1(t)的對應時間向量
%k2:f2(t)的對應時間向量
%p:取樣時間間隔
f=conv(f1,f2);
f=f*p;
k0=k1(1)+k2(1);
k3=length(f1)+length(f2)-2;
k=k0:p:k0+k3*p;
subplot(2,2,1)
plot(k1,f1);
title('f1(t)');
xlabel('t');
ylabel('f1(t)');
subplot(2,2,2);
plot(k2,f2);
title('f2(t)')
subplot(2,2,3)
plot(k,f);
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h);
title('f(t)=f1(t)*f2(t)')
xlabel('t');
ylabel('f(t)')
❹ 用matlab做深度學習,有什麼工具箱可以直接調用嗎
如果只是想學學,可以自己編,網上有deeplearning toolbox代碼。
當然如果想用到更多的功能,包括網路回框架搭建,gpu,多線程等答,可以使用Matconvnet,主要是卷積神經網路,速度跟caffe差不多。
❺ 如何用matlab實現兩個函數的卷積運算
在MATLAB中,可以用函數y=filter(p,d,x)實現差分方程的模擬,也可以用函數
y=conv(x,h)計算卷積。
(1)即y=filter(p,d,x)用來實現差分方程,d表示差分方程輸出y的系數,p表示輸入x的系數,而x表示輸入序列。輸出結果長度數等於x的長度。
實現差分方程,先從簡單的說起:
filter([1,2],1,[1,2,3,4,5]),實現y[k]=x[k]+2*x[k-1]
y[1]=x[1]+2*0=1
(x[1]之前狀態都用0)
y[2]=x[2]+2*x[1]=2+2*1=4
(2)y=conv(x,h)是用來實現卷級的,對x序列和h序列進行卷積,輸出的結果個數等於x的長度與h的長度之和減去1。
卷積公式:z(n)=x(n)*y(n)=
∫x(m)y(n-m)dm.
程序一:以下兩個程序的結果一樣
(1)h
=
[3
2
1
-2
1
0
-4
0
3];
%
impulse
response
x
=
[1
-2
3
-4
3
2
1];
%
input
sequence
y
=
conv(h,x);
n
=
0:14;
subplot(2,1,1);
stem(n,y);
xlabel('Time
index
n');
ylabel('Amplitude');
title('Output
Obtained
by
Convolution');
grid;
(2)x1
=
[x
zeros(1,8)];
y1
=
filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Time
index
n');
ylabel('Amplitude');
title('Output
Generated
by
Filtering');
grid;
程序二:filter和conv的不同
x=[1,2,3,4,5];
h=[1,1,1];
y1=conv(h,x)
y2=filter(h,1,x)
y3=filter(x,1,h)
結果:y1
=
1
3
6
9
12
9
5
y2
=
1
3
6
9
12
y3
=
1
3
6
可見:filter函數y(n)是從n=1開始,認為所有n<1都為0;而conv是從卷積公式計算,包括n<1部分。
因此filter
和conv
的結果長短不同
程序三:濾波後信號幅度的變化
num=100;
%總共1000個數
x=rand(1,num);
%生成0~1隨機數序列
x(x>0.5)=1;
x(x<=0.5)=-1;
h1=[0.2,0.5,1,0.5,0.2];
h2=[0,0,1,0,0];
y1=filter(h1,1,x);
y2=filter(h2,1,x);
n=0:99;
subplot(2,1,1);
stem(n,y1);
subplot(2,1,2);
stem(n,y2);
MATLAB中提供了卷積運算的函數命令conv2,其語法格式為:
C
=
conv2(A,B)
C
=
conv2(A,B)返回矩陣A和B的二維卷積C。若A為ma×na的矩陣,B為mb×nb的矩陣,則C的大小為(ma+mb-1)×(na+nb-1)。
例:
A=magic(5)
A
=
17
24
1
8
15
23
5
7
14
16
4
6
13
20
22
10
12
19
21
3
11
18
25
2
9
>>
B=[1
2
1
;0
2
0;3
1
3]
B
=
1
2
1
0
2
0
3
1
3
>>
C=conv2(A,B)
C
=
17
58
66
34
32
38
15
23
85
88
35
67
76
16
55
149
117
163
159
135
67
79
78
160
161
187
129
51
23
82
153
199
205
108
75
30
68
135
168
91
84
9
33
65
126
85
104
15
27
MATLAB圖像處理工具箱提供了基於卷積的圖象濾波函數filter2,filter2的語法格式為:
Y
=
filter2(h,X)
其中Y
=
filter2(h,X)返回圖像X經運算元h濾波後的結果,默認返回圖像Y與輸入圖像X大小相同。例如:
其實filter2和conv2是等價的。MATLAB在計算filter2時先將卷積核旋轉180度,再調用conv2函數進行計算。
Fspecial函數用於創建預定義的濾波運算元,其語法格式為:
h
=
fspecial(type)
h
=
fspecial(type,parameters)
參數type制定運算元類型,parameters指定相應的參數,具體格式為:
type='average',為均值濾波,參數為n,代表模版尺寸,用向量表示,默認值為[3,3]。
type=
'gaussian',為高斯低通濾波器,參數有兩個,n表示模版尺寸,默認值為[3,3],sigma表示濾波器的標准差,單位為像素,默認值為0.5
❻ 在學慣用matlab深度學習工具包,想知道怎麼才能訓
工具包中有tests文件夾,其中NN.m使用非深度學習的神經網路進行訓練;CNN,DBN,SAE分別是採用卷積神經回網路,深答度信念網路和堆棧稀疏編碼來在神經網路前加上深度學習的內容來提取特徵值。運行任一個程序都可以。
❼ 如何在matlab中設計一個卷積神經網路實現圖像分割
可以將圖片傳一下。一般計算面積可以通過灰度化——二值化——區域屬性面積來計算
❽ 用MATLAB怎麼實現離散信號的卷積啊 編程
在MATLAB中,可以用函數y=filter(p,d,x)實現差分方程的模擬,也可以用函數 y=conv(x,h)計算卷積。
(1)即y=filter(p,d,x)用來實現差分方程,d表示差分方程輸出y的系數,p表示輸入x的系數,而x表示輸入序列。輸出結果長度數等於x的長度。
實現差分方程,先從簡單的說起:
filter([1,2],1,[1,2,3,4,5]),實現y[k]=x[k]+2*x[k-1]
y[1]=x[1]+2*0=1 (x[1]之前狀態都用0)
y[2]=x[2]+2*x[1]=2+2*1=4
(2)y=conv(x,h)是用來實現卷級的,對x序列和h序列進行卷積,輸出的結果個數等於x的長度與h的長度之和減去1。
卷積公式:z(n)=x(n)*y(n)= ∫x(m)y(n-m)dm.
程序一:以下兩個程序的結果一樣
(1)h = [3 2 1 -2 1 0 -4 0 3]; % impulse response
x = [1 -2 3 -4 3 2 1]; % input sequence
y = conv(h,x);
n = 0:14;
subplot(2,1,1);
stem(n,y);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Obtained by Convolution'); grid;
(2)x1 = [x zeros(1,8)];
y1 = filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Generated by Filtering'); grid;
程序二:filter和conv的不同
x=[1,2,3,4,5];
h=[1,1,1];
y1=conv(h,x)
y2=filter(h,1,x)
y3=filter(x,1,h)
結果:y1 = 1 3 6 9 12 9 5
y2 = 1 3 6 9 12
y3 = 1 3 6
可見:filter函數y(n)是從n=1開始,認為所有n<1都為0;而conv是從卷積公式計算,包括n<1部分。
因此filter 和conv 的結果長短不同
程序三:濾波後信號幅度的變化
num=100; %總共1000個數
x=rand(1,num); %生成0~1隨機數序列
x(x>0.5)=1;
x(x<=0.5)=-1;
h1=[0.2,0.5,1,0.5,0.2];
h2=[0,0,1,0,0];
y1=filter(h1,1,x);
y2=filter(h2,1,x);
n=0:99;
subplot(2,1,1);
stem(n,y1);
subplot(2,1,2);
stem(n,y2);
MATLAB中提供了卷積運算的函數命令conv2,其語法格式為:
C = conv2(A,B)
C = conv2(A,B)返回矩陣A和B的二維卷積C。若A為ma×na的矩陣,B為mb×nb的矩陣,則C的大小為(ma+mb-1)×(na+nb-1)。
例:
A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> B=[1 2 1 ;0 2 0;3 1 3]
B =
1 2 1
0 2 0
3 1 3
>> C=conv2(A,B)
C =
17 58 66 34 32 38 15
23 85 88 35 67 76 16
55 149 117 163 159 135 67
79 78 160 161 187 129 51
23 82 153 199 205 108 75
30 68 135 168 91 84 9
33 65 126 85 104 15 27
MATLAB圖像處理工具箱提供了基於卷積的圖象濾波函數filter2,filter2的語法格式為:
Y = filter2(h,X)
其中Y = filter2(h,X)返回圖像X經運算元h濾波後的結果,默認返回圖像Y與輸入圖像X大小相同。例如:
其實filter2和conv2是等價的。MATLAB在計算filter2時先將卷積核旋轉180度,再調用conv2函數進行計算。
Fspecial函數用於創建預定義的濾波運算元,其語法格式為:
h = fspecial(type)
h = fspecial(type,parameters)
參數type制定運算元類型,parameters指定相應的參數,具體格式為:
type='average',為均值濾波,參數為n,代表模版尺寸,用向量表示,默認值為[3,3]。
type= 'gaussian',為高斯低通濾波器,參數有兩個,n表示模版尺寸,默認值為[3,3],sigma表示濾波器的標准差,單位為像素,默認值為0.5
❾ matlab 卷積
x=[0.2 0.25 0.68 1.69];
y=randn(1,1000); %高斯隨機數
result=conv(y,x); %卷積
------------------------------------
w = conv(u,v) convolves vectors u and v.
這個函數就是MATLAB自帶的卷積函數
要是自己編 需要 反轉 相乘回 相加 啥的~答