Supposons que nous souhaitons interpoler un signal périodique avec un nombre pair d'échantillons (par exemple N = 8) par un remplissage nul dans le domaine fréquentiel.
Laissez le DFT X=[A,B,C,D,E,F,G,H]
Maintenant, complétons-le à 16 échantillons pour donner Y
. Chaque exemple de manuel et tutoriel en ligne que j'ai vu insérer des zéros à donner .
(Alors est le signal interpolé.)[Y4...Y11]
Y=[2A,2B,2C,2D,0,0,0,0,0,0,0,0,2E,2F,2G,2H]
y = idft(Y)
Pourquoi ne pas utiliser à la place
Y=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]
?
Pour autant que je sache (mes connaissances en mathématiques sont limitées):
- Il minimise la puissance totale
- Il garantit que si
x
la valeur réelle l'est aussiy
y
intersecte toujoursx
à tous les points d'échantillonnage, comme requis (je pense que cela est vrai pour n'importep
oùY=[2A,2B,2C,2D,pE,0,0,0,0,0,0,0,(2-p)E,2F,2G,2H]
)
Alors pourquoi cela n'est-il jamais fait de cette façon?
Edit : x
n'est pas nécessairement à valeur réelle ou à bande limitée.
Réponses:
Regardons les fréquences des bacs dans votre DFT à 8 points:
Ainsi, lorsque vous interpolez par un facteur 2 ,la fréquence dupointEdevient-πou+π.
À première vue, je ne vois pas quel est le problème avec votre approche car il n'est pas clair si doit être mis dans le bac associé à π ou - π .E π −π
Sur la page de Julius O. Smith III , il énonce une condition:
Et son exemple est pour un impair , ce qui évite le problème.N
Je ne sais pas si c'est obligatoire, mais voici la référence complète au travail de Julius:
Smith, JO Mathematics of the Discrete Fourier Transform (DFT) with Audio Applications, Second Edition, http://ccrma.stanford.edu/~jos/mdft/ , 2007, livre en ligne, consulté le 28 septembre 2011.
la source
Il existe plusieurs façons d'interpoler des données. L'interpolation dans mon esprit signifie que vous «tracez» des lignes entre certains points de données. Cela peut se faire de plusieurs façons. Un type d'interpolation utile dans le DSP (en particulier dans le DSP multidébit) est «l'interpolation à bande limitée». Si vous googlez, vous obtiendrez de nombreux hits intéressants et utiles. Ce que vous proposez n'est pas une interpolation à bande limitée. Dans votre x suréchantillonné, vous avez des composantes de fréquence non présentes dans le x d'origine.
Modifier (trop long pour tenir dans un commentaire):
Il existe une différence assez importante entre votre construction, à commencer par et l'exemple dans la référence que vous fournissez.X=[A,B,C,D,E,F,G,H]
Tenir compte d'une réelle contribution
Suréchantillonnage d'un facteur 2 pour l'entrée pleine bande. Dans ce cas - échantillonnage peut être effectué par des premiers zéros de placer dans l'entrée entrelacée (qui est . Le résultat est un signal ayant un spectre de fréquences contenant une version compressée du spectre de fréquences de x (dans la plage 0 - π / 2 ) et une image s'étendant de π / 2 - π (en considérant uniquement l'axe de fréquence positif). Si x2 est la version suréchantillonnée, alorsx0,0,x1,0,... 0−π/2 π/2−π
En pratique, cependant, il y aura une certaine distorsion car le filtre de mur de briques n'est pas réaliste. Le filtre pratique peut supprimer / supprimer des fréquences dans l'entrée ou il peut laisser dans certaines des composantes de fréquence de l'image dans le signal suréchantillonné. Ou le filtre peut faire un compromis entre les deux. Je pense que votre construction dans le domaine des fréquences reflète également ce compromis. Ces deux exemples représentent deux choix différents:
Si l'entrée est limitée en bande en dessous de la fréquence nyquist comme dans votre référence, ce problème disparaît.
la source