SM 5 BSZ - radio DSP pour LINUX pour plate-formes Intel 
(1 Novembre 2001)

Radio DSP d'usage général

Les ordinateurs modernes ont la puissance de calcul nécessaire, pour permettre à des radios conventionnelles de recevoir des signaux avec un mauvais rapport S/N. Particulièrement lorsque le mauvais rapport S/N est dû à des interférences plutôt qu'au bruit blanc (galactique),  l'ordinateur peut enlever les interférences à l'intérieur de la bande passante étroite du signal désiré, par l'usage de l'information sur la source de l' interférence récupérée par l'emploi de bandes passantes plus larges. Le traitement du signal peut être beaucoup plus astucieux que ce qu'il était possible de faire auparavant.. Chaque source d' interférence peut être traitée comme un signal, et la radio DSP peut recevoir ET SÉPARER simultanément un grand nombre de signaux. Le package radio DSP est en développement, avec la flexibilité et la généralité comme aspects importants. Cette page contient des liens vers des pages qui décrivent différents aspects du traitement de la radio numérique, dans l'ordre dans lequel ils sont rencontrés dans le processus de développement à venir. La radio-DSP pour LINUX est calculée pour toutes les méthodes de modulation à bande étroites, et pour toutes les gammes de fréquence. Pour débuter seront inclus les modes suivants. 

CW pour signaux faibles (principalement EME)
CW Normale
CW à grande vitesse (méteor-scatter)
SSB
FM

 



Fig 1. Schéma bloc de la radio dsp Linux en mode CW pour signaux faibles. Les signaux bleus sont dans le domaine temps, les signaux rouges sont dans le domaine fréquence. Les signaux verts montrent la puissance par rapport à la fréquence, et les lignes noires représentent les paramètres de contrôle. 

Combinaisons de Hardware 

Pour une bande passante SSB, utilisant un récepteur SSB conventionnel et une antenne unique, un ordinateur 486 et n'importe quelle carte son conventionnelle peut convenir. Naturellement la bande passante limitée limite la performance, manifestement le mode FM ne fonctionnera pas du tout. Les routines de réjection d'interférences auront une information limitée sur les sources d'interférences, et leurs capacités seront réduites.  Si le récepteur SSB possède un noise-blanker adéquat, et si le S/N du signal désiré est essentiellement déterminé par le bruit blanc, la performance du signal faible ne sera pas dégradée. Pendant la phase de développement j'utilise un TS520 comme radio SSB, avec un ordinateur équipé d'un Pentium 66MHz (16MB RAM) et d'une Soundblaster 16, pour tester les performances à la fois en HF et en VHF.

Avec une bande passante de 40kHz et une antenne unique, un Pentium MMX et une carte son stéréo 16 bits standard donneront une performance raisonnable.  Avec l'utilisation de 2 mélangeurs de fréquence en quadrature le signal RF est converti en une paire de signaux audio qui sont échantillonnés en stéréo à  44.1kHz. La gamme dynamique sera toutefois limitée à l'intérieur des 40 kHz de la bande-passante. C'est la solution idéale de faible coût pour un usage général sur toutes les bandes de fréquence. Pendant la phase de développement je ne vois pas la nécessité de tester cette configuration. 

Avec une bande passante de 2 x 20kHz  et 2 antennes (par exemple une VHF X-yagi), un hardware analogique complexe est nécessaire si un convertisseur A/D 44.1kHz standard est utilisé. C'est la configuration que j'ai utilisée d'une manière extensive, avec la radio sur PC MS-DOS. Avec des filtres à quartz standards la bande passante est réduite à  2 x 15kHz, ainsi le hardware pour cette configuration est bien plus simple et facile à réaliser. Pour une information plus détaillée lire  la description du hardware  pour la radio PC MS-DOS. Pendant la phase de développement, cette configuration a été testée à 144MHz sur un Pentium MMX 200MHz (64MB) avec une Soundblaster 16.

Avec une bande passante de 2 x 90kHz et 2 antennes, un convertisseur A/D à 4 canaux tournant à 96kHz et un Pentium III est nécessaire. Chaque antenne nécessite 2 mélangeurs en quadrature. Pendant la phase développement, cette configuration a été testée sur un Pentium III 650MHz (128MB) avec une carte son Digital River Delta44. La Delta44 est vendue comme une carte son 24 bits, mais lorsque l'on échantillonne à 96kHz, seulement les 16 premiers bits contiennent une information valide, les 8 bits de poids faible contiennent du bruit aléatoire. 

Aspects pratique du traitement du signal.

Les liens ci-dessous pointent vers des pages html, qui contiennent de nombreuses  images montrant divers aspects intéressants du traitement du signal. Ces liens sont placés dans un ordre chronologique, et la version la plus récente du package contenant le soft est toujours au bas de la liste.

Filtres anti alias 
Des filtres anti-alias externes peuvent améliorer la bande-passante utile. Ici on voit un exemple avec le circuit Delta 44 .

Vitesse et précision de l'approché des FFT réelles                                                                                                                                                     L'utilisateur peut sélectionner différentes implantations de fft à partir d'un menu. Certaines sont approximatives, et cette page montre quelques graphes qui illustrent les limitations de ces routines.

Fading Sélectif.
Ici il y a quelques graphes qui montrent le fading sélectif sur des stations BC. L'amélioration que l'on peut attendre du traitement numérique de signaux AM est manifeste, bien que ce ne soit pas prévu dans un futur proche.

Comparaison de spectres larges et étroits à 7MHz
Ici on voit 2 graphes prélevés au même moment avec 2 systèmes différents. Tous les deux sont traités avec une bande-passante de 20Hz, mais le spectre couvant une bande-passante de 90kHz est rendu moyen, avant que le nombre de points soit diminué jusqu'à 1024, de façon que la résolution effective soit de100Hz. Pour préserver le S/N des faibles signaux à bande étroite, un processus bien plus complexe est nécessaire, le graphique montre comment le package DSP Linux peut être utilisé pour cela.

Forme du filtre et réponse impulsionnelle
Les récepteurs normaux ont une réponse impulsionnelle déplaisante, parce que les filtres ont des flancs impulsionnels raides. Ces images montrent comment les impulsions apparaissent, avant que le traitement du signal soit réalisé pour corriger la réponse fréquentielle des filtres analogiques. La réponse fréquentielle est également montrée dans le spectre, avec une charge fictive placée à l'entrée antenne, et produisant du bruit blanc.


Équilibrage des canaux pour récepteur à conversion directe
Un récepteur à conversion directe utilise 2 mélangeurs avec un  décalage de 90 degrés entre eux.  Un circuit analogique réel doit employer des composants à 1% ,de façon à ce qu'un récepteur à conversion directe typique, ait une composante non désirée supprimée d'au moins 40dB. Pour éviter un accord très précis des circuits analogiques, le package Linux DSP  a une correction digitale qui élimine cette composante. Cette section montre comment il travaille.

Gamme dynamique libre de parasites
Ici est un graphique qui montre les composants non désirés d'un récepteur à conversion directe, décrit sur cette page. La distorsion du second ordre domine.  La gamme dynamique libre de parasites est d'environ 80dB, si l'équilibrage est bien réalisé, et le niveau du signal est conservé à environ 15dB en dessous de la saturation.

Calibration pour réponse fréquentielle plate
En ajoutant un filtre digital, la réponse fréquentielle d'une radio dsp est rendue très plate. La procédure de calibration nécessite un générateur d'impulsion. La réponse en amplitude et en phase du système complet peut être réglée par l'utilisateur, et il en résulte une augmentation de la bande-passante utile, et le bruit plancher est rendu très plat avec une courbure connue précisément  aux bouts du spectre. La procédure est décrite avec le récepteur à conversion directe de bande-passante 90kHz comme exemple.

Calibration de la bande-passante SSB 
Ici sont quelques graphes produits par un TS520 et une carte Soundblaster 16 .

Un générateur d'impulsion pour calibration.
N'importe quel générateur d'impulsion peut être utilisé pour calibrer la radio dsp Linux. Ici est un exemple simple. Noter que les amplis sélectifs sont nécessaires - autrement les impulsions seraient trop faibles. Les impulsions ne PEUVENT PAS être amplifiées par un ampli à large bande - Elles ont toujours 5V en amplitude et satureront n'importe quelle entrée de  récepteur si on utilise ces amplis. Ce lien donne davantage d'information. 


Le graphe de la bande de base                                                                                                                                                                       Lorsque ni l' AFC ni le second fft n'est autorisé, le flot de données venant du convertisseur A/D à l'intérieur d'une bande de fréquence sélectionnée, est mélangé vers la bande de base pour un traitement ultérieur. Ici on trouve des renseignements concernant le premier mélangeur, ainsi que quelques images intéressantes du 7MHz  simultanément en haute et basse résolution .
Chronogramme du premier FFT
Le premier FFT est usuellement la routine la plus critique du point de vue timing. Il y a le choix entre plusieurs routines fft différentes, et la performance relative dépends probablement du type de processeur, du format du cache, et de bien d'autres paramètres du hardware. Ce lien donne l'information de timing couramment utilisable. Si vous avez un ordinateur différent Je fournirais gracieusement une information de chronométrie pour votre système !!

La fonction de second ordre                                                                                                                                                                                   Au cas où le deuxième fft est autorisé, les transformées du premier fft sont divisées en deux parties, et retransformées à l'envers au double du nombre de fonctions temporelles. De cette façon, les signaux forts (inintéressants) sont séparés des signaux faibles (intéressants) et de toutes sortes de bruit à large bande. La disparition des signaux forts est très intéressante pour permettre la réduction des bruits impulsionnels. Ce lien donne un exemple à 7MHz  où l'anti-parasite est bien plus difficile à réaliser qu'en VHF en raison du plus grand nombre de signaux forts.


Noise-Blanker avec hardware optimisé                                                                                                                                                                 Avec un hardware analogique optimisé la bande-passante plate est  90% de la bande-passante digitale ou plus. Une impulsion de bruit devient très courte ce qui est bon pour le noise-blanker.

Noise-Blanker avec hardware conventionnel                                                                                                                                                       Avec une radio conventionnelle la bande-passante plate est typiquement 75% de la bande-passante digitale ou moins. Une impulsion de bruit crée un comportement oscillatoire, c'est une oscillation à la fréquence centrale du filtre avec une constante de temps qui est de 1/bande-passante. Les oscillations ne sont pas trop nuisibles car leur forme exacte est connue par le système. - c'est la fft inverse de la réponse fréquentielle du circuit du signal (combinaison analogique et digitale).


Le graphe waterfall à haute résolution                                                                                                                                                                       Lorsque une grande gamme de fréquences est traitée, il n'y a pas assez de pixels sur l'écran pour associer une fréquence fft binaire avec chaque pixel. Typiquement des bandes-passantes de l'ordre de 1Hz sont utilisées pour détecter des signaux CW faible avec une sensibilité optimale. Lorsque une X-yagi est utilisée, une corrélation de canaux est utilisée pour perdre moins de 3dB par rapport à une antenne unique avec polarisation optimale.
Réglage du premier fft                                                                                                                                                                                          Lorsque le second fft est autorisé, l'usage du premier fft est seulement d'éliminer les forts signaux à bande étroite, qui pourrait détruire la performance du noise-blanker si ce n'était pas le cas. Il n'y a aucune raison de diminuer le temps de calcul de l'ordinateur pendant la première fft, car il y a de très gros signaux de très grande qualité à l'intérieur de la bande-passante. Quelques captures d'écran sont présentées pour illustrer ceci.
Testons la gamme de l' A/D                                                                                                                                                                                  Pour une bonne gamme dynamique, il est essentiel d'utiliser tous les bits du convertisseur A/D. Il y a des outils pour vérifier que la saturation n'apparaît pas dans la circuiterie analogique précédant le convertisseur A/D. Ici sont quelques captures d'écran montrant les insuffisances de la carte Delta44 (rien n'est parfait!....)
2 minutes d'EME sur 144MHz                                                                                                                                                                                  La page montre les captures d'écran, et vous permet de télécharger un fichier binaire contenant les signaux à partir desquels les captures d'écran ont été obtenues. Les signaux ont été enregistrés le 03 Octobre 1999 à environ 0800 TU. Lancez les sur votre ordinateur et écoutez différentes stations EME.
1/2 minute de contest sur7MHz (canal unique)                                                                                                                                                           La page montre les captures d'écran, et vous permet de télécharger un fichier binaire contenant les signaux à partir desquels les captures d'écran ont été obtenues. Lancez les sur votre ordinateur et écoutez différentes stations en contest.

1/2 minute de contest 7MHz (2 canaux)                                                                                                                                                                    La page montre les captures d'écran, et vous permet de télécharger un fichier binaire contenant les signaux à partir desquels les captures d'écran ont été obtenues. Si votre ordinateur était assez rapide pour un seul canal avec un peu de marge, lancez les sur votre ordinateur et écoutez différentes stations en contest.  

Installation du support SIMD sous RedHat 6.1                                                                                                                                                       Pour utiliser les instructions SIMD vous devez avoir le kernel 2.4xx ou mieux - ou vous devez installer un patch. Si vous n'avez pas une grande expérience de  Linux user, regardez ici.

Installation de la radio dsp Linux sous RedHat 6.1                                                                                                                                                   Si vous n'avez pas une grande expérience de Linux regardez ici. Si vous êtes un utilisateur expérimenté, SVP, essayez d'installer avec d'autres distributions de Linux (drivers définis dans sound.h). Envoyez un mail et dites moi ce que vous constatez.


fft inverse comme mélangeur combiné et ré-échantillonneur                                                                                                                            L'utilisation de la transformée de Fourrier inverse comme mélangeur de fréquence est triviale, On décale les contenus binaires de la fréquence avant d'appliquer la transformée inverse. On peut facilement implémenter un filtre en même temps par simple mise è zéro des points non désirés. En utilisant un sous-ensemble de points correspondant à une transformée plus petite, ensuite en utilisant les données de la transformée plus petite, le nombre de points est réduit par une puissance de 2.  La transformée inverse utilise le même temps de calcul en utilisant, une puissance de 2 fois moins de points. Bien que conceptuellement simple, cette méthode nécessite quelque attention pour éviter la production de signaux indésirables. Quelques captures d'écran montrent des bandes latérales parasites, fabriquées par les paramètres sélectionnés seulement pour la vitesse du processeur.  La performance est aussi bonne en utilisant un travail de calcul plus modeste.

Signaux indésirables et gamme dynamique                                                                                                                                                                En utilisant un PentiumIII et une Delta44, avec le hardware décrit dans les autres pages de ce site, 2 mélangeurs de fréquence en quadrature et Filtres anti-alias , avec un préamplificateur 7MHz on obtient un très bon récepteur. Quelques captures d'écran montrent la manière dont un signal faible peut être visualisé sur un écran de 90kHz de largeur. Un très gros signal à 7MHz est également présent. Bien qu'il y ait plusieurs signaux indésirables de diverses origines, ce n'est pas un problème de détecter un signal qui est à 130 dB en dessous du plus fort signal "indésirable". Le fft sous-jacent du graphe waterfall utilise 171072 points avec une fenêtre sinusoïdale rectangulaire. En étendant l'échelle de fréquence de 100 fois, la sensibilité peut être améliorée d'environ10dB. Le temps pour rechercher une gamme de fréquence large devient alors impraticable.

Traitement de la SSB de bande-passante normale                                                                                                                                                      Ici il y a quelques graphes montrant quelques possibilités d'utilisation du package dsp linux, avec un Pentium 60MHz traitant la sortie audio d'un TS520. Le Pentium 60MHz est suffisamment rapide pour traiter un seul canal échantillonné à 8kHz. Les réglages pour un "filtrage normal" de bande-passante 25 to 250Hz avec un petit retard du signal, ainsi que pour très haute sensibilité/résolution sont montrés.


Radio de très faible prix                                                                                                                                                                                          Utilisez juste 2 mélangeurs standards et un oscillateur X-tal , vous serez très surpris d'avoir un bon récepteur de radio. Aucun filtre anti-alias n'est nécessaire, ceux qui sont sur la carte son sont suffisants, si les demandes concernant la gamme dynamique restent modestes. Sans aucun amplificateur, la figure de bruit est acceptable, un gain de l'ordre de 60dB a été ajouté. La plus grande partie de ce gain est ajouté de préférence en basse fréquence.

Utiliser ossmix pour le réglage de la carte A/D                                                                                                                                                           Les cartes sons ont pratiquement toutes un certain nombre d'interrupteurs contrôlés par software. Il n'y a aucune raison de les contrôler à partir de l'intérieur du package dsp,  so /dev/mixer n'est plus utilisé.

Régler les niveaux de signaux du domaine temps                                                                                                                                                        En raison de la grande flexibilité des cartes A/D, les format des fft, le réglage manuel des fonctions de fenêtrage, et le réglage des niveaux des signaux n'est nécessaire que dans le cas ou le second fft est en service. Ceci parce que le second fft utilise 16bits de données pour gagner en vitesse, en utilisant des instructions  MMX.  Des niveaux de signaux trop bas amènent du bruit de quantification, et des niveaux de signaux trop hauts peuvent amener de la saturation, causant des réponses parasites, et dégradant sérieusement la gamme dynamique. Le programme dsp a des outils pour régler les niveaux correctement.

Régler les niveaux de signaux dans le domaine fréquentiel                                                                                                                                         Dans le cas ou la version MMX est sélectionnée avec le second fft, il est nécessaire de placer un paramètre de niveau de signal pour éviter la saturation ou le bruit de quantification. 


Linéarité des cartes A/D                                                                                                                                                                                     Lorsque l'on convertit un signal radio en une BF à large bande, la linéarité est essentielle. Un signal indésirable qui vient à une faible fréquence audio produit des sur-tonalités qui tombent dans la bande-passante. La linéarité de la carte A/D elle-même, place les limites pour la gamme dynamique la plus élevée, libre de produits indésirables . La carte Delta 44 est d'environ 1 bit (6dB) meilleure qu'une carte 16 bits standard. Le gros avantage avec la Delta 44 est que les échantillons sont plus élevés, ce qui permet plus de bande-passante.

Récepteur à conversion directe optimisé pour 144MHz                                                                                                                                        Bien qu'il soit extrêmement facile, de réaliser une radio raisonnablement bonne avec juste 2 mélangeurs Schottky, il n'est pas si aisé de réaliser un récepteur à conversion directe qui préserve la gamme dynamique d'une carte son Delta44. Le problème est que l'oscillateur local a une bande latérale de bruit, et au cas ou une très bonne linéarité est désirée, il est nécessaire d'avoir plus de puissance au LO pour attaquer un mélangeur de haut niveau.  En augmentant à la fois la porteuse LO et les bandes latérales du LO, on s'expose à ce que le bruit audio produit par le mélange du LO avec ses propres bandes latérales augmente quadratiquement. On obtient une meilleure performance avec des mélangeurs moins gourmands tels que SBL-1 or TUF-1.


Distributions de Linux                                                                                                                                                                                                Le Développement du package dsp linux a été réalisé sous RedHat 6.1 et avec OSS installé. On trouvera ici une info pour tourner sous d'autres systèmes.
Nouveau nom. Linux DSP radio s'appelle maintenant linrad
AFC, suivre et verrouiller un signal                                                                                                                                                             Verrouiller un signal faible et instable n'est pas facile. On doit utiliser plusieurs transformations pour trouver comment la fréquence varie avec le temps. Pour garder un S/N suffisamment bon, les transformations doivent être intégrées, ce qui signifie que la fréquence est trouvée avec un retard appréciable. L'AFC peut présenter le signal retardé au haut-parleur, en utilisant la valeur optimale pour la fréquence, mais qui peut aussi être extrapolée en fonction du temps écoulé, et présenter le signal passé au travers d'un filtre centré sur la fréquence extrapolée la moins précise. AFC est très en avance; dans linrad il est présent dans un mode simple canal seulement - et seulement si le second fft est en service. Le lien montre comment le fichier UNKN422 de AF9Y est reçu avec plusieurs choix différents de temps d'intégrations et de formats de fft.
La modulation du circuit EME                                                                                                                                                                                   2 Écrans de capture montrent le signal de IK3MAC reçu via la Lune. L'AFC suit la variation de la fréquence d'environ 0.5Hz sur1 minute de transmission. La porteuse du signal a une bande-passante de 0.2Hz ou moins. Ces graphes montrent clairement que la CW cohérente est utilisable en 144MHz pour les communications EME. La phase de la porteuse peut être extraite d'un filtre dont la bande-passante est environ 100 fois plus étroite que la bande-passante nécessaire pour la modulation du code morse. Ce qui signifie que la phase de la porteuse sera connue précisément en dessous du niveau où un signal peut être copié par l'oreille, ce qui donne pour la CW cohérente une amélioration de S/N de 3dB. 

Un doppler élevé pour les météores                                                                                                                                                                           Ici est une capture d'écran montrant un météore (ou également un satellite) avec un décalage doppler très élevé, qui change aussi rapidement que 1kHz par minute!! L'AFC s'accroche bien également sur des signaux très instables, aussi longtemps que le signal varie d'une manière continue, et ne fait pas de brusques sauts. Ce qui peut être intéressant pour les bandes micro-ondes.

Paramètres AFC normaux                                                                                                                                                                                Détails de l'AFC lorsqu'il est verrouillé sur le fichier UNKN422.WAV.

Linrad avec un récepteur SSB normal                                                                                                                                                            L'échantillonnage d'un canal audio unique à 6kHz est suffisant pour traiter la sortie d'une radio SSB conventionnelle. Un Pentium 100MHz tournera à environ 33% d'occupation de la cpu .

Linrad avec une bande-passante SSB et une antenne unique                                                                                                                                      Ce lien montre les paramètres de réglage pour linrad, lorsque il tourne comme un ajout à un récepteur SSB conventionnel, pour améliorer la réception des signaux EME faibles et instables .


 Quelques choix différents pour la sortie audio sont ajoutés:                                                                                                                                   Expanseur audio, stéréo pour 2 antennes, et stéréo artificielle dérivée du signal mono par une fréquence dépendant du décalage entre les deux oreilles. (équivalent à un petit temps de retard des signaux transmis à une oreille par rapport à l'autre.)

Un signal EME extrêmement faible. Intégration Cohérente des signaux CW                                                                                                                Ce lien montre un peu plus d'une heure de longue transmission à partir d'un émetteur très stable. Ce signal est beaucoup plus faible que celui qui peut être copié par l'oreille de n'importe quel opérateur de CW. Cet enregistrement montre, que l'intégration sur plusieurs répétitions d'un code morse répété, permettra EME à des puissances beaucoup plus faibles que celles qui étaient possibles en CW. Comme la porteuse peut être extraite par l'emploi d'une bande-passante d'environ 0.2Hz, il sera possible d'intégrer d'une façon cohérente, ce qui implique un temps raisonnablement court pour transmettre un message. 

Quelques graphes qui illustrent comme l' AFC fonctionne. Regarder ici pour avoir une idée sur le contrôle des paramètres 


lir00-28.tgz (243kB)  archive tar packée avec gzip.
lir00-28.tbz (200kB)  archive tar packée avec bzip2.
Dernière version 12 Octobre 2001. L' AFC est restructurée avec des boutons de commande dans la fenêtre AFC. Cette version est prématurée en raison du contest ARRL à venir. Utiliser linrad00-28 avec AFC en mode manuel seulement  Le mode automatique ne fonctionnant pas correctement.


Retour page d'entrée