rmeddis@15
|
1
|
rmeddis@15
|
2 <!DOCTYPE html
|
rmeddis@15
|
3 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
|
rmeddis@15
|
4 <html xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">
|
rmeddis@15
|
5 <head>
|
rmeddis@15
|
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
rmeddis@15
|
7
|
rmeddis@15
|
8 <!--
|
rmeddis@15
|
9 This HTML is auto-generated from an M-file.
|
rmeddis@15
|
10 To make changes, update the M-file and republish this document.
|
rmeddis@15
|
11 -->
|
rmeddis@15
|
12 <title>myConv</title>
|
rmeddis@15
|
13 <meta name="generator" content="MATLAB 7.6">
|
rmeddis@15
|
14 <meta name="date" content="2011-06-05">
|
rmeddis@15
|
15 <meta name="m-file" content="myConv"><style>
|
rmeddis@15
|
16
|
rmeddis@15
|
17 body {
|
rmeddis@15
|
18 background-color: white;
|
rmeddis@15
|
19 margin:10px;
|
rmeddis@15
|
20 }
|
rmeddis@15
|
21
|
rmeddis@15
|
22 h1 {
|
rmeddis@15
|
23 color: #990000;
|
rmeddis@15
|
24 font-size: x-large;
|
rmeddis@15
|
25 }
|
rmeddis@15
|
26
|
rmeddis@15
|
27 h2 {
|
rmeddis@15
|
28 color: #990000;
|
rmeddis@15
|
29 font-size: medium;
|
rmeddis@15
|
30 }
|
rmeddis@15
|
31
|
rmeddis@15
|
32 /* Make the text shrink to fit narrow windows, but not stretch too far in
|
rmeddis@15
|
33 wide windows. */
|
rmeddis@15
|
34 p,h1,h2,div.content div {
|
rmeddis@15
|
35 max-width: 600px;
|
rmeddis@15
|
36 /* Hack for IE6 */
|
rmeddis@15
|
37 width: auto !important; width: 600px;
|
rmeddis@15
|
38 }
|
rmeddis@15
|
39
|
rmeddis@15
|
40 pre.codeinput {
|
rmeddis@15
|
41 background: #EEEEEE;
|
rmeddis@15
|
42 padding: 10px;
|
rmeddis@15
|
43 }
|
rmeddis@15
|
44 @media print {
|
rmeddis@15
|
45 pre.codeinput {word-wrap:break-word; width:100%;}
|
rmeddis@15
|
46 }
|
rmeddis@15
|
47
|
rmeddis@15
|
48 span.keyword {color: #0000FF}
|
rmeddis@15
|
49 span.comment {color: #228B22}
|
rmeddis@15
|
50 span.string {color: #A020F0}
|
rmeddis@15
|
51 span.untermstring {color: #B20000}
|
rmeddis@15
|
52 span.syscmd {color: #B28C00}
|
rmeddis@15
|
53
|
rmeddis@15
|
54 pre.codeoutput {
|
rmeddis@15
|
55 color: #666666;
|
rmeddis@15
|
56 padding: 10px;
|
rmeddis@15
|
57 }
|
rmeddis@15
|
58
|
rmeddis@15
|
59 pre.error {
|
rmeddis@15
|
60 color: red;
|
rmeddis@15
|
61 }
|
rmeddis@15
|
62
|
rmeddis@15
|
63 p.footer {
|
rmeddis@15
|
64 text-align: right;
|
rmeddis@15
|
65 font-size: xx-small;
|
rmeddis@15
|
66 font-weight: lighter;
|
rmeddis@15
|
67 font-style: italic;
|
rmeddis@15
|
68 color: gray;
|
rmeddis@15
|
69 }
|
rmeddis@15
|
70
|
rmeddis@15
|
71 </style></head>
|
rmeddis@15
|
72 <body>
|
rmeddis@15
|
73 <div class="content">
|
rmeddis@15
|
74 <h2>Contents</h2>
|
rmeddis@15
|
75 <div>
|
rmeddis@15
|
76 <ul>
|
rmeddis@15
|
77 <li><a href="#3">testing convolution speculation</a></li>
|
rmeddis@15
|
78 <li><a href="#4">convolution function</a></li>
|
rmeddis@15
|
79 <li><a href="#5">normalise conv function</a></li>
|
rmeddis@15
|
80 <li><a href="#6">adjust for spike current</a></li>
|
rmeddis@15
|
81 <li><a href="#7">convolution</a></li>
|
rmeddis@15
|
82 </ul>
|
rmeddis@15
|
83 </div><pre class="codeinput">signalDuration=.1;
|
rmeddis@15
|
84 spikeTime= signalDuration/2;
|
rmeddis@15
|
85 <span class="keyword">for</span> sampleRate=[1000 2000];
|
rmeddis@15
|
86 </pre><pre class="codeinput"> disp([<span class="string">'sample rate= '</span> num2str(sampleRate)])
|
rmeddis@15
|
87 </pre><pre class="codeoutput">sample rate= 1000
|
rmeddis@15
|
88 </pre><pre class="codeoutput">sample rate= 2000
|
rmeddis@15
|
89 </pre><h2>testing convolution speculation<a name="3"></a></h2><pre class="codeinput">dt= 1/sampleRate;
|
rmeddis@15
|
90 signalLength=round(signalDuration/dt);
|
rmeddis@15
|
91 spikeArray=zeros(1,signalLength);
|
rmeddis@15
|
92 spikeLocation=round(spikeTime/dt);
|
rmeddis@15
|
93 spikeArray(spikeLocation)=1;
|
rmeddis@15
|
94 disp([<span class="string">'length of spike array= '</span> num2str(length(spikeArray))])
|
rmeddis@15
|
95 t=dt*(1:length(spikeArray));
|
rmeddis@15
|
96 plot(t, spikeArray)
|
rmeddis@15
|
97 </pre><pre class="codeoutput">length of spike array= 100
|
rmeddis@15
|
98 </pre><img vspace="5" hspace="5" src="myConv_01.png"> <pre class="codeoutput">length of spike array= 200
|
rmeddis@15
|
99 </pre><img vspace="5" hspace="5" src="myConv_06.png"> <h2>convolution function<a name="4"></a></h2><pre class="codeinput">CNspikeToCurrentTau=0.01;
|
rmeddis@15
|
100 t=dt:dt:3*CNspikeToCurrentTau;
|
rmeddis@15
|
101 CNalphaFunction=<span class="keyword">...</span>
|
rmeddis@15
|
102 (1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau);
|
rmeddis@15
|
103
|
rmeddis@15
|
104 plot(t, CNalphaFunction)
|
rmeddis@15
|
105 </pre><img vspace="5" hspace="5" src="myConv_02.png"> <img vspace="5" hspace="5" src="myConv_07.png"> <h2>normalise conv function<a name="5"></a></h2><pre class="codeinput">CNalphaFunction=CNalphaFunction/sum(CNalphaFunction);
|
rmeddis@15
|
106 plot(t, CNalphaFunction)
|
rmeddis@15
|
107 disp([<span class="string">'area under function= '</span> num2str(sum(CNalphaFunction))])
|
rmeddis@15
|
108 </pre><pre class="codeoutput">area under function= 1
|
rmeddis@15
|
109 </pre><img vspace="5" hspace="5" src="myConv_03.png"> <pre class="codeoutput">area under function= 1
|
rmeddis@15
|
110 </pre><img vspace="5" hspace="5" src="myConv_08.png"> <h2>adjust for spike current<a name="6"></a></h2><pre class="codeinput">CNcurrentPerSpike=2;
|
rmeddis@15
|
111 CNalphaFunction=CNalphaFunction*CNcurrentPerSpike;
|
rmeddis@15
|
112 plot(t, CNalphaFunction)
|
rmeddis@15
|
113 </pre><img vspace="5" hspace="5" src="myConv_04.png"> <img vspace="5" hspace="5" src="myConv_09.png"> <h2>convolution<a name="7"></a></h2><pre class="codeinput">result=conv(spikeArray,CNalphaFunction);
|
rmeddis@15
|
114 t=dt*(1:length(result));
|
rmeddis@15
|
115 plot(t, result)
|
rmeddis@15
|
116 disp([<span class="string">'area under function= '</span> num2str(sum(result))])
|
rmeddis@15
|
117 </pre><pre class="codeoutput">area under function= 2
|
rmeddis@15
|
118 </pre><img vspace="5" hspace="5" src="myConv_05.png"> <pre class="codeoutput">area under function= 2
|
rmeddis@15
|
119 </pre><img vspace="5" hspace="5" src="myConv_10.png"> <pre class="codeinput"><span class="keyword">end</span>
|
rmeddis@15
|
120 </pre><p class="footer"><br>
|
rmeddis@15
|
121 Published with MATLAB® 7.6<br></p>
|
rmeddis@15
|
122 </div>
|
rmeddis@15
|
123 <!--
|
rmeddis@15
|
124 ##### SOURCE BEGIN #####
|
rmeddis@15
|
125 signalDuration=.1;
|
rmeddis@15
|
126 spikeTime= signalDuration/2;
|
rmeddis@15
|
127 for sampleRate=[1000 2000];
|
rmeddis@15
|
128 disp(['sample rate= ' num2str(sampleRate)])
|
rmeddis@15
|
129
|
rmeddis@15
|
130 %% testing convolution speculation
|
rmeddis@15
|
131 dt= 1/sampleRate;
|
rmeddis@15
|
132 signalLength=round(signalDuration/dt);
|
rmeddis@15
|
133 spikeArray=zeros(1,signalLength);
|
rmeddis@15
|
134 spikeLocation=round(spikeTime/dt);
|
rmeddis@15
|
135 spikeArray(spikeLocation)=1;
|
rmeddis@15
|
136 disp(['length of spike array= ' num2str(length(spikeArray))])
|
rmeddis@15
|
137 t=dt*(1:length(spikeArray));
|
rmeddis@15
|
138 plot(t, spikeArray)
|
rmeddis@15
|
139
|
rmeddis@15
|
140 %% convolution function
|
rmeddis@15
|
141 CNspikeToCurrentTau=0.01;
|
rmeddis@15
|
142 t=dt:dt:3*CNspikeToCurrentTau;
|
rmeddis@15
|
143 CNalphaFunction=...
|
rmeddis@15
|
144 (1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau);
|
rmeddis@15
|
145
|
rmeddis@15
|
146 plot(t, CNalphaFunction)
|
rmeddis@15
|
147
|
rmeddis@15
|
148 %% normalise conv function
|
rmeddis@15
|
149 CNalphaFunction=CNalphaFunction/sum(CNalphaFunction);
|
rmeddis@15
|
150 plot(t, CNalphaFunction)
|
rmeddis@15
|
151 disp(['area under function= ' num2str(sum(CNalphaFunction))])
|
rmeddis@15
|
152
|
rmeddis@15
|
153 %% adjust for spike current
|
rmeddis@15
|
154 CNcurrentPerSpike=2;
|
rmeddis@15
|
155 CNalphaFunction=CNalphaFunction*CNcurrentPerSpike;
|
rmeddis@15
|
156 plot(t, CNalphaFunction)
|
rmeddis@15
|
157
|
rmeddis@15
|
158 %% convolution
|
rmeddis@15
|
159 result=conv(spikeArray,CNalphaFunction);
|
rmeddis@15
|
160 t=dt*(1:length(result));
|
rmeddis@15
|
161 plot(t, result)
|
rmeddis@15
|
162 disp(['area under function= ' num2str(sum(result))])
|
rmeddis@15
|
163
|
rmeddis@15
|
164 end
|
rmeddis@15
|
165
|
rmeddis@15
|
166
|
rmeddis@15
|
167
|
rmeddis@15
|
168
|
rmeddis@15
|
169 ##### SOURCE END #####
|
rmeddis@15
|
170 -->
|
rmeddis@15
|
171 </body>
|
rmeddis@15
|
172 </html> |