Pour les besoins de cette réponse, j'utiliserai la terminologie de Matlab et définirai le «suréchantillonnage» comme le processus d'insertion de zéros entre les échantillons d'entrée et «l'interpolation» comme le processus combiné de suréchantillonnage et de filtrage pour supprimer les alias ( étant le facteur d'interpolation) introduit par le suréchantillonnage. Pour une explication de la façon / pourquoi le suréchantillonnage introduit des alias, veuillez consulter ce fil .m - 1 mm - 1m - 1m
Il est important de comprendre que n'importe quel filtre passe-bas peut être utilisé pour se débarrasser des alias et ainsi terminer l'interpolation. Certains filtres ont cependant des avantages lorsqu'ils sont utilisés en interpolation. Je vais discuter des différentes variantes du filtrage d'interpolation ci-dessous.
Filtre FIR
Les filtres FIR d'interpolation sont efficaces car ils combinent le suréchantillonnage et le filtrage d'alias en une seule étape. Ceci est plus facilement visible dans un exemple. Supposons que nous ayons une séquence de données et que nous voulons l'interpoler par un facteur de deux. La première étape consiste à suréchantillonner d'un facteur deux. Cela change la séquence de données d'origine de à .x 0 , x 1 , . . . x N x 0 , 0 , x 1 , 0 , . . . x Nx [ n ]X0, x1, . . . XNX0, 0 , x1, 0 , . . . XN
Supposons maintenant que nous ayons un filtre FIR passe-bas, , que nous utiliserons pour supprimer l'alias. Lorsque nous faisons convoluer la séquence de données suréchantillonnées avec le filtre, la moitié des prises de filtre sont stimulées par les échantillons non nuls et la moitié des prises sont inactives car elles correspondent aux échantillons nuls. La moitié qui est stimulée et la moitié qui est inactive bascule d'avant en arrière lorsque le filtre parcourt les données. Ces deux ensembles de prises sont parfois appelés phases de filtrage.h [ n ]
Ce même effet peut être obtenu implicitement en éliminant le suréchantillonnage et en filtrant la séquence de données d'origine avec un filtre FIR d'interpolation. Le filtre FIR interpolant produit sorties pour chaque échantillon d'entrée. Pour toutes les sorties le filtre fonctionnera sur les mêmes échantillons d'entrée de plafond (où K est le nombre de prises de filtre et «plafond» est la fonction de plafond).m c e i l ( K / m )mmc e i l ( K/ m)
Nous espérons qu'un exemple illustrera comment cela fonctionne. Supposons que nous ayons un filtre à six prises et que nous interpolions par un facteur de deux. Les prises de filtre sont [1 -2 4 4 -2 1]. Si nous interpolions et filtrions littéralement, les échantillons et les prises de filtre s'alignaient (une fois qu'il y avait un chevauchement complet) comme suit:
0:1x2:−20:4x1:40:−2x0:1
Échantillon suivant ...
x3:10:−2x2:40:4x1:−20:1
Échantillon suivant ...
0:1x3:−20:4x2:40:−2x1:1
Et ainsi de suite. Le point du filtre d'interpolation est qu'il saute réellement l'insertion des zéros et alterne simplement le jeu de taps qu'il utilise à la place. Ainsi, la séquence précédente ressemblerait maintenant à la suivante:
x2:−2x1:4x0:1
x3:1x2:4x1:−2
x3:−2x2:4x1:1
Maintien de l'ordre zéro
Un interpolateur de maintien d'ordre zéro est un interpolateur qui répète simplement chaque échantillon fois. Donc, un facteur de deux interpolateurs de maintien d'ordre zéro convertit en . Cette méthode est intéressante car elle est extrêmement facile à mettre en œuvre, à la fois en termes de codage et de charge de calcul.m−1x0,x1,...xNx0,x0,x1,x1,...xN,xN
Le problème est que son filtrage passe-bas est assez médiocre. Nous pouvons voir que lorsque nous reconnaissons que l'interpolateur à maintien zéro est un cas spécial d'interpolation FIR. Il correspond à un suréchantillonnage suivi d'un filtre rectangle de largeur . La transformée de Fourier d'un filtre rectangulaire est une fonction sinc, qui est un filtre passe-bas plutôt minable. Sa minable peut être corrigée avec un filtre FIR compensateur, mais si vous allez le faire, vous pourriez tout aussi bien utiliser un bon filtre passe-bas pour commencer.m
Première mise en attente
Le maintien du premier ordre est un pas de plus par rapport à l'interpolateur à maintien zéro en ce qu'il interpole linéairement les suréchantillons en utilisant les deux échantillons d'entrée les plus proches. Ainsi, un facteur de deux interpolateurs de maintien de premier ordre convertirait en .x0,x1,...xNx0,x0+x12,x1,x1+x22,...xN
Comme l'interpolateur de maintien d'ordre zéro, l'interpolateur de maintien de premier ordre est un cas particulier d'interpolation FIR. Cela correspond au suréchantillonnage et au filtrage avec un filtre triangle. Pour une interpolation de facteur deux, le filtre est , pour une interpolation de facteur trois, le filtre est , etc.[1[12112][132312312]
Le filtre triangulaire est constitué de deux filtres rectangulaires convolus, ce qui correspond au carré sinc dans le domaine fréquentiel. Il s'agit là d'une avancée certaine par rapport à la mise en attente d'ordre zéro, mais ce n'est toujours pas grand.
Filtre IIR
Je n'ai jamais utilisé de filtre IIP interpolateur donc je n'en dirai pas long sur eux. Je suppose que les mêmes arguments s'appliquent que dans le filtrage normal - les filtres IIR sont plus efficaces, peuvent être instables, n'ont pas de phase linéaire, etc. Je ne pense pas qu'ils puissent combiner les étapes de suréchantillonnage et de filtrage comme un filtre FIR, mais je peux me tromper à ce sujet.
Interpolation FFT
Je vais lancer celui-ci même s'il n'est pas très courant (bien sûr, je ne pense pas que le maintien zéro soit commun non plus). Ce fil discute du rééchantillonnage FFT, où le rééchantillonnage est à la fois interpolation et décimation.
Maintien d'ordre supérieur
Les interpolateurs de maintien de second ordre sont généralement appelés «interpolateurs quadratiques». Ils sont non linéaires et ne peuvent donc pas être mis en œuvre en tant que filtres FIR, qui sont linéaires. Je ne comprends pas bien les mathématiques derrière eux, donc je ne discuterai pas de leurs performances. Je dirai cependant que je pense qu'ils sont quelque peu courants en dehors du traitement du signal.
Des méthodes d'ordre supérieur (trois ou plus) existent également. Celles-ci sont appelées "régressions polynomiales".
ÉDITER:
Filtres en peigne intégrateur en cascade (CIC)
J'ai oublié de mentionner CIC Filters . Les filtres CIC sont utilisés pour deux raisons: ils n'utilisent que des additionneurs / soustracteurs (ce n'est pas si grave maintenant que les multiplications sont rapides et bon marché), et ils peuvent faire des changements de taux d'échantillonnage très importants assez efficacement. Leur inconvénient est qu'ils sont essentiellement une mise en œuvre efficace d'un filtre rectangle en cascade, ils ont donc tous les inconvénients des filtres rectangulaires comme discuté ci-dessus. Les interpolateurs CIC sont presque toujours précédés d'un filtre FIR compensateur qui distord le signal pour annuler la distorsion introduite par le CIC. Si le changement de fréquence d'échantillonnage est suffisamment important, le coût du filtre de pré-distorsion en vaut la peine.
La réponse de Jim le couvre assez bien. Toutes les méthodes de suréchantillonnage suivent le même schéma de base:
La principale différence entre les méthodes est la façon dont le filtrage passe-bas est implémenté. Le suréchantillonneur idéal serait d'inclure un filtre passe-bas idéal, mais ce n'est pas pratique. La prise en compte du problème dans le domaine fréquentiel permet de trouver l'algorithme de sur-échantillonnage adapté à vos besoins spécifiques:
Les interpolateurs non linéaires d'ordre élevé (spline, hermitien, Lagrange) ne fonctionnent généralement pas bien car l'erreur d'interpolation dépend fortement du signal et est presque impossible à mapper à des exigences spécifiques.
la source
Lorsque l'on considère la différence entre l'échantillon et la conservation (c'est-à-dire la répétition des valeurs d'échantillon) et le remplissage nul, il est utile de réaliser (comme le soulignent Jim et Hilmar) que l'échantillon et la conservation peuvent être interprétés comme un suréchantillonnage par un remplissage nul suivi d'un Filtre FIR dont la réponse impulsionnelle est constituée d'une impulsion rectangulaire.
Par exemple, lors d'un suréchantillonnage de 2 kHz à 64 kHz (un facteur de 32), nous pouvons implémenter cela en insérant 31 zéros entre chaque paire d'échantillonnage de 2 kHz, puis en filtrant par un filtre FIR composé de 32 unités, avec toutes les autres coefficients zéro.
La prise en compte de l'échantillon et du maintien de cette manière facilite l'analyse. Nous pouvons obtenir la réponse en fréquence de l'opération d'échantillonnage et de maintien en prenant la transformée de Fourier de la fenêtre rectangulaire. Comme le souligne Jim, la transformée de Fourier d'une impulsion rectangulaire est uneτ=0
sinc
fonction à phase linéaire (puisque le rectangle n'est pas centré autour de ).Il s'avère que cette
sinc
fonction a ses valeurs nulles exactement aux harmoniques de la fréquence d'échantillonnage inférieure. Dans notre exemple d'application de suréchantillonnage de 2048 Hz à 65536 Hz, la réponse en fréquence de l'opération d'échantillonnage et de maintien a des valeurs nulles à 2048 Hz, 4096 Hz, etc.De là, je conclus que tout filtre d'interpolation qui supprime totalement les harmoniques de la fréquence d'échantillonnage d'origine ressemblera à quelque chose comme "échantillonnage et maintien". Est-ce correct?
En ce qui concerne les critères de suppression de ces harmoniques, l'échantillonnage et la conservation semblent être optimaux. Cependant, ses capacités d'anticrénelage sont médiocres, car, à part les valeurs nulles harmoniques, sa réponse en fréquence ne tombe que au-dessus de l'ancien taux de Nyquist.1/f
la source