• Aucun résultat trouvé

Signal processing system System complexity

N/A
N/A
Protected

Academic year: 2022

Partager "Signal processing system System complexity"

Copied!
1
0
0

Texte intégral

(1)

Safouane NOUBIR, Yannick BORNAT and Bertrand LE GAL

IMS Laboratory, UMR CNRS 5218, Bordeaux INP, University of Bordeaux

Talence, France

Real-time analysis of living biological cell activity

Signal processing system System complexity

Conclusion and Perspectives Design methodology

Application domain Abstract

Processing system for cell network identification

Behavioral description of the processing system

System design constraints

DASIP’18 : the Conference on Design and Architectures for Signal and Image Processing, Porto, Portugal, October 2018.

(a) spike detection

HPF SWT Mono CM OUT

IN

(b) inter-channel correlation Signal processing system

<latexit sha1_base64="QlCqhBrKZNLJfqGbfEpluChfxGY=">AAAC8XicjVLLSsQwFD3W1/gedemmOAiuhlYEXQ66cangzAgq0tbMGO2LJhVE/Ae3uhK3fpF/oPgTnsQKPvCR0vbk3HPuzU0S5rFU2vMeB5zBoeGR0drY+MTk1PRMfXauo7KyiEQ7yuKs2AsDJWKZiraWOhZ7eSGCJIxFNzzbNPHuuSiUzNJdfZGLwyTop7Ino0CT6hwo2U+Co3rDa3p2uN+BX4EGqrGd1V9wgGNkiFAigUAKTRwjgOKzDx8ecnKHuCRXEEkbF7jCOL0lVYKKgOwZv33O9is25dzkVNYdsUrMt6DTxRI9GXUFsanm2nhpMxv2p9yXNqdZ2wX/YZUrIatxQvYv37vyvz7Ti0YP67YHyZ5yy5juoipLaXfFrNz90JVmhpycwceMF8SRdb7vs2s9yvZu9jaw8SerNKyZR5W2xPOv3eWs0GNto+XJ8CL4X4/9O+isNH2v6e+sNlob1ZWoYQGLWOa5r6GFLWyjzTqnuMYNbh3l3Dh3zv2b1BmoPPP4NJyHV+M7moc=</latexit><latexit sha1_base64="QlCqhBrKZNLJfqGbfEpluChfxGY=">AAAC8XicjVLLSsQwFD3W1/gedemmOAiuhlYEXQ66cangzAgq0tbMGO2LJhVE/Ae3uhK3fpF/oPgTnsQKPvCR0vbk3HPuzU0S5rFU2vMeB5zBoeGR0drY+MTk1PRMfXauo7KyiEQ7yuKs2AsDJWKZiraWOhZ7eSGCJIxFNzzbNPHuuSiUzNJdfZGLwyTop7Ino0CT6hwo2U+Co3rDa3p2uN+BX4EGqrGd1V9wgGNkiFAigUAKTRwjgOKzDx8ecnKHuCRXEEkbF7jCOL0lVYKKgOwZv33O9is25dzkVNYdsUrMt6DTxRI9GXUFsanm2nhpMxv2p9yXNqdZ2wX/YZUrIatxQvYv37vyvz7Ti0YP67YHyZ5yy5juoipLaXfFrNz90JVmhpycwceMF8SRdb7vs2s9yvZu9jaw8SerNKyZR5W2xPOv3eWs0GNto+XJ8CL4X4/9O+isNH2v6e+sNlob1ZWoYQGLWOa5r6GFLWyjzTqnuMYNbh3l3Dh3zv2b1BmoPPP4NJyHV+M7moc=</latexit><latexit sha1_base64="QlCqhBrKZNLJfqGbfEpluChfxGY=">AAAC8XicjVLLSsQwFD3W1/gedemmOAiuhlYEXQ66cangzAgq0tbMGO2LJhVE/Ae3uhK3fpF/oPgTnsQKPvCR0vbk3HPuzU0S5rFU2vMeB5zBoeGR0drY+MTk1PRMfXauo7KyiEQ7yuKs2AsDJWKZiraWOhZ7eSGCJIxFNzzbNPHuuSiUzNJdfZGLwyTop7Ino0CT6hwo2U+Co3rDa3p2uN+BX4EGqrGd1V9wgGNkiFAigUAKTRwjgOKzDx8ecnKHuCRXEEkbF7jCOL0lVYKKgOwZv33O9is25dzkVNYdsUrMt6DTxRI9GXUFsanm2nhpMxv2p9yXNqdZ2wX/YZUrIatxQvYv37vyvz7Ti0YP67YHyZ5yy5juoipLaXfFrNz90JVmhpycwceMF8SRdb7vs2s9yvZu9jaw8SerNKyZR5W2xPOv3eWs0GNto+XJ8CL4X4/9O+isNH2v6e+sNlob1ZWoYQGLWOa5r6GFLWyjzTqnuMYNbh3l3Dh3zv2b1BmoPPP4NJyHV+M7moc=</latexit><latexit sha1_base64="QlCqhBrKZNLJfqGbfEpluChfxGY=">AAAC8XicjVLLSsQwFD3W1/gedemmOAiuhlYEXQ66cangzAgq0tbMGO2LJhVE/Ae3uhK3fpF/oPgTnsQKPvCR0vbk3HPuzU0S5rFU2vMeB5zBoeGR0drY+MTk1PRMfXauo7KyiEQ7yuKs2AsDJWKZiraWOhZ7eSGCJIxFNzzbNPHuuSiUzNJdfZGLwyTop7Ino0CT6hwo2U+Co3rDa3p2uN+BX4EGqrGd1V9wgGNkiFAigUAKTRwjgOKzDx8ecnKHuCRXEEkbF7jCOL0lVYKKgOwZv33O9is25dzkVNYdsUrMt6DTxRI9GXUFsanm2nhpMxv2p9yXNqdZ2wX/YZUrIatxQvYv37vyvz7Ti0YP67YHyZ5yy5juoipLaXfFrNz90JVmhpycwceMF8SRdb7vs2s9yvZu9jaw8SerNKyZR5W2xPOv3eWs0GNto+XJ8CL4X4/9O+isNH2v6e+sNlob1ZWoYQGLWOa5r6GFLWyjzTqnuMYNbh3l3Dh3zv2b1BmoPPP4NJyHV+M7moc=</latexit>

e x

<latexit sha1_base64="9VcLpn75v0Ow2R4s5D+sbVL4PXU=">AAAC8XicjVLLSsNAFD3GV31XXboJFsGNJRFBl6IblxXsA+qDJJ3W2DQJyUSU0n9wW1fi1i/yDxR/wjNjBB/4mJDkzLnn3Dt3Ztw48FNpWY8jxujY+MRkYWp6ZnZufqG4uFRLoyzxRNWLgihpuE4qAj8UVenLQDTiRDg9NxB1t7uv4vVLkaR+FB7J61ic9JxO6Ld9z5GkauK0v3E1OCuWrLKlh/kd2DkoIR+VqPiCY7QQwUOGHgRCSOIADlI+TdiwEJM7QZ9cQuTruMAA0/RmVAkqHLJdfjucNXM25FzlTLXbY5WAb0KniTV6IuoSYlXN1PFMZ1bsT7n7Oqda2zX/bp6rR1binOxfvnflf32qF4k2dnQPPnuKNaO68/Ismd4VtXLzQ1eSGWJyCrcYT4g97XzfZ1N7Ut272ltHx5+0UrFq7uXaDM+/dhezQpu1lZYnw4tgfz3276C2Wbatsn24Vdrdy69EAStYxTrPfRu7OEAFVda5wA2GuDVSY2jcGfdvUmMk9yzj0zAeXgHB+Zp6</latexit><latexit sha1_base64="9VcLpn75v0Ow2R4s5D+sbVL4PXU=">AAAC8XicjVLLSsNAFD3GV31XXboJFsGNJRFBl6IblxXsA+qDJJ3W2DQJyUSU0n9wW1fi1i/yDxR/wjNjBB/4mJDkzLnn3Dt3Ztw48FNpWY8jxujY+MRkYWp6ZnZufqG4uFRLoyzxRNWLgihpuE4qAj8UVenLQDTiRDg9NxB1t7uv4vVLkaR+FB7J61ic9JxO6Ld9z5GkauK0v3E1OCuWrLKlh/kd2DkoIR+VqPiCY7QQwUOGHgRCSOIADlI+TdiwEJM7QZ9cQuTruMAA0/RmVAkqHLJdfjucNXM25FzlTLXbY5WAb0KniTV6IuoSYlXN1PFMZ1bsT7n7Oqda2zX/bp6rR1binOxfvnflf32qF4k2dnQPPnuKNaO68/Ismd4VtXLzQ1eSGWJyCrcYT4g97XzfZ1N7Ut272ltHx5+0UrFq7uXaDM+/dhezQpu1lZYnw4tgfz3276C2Wbatsn24Vdrdy69EAStYxTrPfRu7OEAFVda5wA2GuDVSY2jcGfdvUmMk9yzj0zAeXgHB+Zp6</latexit><latexit sha1_base64="9VcLpn75v0Ow2R4s5D+sbVL4PXU=">AAAC8XicjVLLSsNAFD3GV31XXboJFsGNJRFBl6IblxXsA+qDJJ3W2DQJyUSU0n9wW1fi1i/yDxR/wjNjBB/4mJDkzLnn3Dt3Ztw48FNpWY8jxujY+MRkYWp6ZnZufqG4uFRLoyzxRNWLgihpuE4qAj8UVenLQDTiRDg9NxB1t7uv4vVLkaR+FB7J61ic9JxO6Ld9z5GkauK0v3E1OCuWrLKlh/kd2DkoIR+VqPiCY7QQwUOGHgRCSOIADlI+TdiwEJM7QZ9cQuTruMAA0/RmVAkqHLJdfjucNXM25FzlTLXbY5WAb0KniTV6IuoSYlXN1PFMZ1bsT7n7Oqda2zX/bp6rR1binOxfvnflf32qF4k2dnQPPnuKNaO68/Ismd4VtXLzQ1eSGWJyCrcYT4g97XzfZ1N7Ut272ltHx5+0UrFq7uXaDM+/dhezQpu1lZYnw4tgfz3276C2Wbatsn24Vdrdy69EAStYxTrPfRu7OEAFVda5wA2GuDVSY2jcGfdvUmMk9yzj0zAeXgHB+Zp6</latexit><latexit sha1_base64="9VcLpn75v0Ow2R4s5D+sbVL4PXU=">AAAC8XicjVLLSsNAFD3GV31XXboJFsGNJRFBl6IblxXsA+qDJJ3W2DQJyUSU0n9wW1fi1i/yDxR/wjNjBB/4mJDkzLnn3Dt3Ztw48FNpWY8jxujY+MRkYWp6ZnZufqG4uFRLoyzxRNWLgihpuE4qAj8UVenLQDTiRDg9NxB1t7uv4vVLkaR+FB7J61ic9JxO6Ld9z5GkauK0v3E1OCuWrLKlh/kd2DkoIR+VqPiCY7QQwUOGHgRCSOIADlI+TdiwEJM7QZ9cQuTruMAA0/RmVAkqHLJdfjucNXM25FzlTLXbY5WAb0KniTV6IuoSYlXN1PFMZ1bsT7n7Oqda2zX/bp6rR1binOxfvnflf32qF4k2dnQPPnuKNaO68/Ismd4VtXLzQ1eSGWJyCrcYT4g97XzfZ1N7Ut272ltHx5+0UrFq7uXaDM+/dhezQpu1lZYnw4tgfz3276C2Wbatsn24Vdrdy69EAStYxTrPfRu7OEAFVda5wA2GuDVSY2jcGfdvUmMk9yzj0zAeXgHB+Zp6</latexit>

Fig. 1. Digital signal processing chain used to extract information from biological signals

order to maintain high levels of flexibility and genericity, the choice was made to turn to hardware generation from models using HLS tools [1]. Consequently, all the modules presented above have been described at the behavioural level using the SystemC language. These SystemC models have been made flexible and generic through the use of tempered parameters.

For example, the number of channels or the type of data can be adapted to the application needs. Data transfer between the different modules is ensured by FIFOs. It allows smoothing the processing load over time. In order to improve module implementation parameters, annotations have been added to the module source code. The latter allow for example to specify the code sections to be unrolled or pipelined.

IV. EXPERIMENTAL RESULTS

The main objective of the project was to design a real-time system to process at least the signals from 64 electrodes in parallel. The sampling frequency of the electrodes is 10 kHz.

These specifications correspond to the specifications of the analog acquisition boards available on the commercial market.

The SystemC models describing the system (Figure 1) were provided to the Vivado HLS 2018.1 synthesis tool.

The latter is in charge of generating the RTL-level hardware architecture. To simplify placement and routing on an ARTIX- 7 (XC7A100T-1CSG324C) component, a target working fre- quency of 100 MHz for the architecture has been set.

The whole system consists of 10 modules described in SystemC, which represents about 981 lines of C++ code, was entrusted in one go to the HLS tool. The digital architecture generated and which meets the specifications is composed of 1315 LUTs, 1887 FFs, 6 DSPs and 26 BRAMs (18k) after placement and routing. That’s about 9% of the FPGA circuit. A functional validation of the system was performed on FPGA using several technical resources (OLED screen, UART monitoring, SDcard reading) and real or synthetic data.

From the collected post-place and route data we notice that the system can be greatly extended in terms of number of chan- nels processed in parallel. Indeed, in the target component, up to 700 channels in parallel can be supported if the maximal event rate at the output of the spike detection processing is about 100 spikes per second and per channel.

An analysis of the resources occupied by the system ac- cording to the number of channels processed is provided in Figure 2. Memory is the bottleneck of the system. Currently, it is impossible to exceed 512 channels on a Nexys-4 FPGA

board. In order to exceed this threshold, and then to address much complex cell experiments, it is necessary to switch at least to a mid-range FPGA device.

V. CONCLUSION

The objective of the demonstration is to highlight an appli- cation from the biomedical field whose processing properties are quite different from video and communication system ones. Then it also demonstrates that HLS methodologies are currently mature enough to generate complete processing systems. However, performance level depends on SystemC model quality and user defined annotations.

ACKNOWLEDGEMENT

The authors thank the SIS GPU at IMS Laboratory for its financial support.

REFERENCES

[1] Xilinx, Vivado Design Suite User Guide, UG902 (v2017.4), 2018

[2] J.H. Siegle, A. Cuevas L´opez, Y.A. Patel, K. Abramov, S. Ohayon and J. Voigts, Open Ephys: an open-source, plugin-based platform for multichannel electrophysiology. J Neural Eng 14: 045003

[3] G. Le Masson, S. Renaud-Le Masson, D. Debay, and T. Bal, Feedback inhibition controls spike transfer in hybrid thalamic circuits Nature. vol.

417, pp. 854–858, 2002.

[4] A. Quotb, Y. Bornat, M. Raoux, J. Lang, S. Renaud, NeuroBetaMed: A re- configurable wavelet-based event detection circuit for in vitro biological signals. ISCAS, 2012.

[5] E Casseau, B Le Gal, P Bomel, C Jego, S Huet and E Martin, C-based rapid prototyping for digital signal processing. EUSIPCO, 2005.

[6] R.R. Harrison, A low-power integrated circuit for adaptive detection of action potentials in noisy signals, IEEE EMBC, 2003.

[7] Yang Dan, Mu-ming Poo, Spike Timing-Dependent Plasticity of Neural Circuits. Neuron, vol. 44, 2004.

0 10 20 30 40 50 60 70 80 90 100 0

512 1,024 1,536 2,048

FPGA BRAM usage (%)

Numberofchannels

Nexys-4 VC-707 Genesis-2

Fig. 2. Number of supported channels depending on the FPGA device

2.3. Synthèse et implémentation 13

une paire de filtres (HPF 2.6 & LPF 2.4) :

dl[n] =

2l

X

i=1

gl[k]al 1[n k] (2.3)

al[n] =

2l

X

i=1

hl[k]al 1[n k] (2.4)

Dans les équations 2.6 et 2.4,L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.

Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :

d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)

d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.

0,3 0 0,3

Input

0,1 0 0,1

Filteredsig.

Events 0

Figure2.7 – Signal biologique avant et après HPF & SWT

2.3 Synthèse et implémentation

La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.

Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il

2.3. Synthèse et implémentation 13

une paire de filtres (HPF 2.6 & LPF 2.4) :

dl[n] =

2l

X

i=1

gl[k]al 1[n k] (2.3)

al[n] =

2l

X

i=1

hl[k]al 1[n k] (2.4)

Dans les équations 2.6 et 2.4, Lreprésente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.

Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :

d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)

d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.

0,3 0 0,3

Input

0,1 0 0,1

Filteredsig.

Events 0

Figure2.7 – Signal biologique avant et après HPF & SWT

2.3 Synthèse et implémentation

La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.

Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il

22Chapitre3.Extractiondesliensentreneuronnes

Figure3.6Illustrationdelamatrice

essayerdecontournerleproblème,lafigure3.8représentel’évolutiondelalimiteenfonctiondelafréquence.Ilexisteaussidescellulesquiaurontunefréquencedespikeinférieurà100hzetdoncauraitunelimiteplusgrande.

3.5Résultatsd’implantation

Enreprenantlesmêmesparamètresdelapremièrepartie(64canaux,10khzdefré-quenced’échantillonnageetuneNexys4),uneimplémentationdetouslessystèmesaétéeectué.Leprojetutiliseauxtotaux10modulescritenSytemC,cequiestpresqueégalà981lignesdecodeC++.L’architecturedigitaleréeàpartirdesesmodulesutilise1315LUTs,1887FFs,6DSPser26BRAMs(18k)égalepresqueà9%desressourcesdelacarte.Vulahauteconsommationderessources,ilestimpossiblededépasser64canauxsurNexys4.Lafigure3.9représentel’évocationdel’utilisationderessourcesenfonctiondunombredescanauxpourdiérentescartes.

3.6. Conclusion 25

0 10 20 30 40 50 60 70 80 90 100

0 512 1 024 1 536 2 048

FPGA BRAM usage (%)

Numberofchannels

Nexys-4 VC-707 Genesis-2

Figure3.9 – Utilisation de ressource en fonction du nombre de canaux sur diffèrent carte FPGA

3.6. Conclusion 23

0 100 200 300 400 500 600 700 800 900 1 000 1 100

0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8

2 ·104

Number of channels

clockcycles

Available clock cycles Needed clock cycles

Figure3.7 – Évolution du temps disponible entre chaque spike en fonction des canaux

3.6 Conclusion

Même si le SystemC et l’outil HLS permet de simplifier la modélisation de système complexe, il est toujours nécessaire de simplifier nos algorithmes, d’utiliser des fonctions simples et de les optimiser afin d’assurer le bon fonctionnement et limiter l’utilisation de

ressources. 16 Chapitre 2. De la modélisation à l’implantation automatique

Table 2.1 – Comparaison des ressources

HLS generated [Pirog 2018]

fixed float fixed fixed

Quantization 18b 32b 18b –b

Design pipeline pipeline semi-seq. semi-seq.

LUTs 1003 2899 979 352

FFs 1242 3935 1097 181

BRAMs 7.5 6 6.5 5

DSPs 6 43 4 2

Fmax (MHz) 200 200 166 153

Latency (cycles) 72 125 664 3204

2.4.1 Conclusion

Dans cette première partie, il est clair qu’un système conçu avec le SystemC et HLS utilise un peu plus de ressources mais en échange, il offre une latence minimale avec un très grand débit et fréquence de fonctionnement.

2.3. Synthèse et implémentation 13

une paire de filtres (HPF 2.6 & LPF 2.4) :

dl[n] =

2l

X

i=1

gl[k]al 1[n k] (2.3)

al[n] =

2l

X

i=1

hl[k]al 1[n k] (2.4)

Dans les équations 2.6 et 2.4, L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.

Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :

d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)

d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.

0,3 0 0,3

Input

0,1 0 0,1

Filteredsig.

Events 0

Figure 2.7 – Signal biologique avant et après HPF & SWT

2.3 Synthèse et implémentation

La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.

Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il

2.3. Synthèse et implémentation 13

une paire de filtres (HPF 2.6 & LPF 2.4) :

dl[n] =

2l

X

i=1

gl[k]al 1[n k] (2.3)

al[n] =

2l

X

i=1

hl[k]al 1[n k] (2.4)

Dans les équations 2.6 et 2.4, L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.

Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :

d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)

d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.

0,3 0 0,3

Input

0,1 0 0,1

Filteredsig.

Events 0

Figure2.7 – Signal biologique avant et après HPF & SWT

2.3 Synthèse et implémentation

La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.

Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il

2.3. Synthèse et implémentation 13

une paire de filtres (HPF 2.6 & LPF 2.4) :

dl[n] =

2l

X

i=1

gl[k]al 1[n k] (2.3)

al[n] =

2l

X

i=1

hl[k]al 1[n k] (2.4)

Dans les équations 2.6 et 2.4, L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.

Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :

d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)

d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.

0,3 0 0,3

Input

0,1 0 0,1

Filteredsig.

Events 0

Figure2.7 – Signal biologique avant et après HPF & SWT

2.3 Synthèse et implémentation

La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.

Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il

2.3. Synthèse et implémentation 13

une paire de filtres (HPF 2.6 & LPF 2.4) :

dl[n] =

2l

X

i=1

gl[k]al 1[n k] (2.3)

al[n] =

2l

X

i=1

hl[k]al 1[n k] (2.4)

Dans les équations 2.6 et 2.4, L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.

Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :

d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)

d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.

0,3 0 0,3

Input

0,1 0 0,1

Filteredsig.

Events 0

Figure 2.7 – Signal biologique avant et après HPF & SWT

2.3 Synthèse et implémentation

La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.

Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il

3.1. Analyse aux limites 19

(read & write) ce qui est équivalent à 16 opérations, en généralisant, chaque spike mène à 2n opérations. Dans la matrice suivante, il est possible d’observer le nombre d’opération apporté par un seul spike.

2 66 4

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

3 77 5!

2 66 4

0 0 1 0

0 0 2 0

1 2 3 + 3 4

0 0 4 0

3 77 5

3.1.2 L’exponentielle

Comme vu précédemment, la modification de point se fait avec la formule : e t/⌧, où t est le temps entre deux spikes consécutives. L’outil HLS fourni des fonctions publiques réalisant le calcul exponentiel directement, cependant, l’exponentiel est une fonction com- plexe nécessitant beaucoup de ressources et de latence dans certains cas, figure 3.2.

Table 3.1 – Utilisation de ressource HLS Maths float fixed

Quantization 32b 16b

Design sequential sequential

LUTs 864 2660

FFs 245 349

BRAMs (18k) 1 3

DSP 7 1

Latency 16 211

3.1.3 Équation différentielle

Parmi les solutions possible permettant de simplifier le calcul, on trouve la résolution continue de l’équation differentielle d’une exponentielle :

@y(t)

@t = 1

y(t) (3.3)

yn = xn + 1 +

yn 1 (3.4)

Résoudre l’équation revient est équivalent à filtrer les spikes à travers un filtre dont la réponse pulsionnelle est une e t/⌧. Dans ce cas, chaque exponentielle sera transformé en 18 Chapitre 3. Extraction des liens entre neuronnes

00 1

Neurone1

00 1

Neurone2

00 1

Influence

Figure 3.2 – Signal biologique avant et après HPF & SWT

et à chaque spike, une modification de poids (incrémentations ou décrémentation) se fait.

Cette modification est calculée en fonction du temps écoulé entre deux spike avec la formule e t/⌧ ou est le temps entre deux spikes successives.

Dans la figure 3.2, il possible de voir la modification qu’un spike peut apporter en fonction du temps écoulé.

si j spike wi!i(t) =wi!i(t dt) + X

spikes

e tt (3.1)

wj!i(t) =wj!i(t dt) X

spikes

e tt (3.2)

Dans le milieu de culture, il est possible qu’un haut potentiel se propage et donc, une électrode peut récupérer des signaux provenant de plusieurs cellules et peut introduire des erreurs lors du calcul du poids il est donc nécessaire de supposer dans la suite que chaque électrode représente un seul neurone.

3.1 Analyse aux limites

3.1.1 Quelques détails sur cette méthode

En utilisant la méthode décrite précédemment, un système prenant en entrée les spikes et calcul les poids entre chaque neurone. Ce poids sera stocké dans une matrice n suivant et sera appelé matrice de corrélation dans la suite.

Il est nécessaire de comprendre que la mise à jour de la matrice de corrélation nécessite un grand nombre d’opération. Par exemple, pour 4 neurones, si un spike est détecté, il faut modifier 8 cases dans la matrice, chaque modification représente deux opérations

Références

Documents relatifs

This required keyword parameter allows the programmer to insert file identification data, where label is the address of an eight-byte area in the problem program

For read, sense, or end status byte operations, the control unit sends the request in signal to the multiplexer channel, and the channel responds only if the

Weight and percentage of total muscle were explained - for 95 p. 912 ) wa.s estimated by weight of trotters, specific gravity of ham and eye muscle area.. The most

et à Brienz. Certainement, sans qu'elles fussent jolies, il faisait beau les voir ramer d'un bras vi- goureux, en chantant les rondes alpestres. li tues

The first step decomposes Raman data X into a linear combination of the reference spectra (known components) plus a remainder, or X ¼ ASþR, where the columns of matrix A are

4 J.-M Friedt, Auto et intercorr´ elation, recherche de ressemblance dans les signaux : application l’identification d’images flout´ ees, GNU/Linux Magazine France 139 (2011).

[r]

cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.. 0,3