Serveur © IRCAM - CENTRE POMPIDOU 1996-2005. Tous droits réservés pour tous pays. All rights reserved. |
Rapport Ircam 32/81, 1981
Copyright © Ircam - Centre Georges-Pompidou 1998
Figure 1
Le système ayant été conçu par les chercheurs de l'Ircam, ce sont essentiellement des signaux sonores qui ont été traités. Toutefois ce système est suffisamment polyvalent pour s'adapter au traitement des informations dans un tout autre domaine.
Les informations traitées se présentent sous une forme de 16 bits, ce qui assure une dynamique possible de 96 dB. De plus, un ensemble de convertisseurs assure les transformations analogiques/numériques.
L'ordinateur est chargé de gérer les fonctions du Système 4X comme indiqué Figure 2.
La mémoire de masse permet le stockage de 3 types d'informations : les
données destinées au Système 4X, les données qui en proviennent ainsi que ses modes de fonctionnement. (voir
Figure 2)
Le système se présente sous la forme d'un rack pouvant contenir :
Sa description plus détaillée sera effectuée au I.3. Ce module, par
programmation, peut présenter diverses configurations fonctionnelles
telles que : additionneurs - soustracteurs - multiplieurs -
oscillateurs - lignes à retard et dispersives, etc... et toutes
combinaisons de ces éléments.
Exemple d'utilisation dans le domaine électro-acoustique.
Cette carte se compose essentiellement :
Cette mémoire-tampon est chargée de stocker deux types d'éléments :
des données et exceptionnellement des configurations fonctionnelles.
Exemple dans le domaine électro-acoustique :
Exemple dans le domaine électro-acoustique :
La logique d'interconnexion permet le transfert de données entre une
carte et d'autres parmi les 8 cartes 4U, la carte 4 MT et la carte 4 TI
elle-même, ceci par l'intermédiaire du bus d'interconnexion (Figure 2).
Les interconnexions à réaliser sont spécifiées par le contenu d'une
mémoire de 512 mots de 14 bits préalablement chargée par le calculateur.
L'unité de gestion des entrées-sorties gère la communication avec
l'extérieur, soit sous forme numérique (16 bits),
soit sous forme analogique ; dans ce cas elle prend en charge la
gestion des convertisseurs placés à l'extérieur :
I.2. Structure fonctionnelle du Système 4X - (Figure 2)
Figure 2
L'ensemble est placé dans une baie contenant aussi une alimentation 7,5V
servant à commander des régulateurs 5V implantés sur chaque carte.
I.2.1. Carte universelle 4U - (Figure 3)
Figure 3
Générateur de
sons : pur, complexe (vibrato, glissando, etc.) effet de
réverbération.
Ces éléments communiquent entre eux par deux bus internes.
I.2.2. Carte Mémoire-Tampon 4 MT
Cette carte contient une mémoire de lecture-écriture, à stockage
permanent, d'une capacité de 16 K mots de 16 bits, assurant la liaison
entre le Système 4X et les dispositifs placés sur le bus système (bande
magnétique - disque - etc.).
Ceci permet de créer et d'utiliser une bibliothèque de structures
fonctionnelles.
Après avoir obtenu une
configuration orchestrale, la programmation définissant celle-ci peut
être mémorisée en vue de sa réutilisation. D'autre part, l'oeuvre
produite peut également être mémorisée sous forme de données. Une oeuvre
ainsi pré-enregistrée peut servir de données de base à un traitement
ultérieur.
I.2.3. Carte timer et interconnexion 4 TI
Cette carte comprend :
Les timers sont des compteurs programmables qui permettent de déterminer
des intervalles de temps à la fin desquels une requête d'intervention au
calculateur (interruption) l'oblige à suspendre la tâche qu'il
effectuait, afin de modifier des éléments du traitement en cours dans le
Système 4X.
Les principales
applications des timers sont d'une part l'élaboration d'enveloppes pour
l'évolution des amplitudes et des fréquences des oscillateurs, et
d'autre part l'évolution des fréquences de coupures de filtres.
(voir Figure 2).
Exemple dans le domaine électro-acoustique : voir Figure 4.
Figure 4
La Figure 5 reprend les éléments de la Figure 2 en les répartissant sur les différentes cartes.
Figure 5
(La structure "pipe-line", permet d'accroitre la vitesse de traitement. Elle consiste en une série de sections, chargées chacune d'effectuer une partie du traitement, les informations se succédant dans les sections comme le fait un fluide dans une canalisation).
Figure 6
Ces éléments fonctionnels comprennent :
La Figure 7 illustre l'analogie que l'on peut faire entre, d'une part la démarche suivie dans le domaine de l'automatisme industriel pour élaborer une solution informatique à partir d'un schéma à relais, et d'autre part la résolution d'une fonction de traitement du signal à l'aide du Système 4X, à partir d'un schéma fonctionnel.
Figure 7
Parmi un large éventail de possibilités, la Figure 8 représente quelques structures fondamentales parmi les plus utilisées dans le traitement du signal. Chacune de ces structures permet de réaliser plusieurs types de traitement.
Figure 8
Celle de la Figure 8a permet de réaliser, par le choix des entrées, les traitements (non exhaustifs) présentés Figure 9.
Figure 9
Celle de la Figure 8b est un exemple type de générateur de formes d'ondes. La mémoire WM contient les échantillons des formes d'ondes à reproduire. Ainsi que nous l'avons déjà dit, elle contient 16K mots de 16 bits divisibles jusqu'à 16 x 1K mots, ce qui permet de placer jusqu'à 16 formes d'ondes.
Les 4 formes d'ondes présentées Figure 10, sont obtenues d'une part en choisissant la forme d'ondes désirée par WM sélect et d'autre part en explorant séquentiellement la mémoire afin de placer en sortie la suite des échantillons correspondants.
Figure 10
Le mode d'exploration détermine l'occurence temporelle de la forme d'ondes. Ainsi une incrémentation simple de l'adresse de la mémoire WM fera apparaitre, dans le cas de l'onde N°1, une sinusoïde dont la fréquence est liée à l'incrément (plus l'incrément est grand, plus la fréquence est élevée). Un incrément variable permettrait de réaliser une modulation de fréquence.
Sur les entrées de l'unité AU, on peut présenter la phase initiale, le pas de fréquence, et les paramètres de la modulation de fréquence.
Pour ce faire, on reboucle i+1 sur 1. (Voir Figure 8) Celle de la Figure 8c, reprend le schéma précédent en lui associant une possibilité de modulation d'amplitude par l'entrée A ainsi qu'une possibilité de mixage par l'entrée OS2.
Celle de la Figure 8d reprend les éléments de la Figure 8b en incluant un registre à décalage SH afin de réaliser une interpolation linéaire, en utilisant les bits poids faible, au delà du 16e , sur les 24 bits manipulés pendant le calcul.
Celle de la Figure 8e, est une unité logique qui permet la généra d'enveloppes, à utiliser avec les timers de la carte 4 MT. Elle permet aussi la réalisation de blocs non linéaires du type redresseur de signaux, échantillonneur bloqueur, etc.
Voir Annexe II.
Dans le cas du traitement du son, un certain nombre de configuration fonctionnelles, parmi celles décrites, sont regroupées, par micro-programmation, sur une même carte 4U qui est ainsi spécialisée. Son nom devient alors :
Figure 11
La communication entre le calculateur et les différentes cartes, via la
carte de couplage 4 IC, s'opère comme suit :
Un adressage hiérarchisé permet de choisir :
Les mémoires de formes d'ondes WM sont adressées par le bus adresse : WM issu d'une logique particulière implantée dans la carte 4 MT.
La communication entre cartes est régie par :
Durant chaque microcycle, la mémoire du micro-programme délivre une micro-instruction qui établit la configuration fonctionnelle correspondant à l'action exécutée durant ce microcycle. Les opérandes sur lesquelles travaillent les micro-instructions ont leurs adresses dans la mémoire AM. Les 32 micro-instructions, correspondant aux 32 mots de la mémoire µPG, forment un cycle intermédiaire de durée 1,95 µs.
Le micro-programme, dans un cycle complet de durée 62,5 µs est exécuté 32 fois avec des données différentes, ce qui implique que la mémoire d'adresse (AM) ait une taille de 32 x 32 mots, soit 1024 mots.
Figure 12
Figure 13
Il est important de remarquer que les structures fondamentales créées durant un cycle intermédiaire sont obtenues 32 fois durant le cycle complet.
Par exemple, il est possible de créer 7 multiplieurs-additionneurs du type de la Figure 8a durant un cycle intermédiaire soit 7 x 32 = 224 multiplieurs-additionneurs travaillant sur des données distinctes durant un cycle complet. La période d'échantillonnage du traitement du signal est dans ce cas de 62,5 µs, soit une fréquence d'échantillonnage de 16 000 Hz ce qui correspond à une bande passante de signal traité de 8.000 Hz. (Le théorème de Shannon montre que la bande passante maximale d'un signal échantillonné est la moitié de la fréquence d'échantillonnage)
(Voir Figure 14a)
Pour traiter des signaux de bande passante supérieure, il faut répéter à l'intérieur du cycle complet, le microcycle utilisé.
(Voir Figure 14b)
Il est ainsi possible d'échantillonner à des fréquences de 32 kHz, 64 kHz 128 kHz, 256 kHz, 512 kHz, soit des bandes passantes de 16 kHz, 32 kHz, 64 kHz, 128 kHz, 256 kHz, toutefois le nombre de structures fondamentales créées est réduit dans le même rapport.
Figure 14
Un système du second ordre satisfait à l'équation différentielle :
si E est l'entrée on peut montrer (voir annexe I) que S est
une sortie correspondant à un filtrage passe-bas, une sortie correspondant à un filtrage passe-bande, et une sortie
correspondant à un filtrage passe-haut pour lesquels désigne la pulsation d'accord et Q
le coefficient de surtension. Cette équation peut être résolue à partir
du schéma analogique de la Figure 15a. Les
intégrateurs sont réalisés numériquement à l'aide
d'additionneurs-accumulateurs par un simple rebouclage.
Ceci conduit au schéma de la Figure 15b qui résout l'équation :
plus propre à fournir les trois sorties désirées. Ce schéma peut être réalisé à l'aide de l'élément fonctionnel de la Figure 8a et conduit au schéma de la Figure 15c. La Figure 17 montre la micro-programmation réalisant ce schéma en 4 cycles intermédiaires, les entrées correspondant au schéma de la Figure 16.
Figure 15
Figure 16
Figure 17
Modèle 4 A :
Il représente l'équivalent de 128 oscillateurs indépendants. En
utilisant 8 cartes semblables, il est possible de disposer de 1024
oscillateurs.
Ces 128 oscillateurs sont obtenus par multiplexage temporel :
Modèle 4R :
Il représente l'équivalent, simultanément, de :
Afin de préciser les possibilités de traitement du Système 4X, la programmation de la transformée de FOURIER rapide (F.F.T.) d'un signal a été effectuée sur une carte 4U, selon les algorithmes de COOLEY et SANDE. Les résultats suivants ont été obtenus :
Il est possible d'utiliser les 8 cartes 4U du Système 4X, ce qui permet de traiter plusieurs signaux simultanément et ainsi de calculer des F.F.T. multidimensionnelles.
En créant une configuration spécialisée, facilement dérivable de la
carte 4U, on peut espérer un gain d'un facteur 2.
Il existe plusieurs versions de ce logiciel, dit logiciel
d'interconnexion, qui s'adressent à des utilisateurs distincts, certains
restent près du matériel (utilisation des grandeurs en octal, définition
des mémoires utilisées, etc.) d'autres veulent ignorer la machine
(utilisation de noms de variables mnémoniques, introduction des
fréquences en Hz voire en notes, etc.)
Tous ces logiciels, dont on trouvera une liste (non exhaustive, car il
s'en créé à chaque instant à l'Icam) en Annexe II, dont un exemple écrit
en FORTRAN IV est donné en Annexe II, ce qui signifie qu'ils sont
transportables. (Transportable : se dit d'un programme qui peut
fonctionner sans modification sur plusieurs ordinateurs différents)
Seules quelques instructions en assembleur, pour gérer les ordres
d'entrées-sorties, sont à reprendre ; mais il s'agit là d'une tâche
élémentaire pour un informaticien.
De plus, il existe une version de logiciel d'interconnexion écrite en
langage C. (Langage C : Langage développé par le Bell Laboratory et
dont le compilateur est facilement transportable même sur de petites
configurations).
Il a été utilisé pour la version 4C des cartes 4U.
Dans le cas d'un traitement de signal, on sait à l'avance ce que l'on va
faire et l'on se situe plutôt dans le premier cas. Ces logiciels sont
très orientés création musicale et ne pourront donc pas être réutilisés
pour d'autres applications. Quelques procédures seules pourront l'être.
Le concept de base dans ce système est la multiplication apparente des
structures fondamentales, par multiplexage temporel. Par construction,
actuellement, les signaux traités en entrée-sortie peuvent avoir une
dynamique de 96 dB, soit 16 bits, alors que le traitement interne
s'effectue sur 24 bits. Compte-tenu des vitesses d'échantillonnage, la
bande passante des signaux varie de 8 kHz à 256 kHz.
Ce système est donc apte à traiter numériquement des problèmes complexes
dans les domaines linéaire et non linéaire, ce qui en fait un outil tout
indiqué dans le traitement numérique du signal et de l'information dont
nous rappelons ci-dessous les principales fonctions.
Elaboration de signaux :
En dérivant à nouveau
on obtient
qui montre que la sortie correspond à un filtrage passe-haut.
< Fonction > < operande >, .... , < operande >
Chaque commande peut utiliser comme paramètre d'entrée une ou plusieurs
sorties d'autres commandes. On dira dans ce cas que l'on interconnecte
des unités.
Note : si ALPH = 0, le filtre devient un oscillateur sinusoïdal de
fréquence FØ.
Tous ces modules (et d'autres encore) peuvent être interconnectés pour
des fonctions beaucoup plus complexes ; citons pour mémoire
quelques fonctions réalisées : extracteur de fondamental, vocodex,
transformée de Fourier (DFT et FFT), transformée de Hilbert, Chirp Z -
transformée, etc...
(*) Toutes les entrées peuvent être complémentées avant leur entrée dans
l'unité arithmétique. Il suffit pour cela de faire précéder la
désignation du registre par le signe "-".
Ces éléments sont regroupés en configurations fonctionnelles relatives à
un problème spécifique.
Ces 128 oscillateurs sont obtenus par multiplexage temporel :
____________________________ ____________________________I.5. LOGICIEL
Le logiciel associé au Système 4X doit être appréhendé à divers
niveaux :
I.5.1. Logiciel de configuration du système
La micro-programmation s'effectue à 2 niveaux :
Les modèles étant créés, l'utilisation du Système 4X consiste essentiellement à réaliser
les interconnexions, c'est-à-dire l'écriture de AM. C'est
pourquoi un logiciel évolué a été mis au point pour faciliter cette
tâche.
I.5.2. Logiciel d'utilisation du système
Il existe actuellement deux types de logiciels d'utilisation, l'un
correspondant à une utilisation à partir d'un menu, la partition
musicale étant pré-enregistrée, et l'autre correspondant plutôt à
l'exécution d'une improvisation.
II - Conclusion
II.1 Résumé des possibilités du Système 4X
Le système 4X est un périphérique intelligent et autonome, c'est-à-dire
que pendant son fonctionnement, l'ordinateur hôte peut être utilisé à
d'autres tâches, telles que gestion des modes de fonctionnement du
système, ou tout traitement préparatoire ne s'effectuant pas en temps
réel, celui-ci étant entièrement pris en charge par le système 4X.
II.2 Fonctions principales - Traitement du signal et traitement des
informations
II.2.1. Le traitement de signal revêt divers aspects :
L'élaboration, l'appréhension, et la transformation de signaux.
Appréhension des signaux - la mesure :
Transformation des signaux :
II.2.2. Le traitement numérique de l'information justiciable
de l'utilisation d'un système 4X consiste essentiellement dans les
opérations de simulation en temps réel et d'émulation.
Annexe I
Justification théorique de l'exemple de microprogrammation
(I.4.3) : Obtention des trois fonctions de filtrage à partir d'un modèle unique.
Les fonctions de transfert des filtres passe-bas, passe-bande et passe-haut sont respectivement :
En partant de l'équation différentielle du passe-bas,
en dérivant une fois
et en posant on obtient :
Ce qui montre que la sortie correspond à un filtre
passe-bande.
et en posant V =
Annexe II
Langage d'interconnexion de la 4X.
Les commandes, énumérées ci-après, sont quelques exemples, à caractère
général, pris parmi les commandes possibles du langage. Elles permettent
d'illustrer le mode d'utilisation du système 4X.
Les commandes, soulignées dans le texte, se présentent sous la syntaxe
suivante :
Le registre OUT reçoit la somme algébrique (*) des entrées IN1 à INp :
ADD OUT, IN1, ............... , INp
OUT reçoit (MI x M2) + IN
MUL M1, M2, OUT, IN
définit un oscillateur à double entrée en fréquence FR1 et FR2. La forme
d'une période est définie par F, la sortie de l'oscillateur va dans le
registre OUT.
OSC OUT, F, FR1, FR2
Cette commande permet de redresser un signal.
OUT reçoit IN si IN 0, - IN dans le cas contraire.
MODU OUT, IN
Cette commande fait la discrimination d'un signal en entrée par
comparaison au contenu de "NIVEAU" et sort un niveau logique 0,1 et une
impulsion.
DISC OUT, DELT, NIVEAU, IN
OUT 0 si IN < NIVEAU
OUT 1 si IN NIVEAU
DELT DERIVEE (OUT) si elle est positive
Echantillonneur bloqueur.
SAHO OUT, DELT, IN
OUT reçoit OUT si DELT = 0
par exemple DELT peut utiliser la sortie de même nom dans l'unité
précédente.
OUT reçoit IN si DELT = 1
Filtre passe-bas du 1er ordre.
Equivalent numérique du filtre R.C. analogique.
LPF OUT, IN, FC
IN : entrée du signal
OUT : sortie
FC : fréquence de coupure
(utilise en fait le même algorithme de calcul que l'échantillonneur
bloqueur).
Filtre du deuxième ordre. Equivalent au filtre analogique universel.
FILT 2 IN, ATT, FØ, ALPH, HP, BP, LP
IN : signal en entrée
HP, BP, LP : sorties respectivement passe-haut, passe-bande et
passe-bas.
ATT : atténuation du signal (pour éviter les débordements)
ALPH : = largeur de bande relative.
FØ : fréquence de résonance du filtre.
Beaucoup d'autres types de filtres peuvent ou sont implémentés
(Butterworth, Tchebichev, elliptique, comb filter, FIR, etc...). Voir la
littérature classique sur les filtres numériques.
Générateur de bruit : donne un spectre plat.
NOIS OUT
On obtient d'autres types de bruit en combinant cette unité avec des
filtres.
Annexe III
Spécifications générales du système 4X
Processeur numérique de signal temps réelMatériel
Système modulaire composé de :
Entrées/Sorties :
16 voies en entrées et 16 voies en sortie, soit numériques, soit
analogiques sur 16 bits donnant une dynamique de 96 dB.
Bande passante
La bande passante des signaux traités ou produits s'étend de 0 à 8 kHz
pour le système de base, et peut aller jusqu'à 256 kHz avec une
diminution comparable de la puissance de calcul.
Opérations internes
Elles se font sur 24 bits en mettant en oeuvre les éléments
suivants : oscillateurs, filtres universels du second ordre,
multiplieurs-additionneurs, retards, unités d'interpolation, unités
logiques de comparaison, mémoires de formes d'onde, etc...
Configurations fonctionnelles possibles
Il représente l'équivalent de 128 oscillateurs indépendants. En
utilisant 8 cartes semblables, il est possible de disposer de 1024
oscillateurs.
Il représente l'équivalent de 224 multiplicateurs-additionneurs (32
cycles de 7 multiplicateurs-additionneurs).
Il représente l'équivalent, simultanément, de :
Logiciel
Il est développé en langage évolué, donc transportable. On trouve :
Annexe IV
Photos du Système 4X
1-4X-Châssis ouvert montrant, de gauche à droite, 6 plaques 4U et les 3 plaques 4 MT, 4 TI, 4 IC.
2-4X-Fond de panier vue arrière
3-Plaque4U-Côté composants
4-Plaque 4U-Côté wrapping
5-Convertisseur analogique/numérique
6-Exemple de la représentation spectrale d'une FFT en temps réel
Server © IRCAM-CGP, 1996-2008 - file updated on .
Serveur © IRCAM-CGP, 1996-2008 - document mis à jour le .