[0001] La présente invention concerne le filtrage numérique, c'est à dire le filtrage de
signaux électriques arrivant en principe sous forme binaire, sans conversion de ces
signaux en signaux analogiques.
[0002] Les filtres numériques sont utilisés par exemple pour le traitement de la parole
ou le traitement des images.
[0003] Diverses fonctions de filtrage sont couramment utilisées dans ces applications, et
notamment des fonctions de lissage consistant à remplacer une valeur numérique déterminée
par une fonction des valeurs numériques les plus voisines (dans le temps ou dans l'espace)
de cette valeur.
[0004] Dans l'example du filtrage de signaux numériques représentant les points d'une image
(luminance, ou chrominance ou tout autre paramètre relatif à chaque point), on peut
par exemple utiliser comme fonction de lissage le remplacement d'une valeur représentant
un point d'image par la valeur moyenne des 9 ou 25 ou 49 points d'image d'un bloc
matriciel de points centré autour de ce point.
[0005] Ce type de filtrage élimine les points aberrants dus au bruit, mais il dégrade les
contours de l'image.
[0006] Le filtrage dit "médian" est un autre type de filtrage destiné à éliminer des points
aberrants et qui a l'avantage de moins dégrader les contours.
[0007] Le filtrage médian consiste à prendre l'ensemble des valeurs d'une fenêtre de n points
(n impair), à les trier en ordre croissant ou décroissant, et à remplacer le point
central de la fenêtre par la valeur médiane de la suite ordonnée. On rappelle que
la valeur médiane est celle qui est au milieu de la suite, c'est à dire qu'il y a
autant de points au dessous que de points au dessus de cette valeur.
[0008] Plus généralement, le filtrage de rang k consiste à remplacer le point central de
cette fenêtre par la k
ième valeur de la suite ordonnée. Le filtrage de rang k inclus le filtrage médian, avec
k = (n+1)/2, ainsi que le filtrage de minimum (k = 1), et le filtrage de maximum (k
= n), mais bien entendu k peut être quelconque.
[0009] La présente invention s'intéresse généralement aux filtres de rang k.
[0010] La difficulté est de faire un filtrage en temps réel à une cadence élevée.
[0011] Pour le traitement d'images de télévision, les points peuvent arriver à la cadence
d'un point toutes les 70 nanosecondes. Il y a 512x512 points par image.
[0012] Il faut que le filtre puisse fournir des points corrigés à la même cadence.
[0013] On a envisagé, comme on le fait souvent pour le filtrage numérique, que le filtrage
soit fait par un logiciel de traitement spécialisé. Un ordinateur, ou plus simplement
un microprocesseur spécialisé, serait piloté par un logiciel de traitement numérique
exécutant un algorithme de filtrage de rang k; il recevrait les valeurs successives
des points d'image et restituerait en temps réel des valeurs corrigées.
[0014] Mais l'algorithme consiste à faire d'abord un tri pour ordonner une suite de n valeurs
et les mettre en ordre croissant ou décroissant. Il est classique d'envisager qu'un
tri de n éléments nécessite nlogn opérations. Pour le traitement d'images, n est au
minimum égal à 9, et de préférence égal à 25 ou 49. Il est très difficile d'exécuter
en 74 nanosecondes le nombre d'opérations qui est nécessaire pour faire ce tri.
[0015] On a donc aussi proposé de réaliser directement par des circuits électroniques intégrés
la fonction de tri, afin qu'elle soit beaucoup plus rapide que le travail exécuté
instruction par instruction par un processeur. Mais les circuits qui en résultent
sont très encombrants, la surface de circuit utilisée croissant comme le carré du
nombre n de valeurs à trier.
[0016] Enfin, pour résoudre ces difficultés, on a aussi proposé de remplacer le filtrage
sur un bloc bidimensionnel de n=mxm points par un filtrage sur chaque ligne de m points
suivi d'un filtrage sur les n résultats obtenus: c'est un pseudo-filtrage de rang
k. Par exemple, au lieu de déterminer la valeur médiane d'une fenêtre de 9 points,
on détermine trois valeurs médianes sur trois points chacune et on prend la médiane
des valeurs médianes. Statistiquement, on s'aperçoit que le résultat est proche de
la véritable médiane, mais ce n'est par toujours suffisant, et ce n'est pas applicable
plus généralement au filtrage de rang k.
[0017] Ceci montre bien les difficultés qu'on a rencontré jusqu'à maintenant pour faire
du filtrage numérique de rang k en temps réel.
[0018] La présente invention propose un procédé de filtrage original et un circuit correspondant,
qui permettent de résoudre le problème du filtrage en temps réel d'une manière particulièrement
intéressante.
[0019] Le procédé selon l'invention consiste à:
- recevoir et stocker n valeurs numériques sur lesquelles on désire effectuer un filtrage
de rang k, les valeurs numériques étant reçues sous forme de signaux logiques binaires,
- examiner l'ensemble de bits de rang le plus élevé des n valeurs, tester si le nombre
de bits à "zéro" est ou n'est pas supérieur ou égal à k, et fournir un signal de test
ayant un premier état dans l'affirmative et un deuxième état dans la négative,
- établir, à partir de chaque bit des valeurs numériques et du signal de test, un
bit modifié selon le principe suivant:
a) pour le premier état du signal de test, on donne la valeur logique "un" à tous
les bits de rang moins élevé de toutes les valeurs numériques ayant un bit "un" comme
bit de rang le plus élevé, et on conserve les bits des autres valeurs
(b) pour le deuxième état du signal de test, on donne la valeur logique "zéro" à tous
les bits de rang moins élevé de toutes les valeurs numériques ayant un bit "zéro"
comme bit de rang le plus élevé, et on conserve les bits des autres valeurs.
- recommencer l'examen, le test, et l'établissement de bits modifiés, en prenant
comme rang le plus élevé le rang immédiatement inférieur, et en prenant comme bits
à tester les bits modifiés ayant ce rang immédiatement inférieur, et ainsi de suite
jusqu'au rang le moins élevé;
- transmettre à titre de signal de sortie du filtre les signaux logiques de test.
[0020] On peut envisager une réalisation de filtre mettant en oeuvre ce procédé soit au
moyen d'un circuit de logique séquentielle, soit au moyen de circuits de logique combinatoire.
Un microprocesseur convenablement programmé pour effectuer les tests et les modifications
de bit successives peut très bien être utilisé pour réaliser ce filtre sous forme
de circuit de logique séquentielle.
[0021] Pour réaliser le filtre sous forme d'un circuit de logique combinatoire, qui aura
l'avantage d'être particulièrement rapide, on peut prévoir:
- un registre pour recevoir et stocker les n valeurs numériques de p bits chacune,
- pour chaque rang binaire j des valeurs numériques, j croissant de 1 à p pour les
rangs de poids successifs décroissants, on prévoit un circuit logique pour étabilir
un bit modifié d
i,j à partir du bit b
i,j de rang j de chaque valeur numérique en fonction de signaux de test, la valeur du
bit d
i,j étant soit 0, soit 1, soit b
i,j
- pour chaque rang binaire j des valeurs numériques, on prévoit un circuit respectif
d'élaboration de signaux de test destinés au circuit d'établissement de bits modifiés
de l'étage suivant de rang j+1, ce circuit comprenant
un premier circuit recevant les bits modifiés d
i,j et fournissant un signal de sortie ayant un premier d
i,j égaux à 0 est ou n'est pas supérieur ou égal à k,
et un deuxième circuit recevant ce signal de sortie, les signaux de test appliqués
au circuit d'établissement de bits modifiés, ainsi que les bits d
i,j du rang binaire j, ce deuxième circuit fournissant les signaux de test correspondant
au rang j+1,
les signaux de sortie des premiers circuits constituant les sorties du filtre de rang
k.
[0022] Un des aspects très importants de l'invention est ce traitement rang binaire par
rang binaire des différentes valeurs numériques; au lieu de trier les valeurs numériques
pour les ranger dans un ordre croissant ou décroissant afin de déterminer ensuite
quelle est la k
ième position de la suite ordonnée, on regarde le nombre de bits de rang le plus élevé
égaux à zéro; selon le résultant (supérieur ou égal à k ou au contraire intérieur
à k), on effectue une modification des bits de rang moins élevé; puis on examine les
bits de rang immédiatement inférieur (en prenant en compte les bits modifiés et non
les bits d'origine), on refait un test et une modification des bits de rang inférieur,
et ainsi de suite..
[0023] On expliquera en détail comment ce principe permet de déterminer effectivement quel
est la k
ième position de la suite ordonnée.
[0024] D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de
la description détaillée qui suit et qui est faite en référence aux dessins annexés
dans lesquels:
- la figure 1 représente un schéma bloc du mode de réalisation préféré du filtre numérique
selon l'invention;
- la figure 2 représente un détail de réalisation d'une cellule de modification de
bit du schéma de la figure 1;
- la figure 3 représente un détail de réalisation d'une cellule du circuit d'élaboration
des signaux de test destinés à définir les modifications de bit;
- la figure 4 représente un exemple de réalisation du circuit permettant de comparer
à un nombre k le nombre de bits égaux à zéro dans une suite de bits.
[0025] Avant de décrire en détail le circuit de la figure 1 qui constitue le mode de réalisation
de celle des valeurs numériques qui est à la k
ième position dans la suite ordonnée de n valeurs numériques. C'est en effet ce procédé
qui est à la base de l'invention et qu'il faut comprendre pour comprendre le schéma
de la figure 1.
[0026] On va partir d'un exemple concret d'une suite de valeurs binaires.
[0027] Les valeurs binaires sont au nombre de n; dans l'exemple, n=9.
[0028] Les valeurs sont codées sur p bits; dans l'exemple, p=4.
[0029] Les poids binaires sont décroissants de gauche à droite et si on désigné par j le
rang binaire d'un bit quelconque, on précise que j varie de 1 à p en allant du poids
le plus élevé vers le poids le plus faible: j croît avec les poids décroissants.
[0030] La suite de valeurs numériques choisies à titre d'illustration est donnée ci-dessous,
avec les valeurs décimales inscrites entre parenthèses en regard de chaque valeur
binaire. On a donné à chaque valeur un nom: A1 à A9, les noms se succédant par exemple
en correspondance avec l'ordre quelconque dans lequel les valeurs se sont présentées
à l'entrée du filtre, ou encore en correspondance avec les adresses d'un registre
dans lequel sont rangées ces valeurs.

[0031] Si on range ces valeurs sous forme d'une suite ordonnée croissante, on obtient l'ordre
suivant:

[0032] Pour simplifier la description, on recherchera la valeur médiane de cette suite,
mais le raisonnement serait le même pour déterminer la valeur qui est à une position
k quelconque de cette suite.
[0033] On voit que la valeur médiane (c'est à dire la cinquième position puisqu'il y a 9
valeurs) est égale à 4, c'est à dire 0100 en binaire. Le procédé qui va être décrit
doit donc aboutir à cette valeur 0100.
[0034] On examine les bits de la colonne de gauche du tableau 1, c'est-à-dire les bits de
poids le plus élevé; on détermine s'il y en a k ou plus de k à 0; ici k=5 et la réponse
est affirmative.
[0035] On en tire deux conséquences:
a) le bit de poids le plus élevé de la valeur cherchée (ici la valeur médiane) sera
0.
b) les valeurs numériques dont le bit de poids le plus élevé est 1 sont nécessairement
supérieures ou égales à la valeur médiane et on peut, sans changer la valeur médiane, remplacer ces valeurs par toute valeur supérieure ou égale à la valeur médiane.
[0036] On choisit de remplacer ces valeurs par la valeur 0111 qui est nécessairement supérieure
ou égale à la valeur médiane (dont on sait qu'elle commence par 0).
[0037] Autrement dit, dans les valeurs ayant un bit de poids fort égal à 1, on remplace
ce bit par 0 et les bits de poids inférieur par des 1. Ici, cela ne concerne que la
valeur A2. Il en résulte le tableau modifié suivant.
Tableau 2
[0038] A1 0001
A2 0111
A3 0010
A4 0111
A5 0011
A6 0110
A7 0100
A8 0101
A9 0100
[0039] La colonne de gauche ne comporte plus que des zéros; elle est devenue inutile pour
la détermination de la valeur médiane; on la supprime et on considère le rang immédiatement
inférieur comme rang le plus élevé pour recommencer un test identique au précédent.
[0040] Il est bien entendu que si le test avait donné un autre résultat (moins de k bits
égaux à 0), on aurait effectué un autre traitement. C'est cet autre traitement que
l'on va voir ci-dessous à propos du test de la colonne de bits suivante.
[0041] Le test de la deuxième colonne (rang j=2) du tableau 2 montre qu'il y a moins de
k bits à 0 (k=5).
[0042] On en tire les deux conséquences suivantes:
a) le bit de rang j=2 de la valeur cherchée (médiane) est 1.
b) les valeurs du tableau 2 t le bit de rang 2 est 0 sont nécessairement inférieures
à la valeur médiane; elles peuvent donc, sans que cela change la valeur médiane, être
remplacées par la valeur 0100; en effet, cette valeur est nécessairement inférieure
ou égale à la valeur médiane car la valeur médiane a comme deux premiers bits 01.
[0043] Plus généralement, si le bit de rang 2 est 0, on le remplace par 1 et on remplace
tous les bits de rang supérieur à 2 par des zéros. Ici, cela concerne les valeurs
A1, A3, A5.
[0044] Il en résulte le tableau suivant de valeurs modifiées:
Tableau 3
[0045] A1 0100
A2 0111
A3 0100
A4 0111
A5 0100
A6 0110
A7 0100
A8 0101
A9 0100
[0046] Les bits de rang 1 étant tous identiques ainsi que les bits de rang 2, on peut les
ignorer dans la poursuite de la recherche de la valeur médiane.
[0047] Le même test que précédemment est maintenant effectué sur les bits de la troisième
colonne et les mêmes conséquences en sont tirées. Il en résulte d'une part le fait
que le troisième bit de la valeur cherchée est ici un 0, et d'autre part un tableau
4 dans lequel les valeurs dont le troisième bit est un 1 ont été remplacées par la
valeur 0101 certainement supérieure ou égale à la valeur médiane cherchée.
Tableau 4
[0048] A1 0100
A2 0101
A3 0100
A4 0101
A5 0100
A6 0101
A7 0100
A8 0101
A9 0100
[0049] Finalement les trois premiers bits du tableau de valeurs modifiées étant tous identiques,
il ne reste plus qu'à tester le nombre de bits à 0 dans la dernière colonne. Si ce
nombre est supérieur ou égal à k, le dernier bit de la valeur cherchée sera 0. C'est
bien le cas ici, et on vérifie donc que les quatre bits de la valeur cherchée sont
0100 comme on l'avait prévu au départ.
[0050] Ce procédé est extrêmement simple à mettre en oeuvre à l'aide d'un circuit spécialisé
ou d'un circuit nonspécialisé commandé par des instructions (microprocesseur); la
séquence des opérations de test et de modification de bits est décrite ci-dessus avec
suffisament de détails pour qu'il n'y ait pas de difficultés particulières.
[0051] On va cependant décrire une réalisation avec un circuit de logique combinatoire qui
a l'avantage d'être plus rapide.
[0052] Le schéma est représenté à la figure 1.
[0053] Pour stocker les n valeurs numériques dont on veut déterminer la médiane (ou la k
ième position), on prévoit un registre de n mots de p bits; il est désigné par REG sur
la figure 1. Les valeurs ont été introduites par exemple séquentiellement dans ce
registre, mais elles doivent pouvoir en sortir toutes en parallèle. C'est pourquoi
l'entrée du registre, qui peut être aussi l'entrée du filtre, est un bus E de p conducteurs,
mais la sortie du registre est consituée par p bus de n conducteurs chacun.
[0054] Sur la figure 1, on a considéré que p=4 pour simplifier, et on a donc représenté
quatre bus B1, B2, B3, B4 de n bits chacun. Chaque bus correspond à une poids binaire
respectif j (j=1 à j=p dnas l'ordre des poids décroissants) de chiffres binaires des
n valeurs.
[0055] On peut appeler b
i,j le bit de poids j de la i
ième valeur. Ce bit est transmis par le bus Bj.
[0056] Le circuit de détermination de la k
ième valeur est un réseau de p groupes de circuits que l'on va détailler ci-après. Il
y a un groupe respectif de circuits pour chaque pois binaire des valeurs à traiter.
[0057] Chaque groups comprend trois blocs ayant des fonctions distinctes les uns des autres.
[0058] Le premier bloc, désigné par CAj pour le poids binaire j (Ca1, CA2, CA3, CA4 sur
la figure 1), est constitué par n cellules élémentaires; chaque cellule reçoit un
bit b
i,j, un premier signal de test S
i,j et un deuxième signal de test R
i,j. Elle élabore un bit modifié d
i,j ayant pour valeur 1 si S
i,j=1, ou 0 si R
i,j=1 ou b
i,j dans les autres cas.
[0059] Le bloc CAj reçoit trois bus d'entrée Bj, Sj, Rj, de n conducteurs chacun, et possède
comme sortie un bus Dj de n conducteurs également.
[0060] Le deuxième bloc, désigné par OMj pour le rang binaire j, reçoit le bus Dj, et il
fournit sur sa sortie un signal logique m
j (1 bit) indiquant s'il y a ou non k ou plus de k bits à 0 sur le bus Dj
[0061] Le troisième bloc, désigné par CBj sur la figure, est constitué par n cellules élémentaires;
chaque cellule reçoit le bit d
i,j de rang j, le premier signal de test S
i,j, le second signal de test R
i,j et enfin la sortie m
j du bloc OMj, et elle élabore un premier signal de test S
i,j+1 et un second signal de test R
i,j+1 pour les blocs du rang binaire suivant j+1.
[0062] Le bloc CBj reçoit donc le bus Dj, le bus Sj, le bus Rj, et le signal m
j, et sa sortie constituée par les bus Sj+1 et Rj+1.
[0063] Le circuit fonctionne donc par élaboration successive des signaux de test correspondant
aux poids binaires successifs décroissants. Pour que le fonctionnement soit parfaitement
déterminé, on doit imposer les valeurs initiales des signaux de test pour le poids
le plus élevé. Ces valeurs sont:
S
i,1 = R
i,1 = 0
[0064] La relation logique par laquelle on établit S
i,j+1 et T
i,j+1 à partir de S
i,j et R
i,j est la suivante. L'astérisque * désigne le complément logique d'une valeur binaire:
S
i,j+1 = S
i,j + m
j*.d
i,j
R
i,j+1 = R
i,j + m
j.d*
i,j
[0065] Les sorties du circuit de filtrage sont les sorties des blocs OMj: la sortie du bloc
OMj représente le chiffre binaire de rang j de la valeur médiane ou de la valeur à
la k
ième position de la suite de n valeurs.
[0066] Ces sorties sont regroupées en un bus M de p bits qui fournit la valeur cherchée
à la sortie du filtre.
[0067] Les schémas des figures 2 et 3 représentent respectivement un exemple de réalisation
d'une cellule CA
i,j d'un bloc CA
j, et une cellule CB
i,j d'un bloc CBj. On notera que pour des raisons de simplification de dessin, on préfère
que les cellules reçoivent le complément logique du signal R
i,j et du signal m
j, et de même on préfère qu'elles établissent un signal représentant le complément
de R
i,j+1. Par ailleurs, la cellule CA
i,j établit un bit d
i,j et son complément d*
i,j, le bloc OMj utilisant de préférence ces deux signaux compémentaires comme on va
maintenant le voir.
[0068] La figure 4 représente une possiblité de réalisation du bloc OMj.
[0069] Le bloc comprend deux ensembles de transistors.
[0070] Le preimer ensemble comprend n transistors T
i,j en parallèle (pour le bloc OMj). Ces transistors sont alimentés en courant à travers
une résistance Rj ou un transistor à caractéristique résistive, et leurs grilles sont
commandées individuellement par les sorties d'un registre RK qui définit le nombre
k de la manière suivante: le registre possède n sorties dont k sont à l'état logique
1 et n-k à l'état 0. Le registre est programmable si on le désire.
[0071] Le deuxième ensemble comprend n transistors Q
i,j en parallèle. Ces transistors sont alimentés en courant à travers une résistance
R'j et leurs grilles sont commandées individuellement par les bits modifiés d
i,j issus du circuit CAj.
[0072] Le point de jonction entre la résistance Rj et les drains des transistors T
i,j est relié à une première entrée d'un amplificateur différentiel AD. Le point de jonction
entre la résistance R'j et les drains des transistors Q
i,j est relié à l'autre entrée de cet amplificateur.
[0073] La sortie de cet amplificateur fournit le signal m
j ou son complément selon les polarités choisies pour les entrées de l'amplificateur
[0074] Dans le cas d'un filtre médian ou k=(n+1)/2, on n'a pas spécialement besoin du registre
RK car les grilles des transistors T
i,j peuvent recevoir tout simplement les compléments d*
i,j des signaux d
i,j.
[0075] Ce circuit de la figure 4 repose sur la possibilité de réaliser sur un circuit intégré
2n transistors ayant des caractéristiques identiques notamment en ce qui concerne
leur résistance interne dans l'état passant. En effet, l'amplificateur AD va basculer
dans un sens ou dans l'autre selon les potentiels présents à ses entrées; si les transistors
sont identiques, le basculement sera directement le résultat de la comparaison entre
les nombres de transistors rendus conducteurs dans les deux ensembles, c'est-à-dire
de la comparaison entre le nombre de bits d
i,j à 0 et le nombre k programmé dans le registre.
[0076] On pourrait envisager que le registre RK fournisse le nombre k sous forme binaire
pondérée, mais alors il faut prévoir aussi que les transistors T
i,j aient des dimensions relatives pondérées de la même manière et surtout que leurs
résistances internes soient pondérées de la même manière.
1. Procédé de filtrage numérique pour déterminer quelle est la valeur à la kième position d'une suite ordonnée, croissante ou décroissante, de n valeurs numériques
appliquées à l'entrée d'un filtre sous forme de signaux logiques binaires, caractérisé
en ce qu'il consiste à:
- recevoir et stocker les n valeurs numériques,
- examiner l'ensemble des bits de rang le plus élevé des n valeurs, tester si le nombre
de bits à "zéro" est ou n'est pas supérieur ou égal à k, et fournir un signal de test
ayant un premier état dans l'affirmative et un deuxième état dans la négative,
- établir, à partir de chaque bit des valeurs numériques et du signal de test, un
bit modifié selon le principe suivant:
a) pour le premier état du signal de test, on donne la valeur logique "un" à tous
les bits de rang moins élevé de toutes les valeurs numériques ayant un bit "un" comme
bit de rang le plus élevé, et on conserve les bits des autres valeurs
b) pour le deuxième état du signal de test, on donne la valeur logique "zéro" à tous
les bits de rang moins élevé de toutes les valeurs numériques ayant un bit "zéro"
comme bit de rang le plus élevé, et on conserve les bits des autres valeurs
- recommencer l'examen, le test, et l'établissement de bits modifiés, en prenant comme
rang le plus élevé le rang immédiatement inférieur, et en prenant comme bits à tester
les bits modifiés ayant ce rang immédiatement inférieur, et ainsi de suite jusqu'au
rang le moins élevé'
- transmettre à titre de signal de sortie du filtre les signaux logiques de test.
2. Filtre numérique de rang k pour déterminer quelle est la valeur à la kième position d'une suite ordonnée, croissante ou décroissante, de n valeurs numériques
appliquées à l'entrée du filtre sous forme de signaux logiques binaires de p bits
chacune, caractérisé en ce qu'il comporte:
- un registre (REG) pour recevoir et stocker les n valeurs numériques de p bits,
- pour chaque rang binaire j des valeurs numériques, j croissant de 1 à p pour les
rangs de poids successifs décroissants, un circuit logique (CAj) pour établir un bit
modifié di,j à partir du bit bi,j de rang j de chaque valeur numérique en fonction de signaux de test, la valeur du
bit di,j étant soit 0, soit 1, soit bi,j
- pour chaque rang binaire j dest valeurs numériques, un circuit respectif d'élaboration
des signaux de test destinés au circuit d'établissement de bits modifiés de l'étage
suivant de rang j+1, ce circuit comprenant;
un premier circuit (OMj) recevant les bits modifés di,j et fournissant un signal de sorti (mj) ayant un premier état ou un deuxième état selon que le nombre de bits modifiès di,j égaux à 0 est ou n'est pas supérieur ou ègal à k,
et un deuxième circuit (CBj) recevant ce signal de sortie (mj), les signaux de test appliqués au circuit d'établissement de bits modifiés, et les
bits di,j du rang binaire j des valeurs numériques, ce deuxième circuit fournissant les signaux
de test correspondant au rang j+1,
les signaux de sortie (mj) des premiers circuits constituant les sorties du filtre de rang k.
3. Filtre numérique selon la revendication 2, caractérisé en ce que les signaux de
test sont au nombre de deux, Si,j et Ri,j pour chaque rang j et pour chaque valeur numérique i, ces signaux étant définis par
la fonction récurrents suivante:
Si,j+1 = Si,j + mj*.di,j
Ri,j+1 = Ri,j + mj.d*i,j
avec
Si,1 = Ri,1 = 0
l'astérisque * désignant le complément logique d'une valeur binaire.
4. Filtre selon l'une des revendications 2 et 3, caractérisé en ce que le premier
circuit (OMj) comprend un premier ensemble de n transistors (Ti,j) en parallèle, alimentés en courant à travers une résistance (Rj), leurs grilles
étant commandées par un registre (RK) ayant n sorties dont k sont à l'état logique
1 et n-k à l'état logique 0, et un deuxième ensemble de transistors (Qi,j) en paralléle, alimentées en courant à travers une résistance Rʹj et ayant leurs
grilles commandées individuellement par les bits modifiés di,j issus du circuit d'établissement de bits modifiées de rang j, le premier circuit
comprenant encore un amplificateur différentiel dont une entrée est reliée aux drains
des transistors du premier ensemble et une autre entrée est reliée aux drains des
transistors du deuxième ensemble.
5. Filtre médian selon l'une des revendications 2 et 3, caractérisé en ce que le premier
circuit (OMj) comprend un premier ensemble de n transistors (Ti,j) en paralléle, alimentés en courant à travers une résistance (Rj), leurs grilles
étant commandées individuellement par les compléments d*i,j des bits modifiés di,j issus du circuit d'établissment de bits modifiés de rang j, et un deuxième ensemble
de transistors (Qi,j) en parallèle, alimentés en courant à travers une résistance Rʹj et ayant leurs grilles
commandées individuellement par les bits modifiés di,j, le premier circuit comprenant encore un amplificateur différentiel dont une entrée
est reliée aux drains des transistors du premier ensemble et une autre entrée est
reliée aux drains des transistors du deuxième ensemble.