Low level routine
eng - fr


convolfft_c - signal by impulse response multiplication with fft method computational routine

Library

Parameters

File content


/* convolfft_c subroutine
 * FFT convolution computation
 * IRCOM GROUP - Author : A.Layec
 */
 
/* REVISION HISTORY :
 * $Log$
 */
 
#include "mod_num_lib.h"

/* convolfft_c routine de calcul de filtre à réponse impulsionnelle finie
 * par la méthode de convolution par fft
 *
 * m1   : taille des vecteurs
 * z1_r : adresse de départ de la partie réelle du vecteur temporel 1 d'entrée
 * z1_i : adresse de départ de la partie imaginaire du vecteur temporel 1 d'entrée
 * z2_r : adresse de départ de la partie réelle du vecteur temporel 2 d'entrée
 * z2_i : adresse de départ de la partie imaginaire du vecteur temporel 2 d'entrée
 * y_r  : adresse de départ de la partie réelle du vecteur temporel résultat
 * y_i  : adresse de départ de la partie imaginaire du vecteur temporel résultat
 *
 * utilise : fft842 (signal)
 *           complx_c
 *
 * rmq m1 doit-être de taille en puissance de 2
 */
 
void convolfft_c(int *m1,double *z1_r,double *z1_i,double *z2_r,double *z2_i,double *y_r,double *y_i)
{
 /*déclaration*/
 int k,i,ierr;

 /*appel fft*/
 F2C(fft842)((k=0,&k),m1,&z1_r[0],&z1_i[0],&ierr);

 /*appel fft*/
 F2C(fft842)((k=0,&k),m1,&z2_r[0],&z2_i[0],&ierr);

 /*Réalise la multiplication vectorielle complexe*/
 cmplxm_c(m1,&z1_r[0],&z1_i[0],&z2_r[0],&z2_i[0],&y_r[0],&y_i[0]);

 /*appel fft-1*/
 F2C(fft842)((k=1,&k),m1,&y_r[0],&y_i[0],&ierr);

 return;
}

Authors

IRCOM Group Alan Layec