Bonjour à tous,
Je voudrais réaliser une multiplication complexe dans le domaine fréquentiel pour du traitement du signal.
Pour cela je travaille sous visual studio 2005 C++ et avec le SDK de Steinberg.
J'ai 2 tableaux en entrée :
tab1 qui contient un block du signal traité de 4096 samples.
tab2 qui contient l'impulse multipliée au signal de 4096 samples.
Ces deux tableaux sont le résultat d'une FFT (FFTReal).
Un tableau en sortie, tab3 qui contient le résultat.
Lorsque j'applique ma multiplication j'entend un bruit distordu, et puis plus rien. Alors que sans la multiplication mon rendu est vraiment niquel. C'est pour cela que je me pose des questions algorithmiques : est ce que ma multiplication est réalisée correctement ?
Voici le code utilisé pour cela :
Si vous avez une idée ? Je suis vraiment en galere, je bloque complétement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 /* Re(z) = Re(x) * Re(y) - Im(x) * Im(y) Im(z) = Re(x) * Im(y) + Im(x) * Re(y) */ int FIN = (size / 2) + 1; // size = 4096 for(int i=0; i<FIN;i++) { tab3[i] = (tab1[i]*tab2[i]) - (tab1[i+FIN]*tab2[i+FIN]); } for(int j=FIN; j < size;j++) { tab3[j] = (tab1[j-FIN] * tab2[j]) + (tab1[j] * tab2[j-FIN]); }
Merci de votre aide !!!
Partager