annotate testPrograms/html/myConv.html @ 22:45f28c49461e master

removing duplicate changes
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 13 Jun 2011 18:21:05 +0100
parents 35af36fe0a35
children
rev   line source
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&reg; 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>