_FIR2D(3F)_FIR2D(3F)NAME
SFIR2D, DFIR2D, CFIR2D, ZFIR2D - 2D Convolution in the time domain.
FORTRAN SPECIFICATION
subroutine SFIR2D( f, incf, ldf, ifx0, n_fx, ify0, n_fy,
g, incg, ldg, igx0, n_gx, igy0, n_gy,
h, inch, ldh, ihx0, n_hx, ihy0, n_hy,
alpha, beta )
integer incf, ldf, ifx0, n_fx, ify0, n_fy
incg, ldg, igx0, n_gx, igy0, n_gy
inch, ldh, ihx0, n_hx, ihy0, n_hy
real f(ldf,*), g(ldg,*), h(ldh,*), alpha, beta
subroutine DFIR2D( f, incf, ldf, ifx0, n_fx, ify0, n_fy,
g, incg, ldg, igx0, n_gx, igy0, n_gy,
h, inch, ldh, ihx0, n_hx, ihy0, n_hy,
alpha, beta )
integer incf, ldf, ifx0, n_fx, ify0, n_fy
incg, ldg, igx0, n_gx, igy0, n_gy
inch, ldh, ihx0, n_hx, ihy0, n_hy
double precision f(ldf,*), g(ldg,*), h(ldh,*), alpha, beta
subroutine CFIR2D( f, incf, ldf, ifx0, n_fx, ify0, n_fy,
g, incg, ldg, igx0, n_gx, igy0, n_gy,
h, inch, ldh, ihx0, n_hx, ihy0, n_hy,
alpha, beta )
integer incf, ldf, ifx0, n_fx, ify0, n_fy
incg, ldg, igx0, n_gx, igy0, n_gy
inch, ldh, ihx0, n_hx, ihy0, n_hy
complex f(ldf,*), g(ldg,*), h(ldh,*), alpha, beta
subroutine ZFIR2D( f, incf, ldf, ifx0, n_fx, ify0, n_fy,
g, incg, ldg, igx0, n_gx, igy0, n_gy,
h, inch, ldh, ihx0, n_hx, ihy0, n_hy,
alpha, beta )
integer incf, ldf, ifx0, n_fx, ify0, n_fy
incg, ldg, igx0, n_gx, igy0, n_gy
inch, ldh, ihx0, n_hx, ihy0, n_hy
double complex f(ldf,*), g(ldg,*), h(ldh,*), alpha, beta
C SPECIFICATION
#include <conv.h>
void sfir2d( float *f, int incf, int lsf, int ifx0, int n_fx,
int ify0, int n_fy,
float *g, int incg, int ldg, int igx0, int n_gx,
int igy0, int n_gy,
float *h, int inch, int ldh, int ihx0, int n_hx,
int ihy0, int n_hy,
float alpha, float beta)
Page 1
_FIR2D(3F)_FIR2D(3F)
void dfir2d( double *f, int incf, int ldf, int ifx0, int n_fx,
int ify0, int n_fy,
double *g, int incg, int ldg, int igx0, int n_gx,
int igy0, int n_gy,
double *h, int inch, int ldh, int ihx0, int n_hx,
int ihy0, int n_hy,
double alpha, double beta)
void cfir2d( complex *f, int incf, int ldf, int ifx0, int n_fx,
int ify0, int n_fy,
complex *g, int incg, int ldg, int igx0, int n_gx,
int igy0, int n_gy,
complex *h, int inch, int ldh, int ihx0, int n_hx,
int ihy0, int n_hy,
complex *alpha, complex *beta)
void zfir2d( zomplex *f, int incf, int ldf, int ifx0, int n_fx,
int ify0, int n_fy,
zomplex *g, int incg, int ldg, int igx0, int n_gx,
int igy0, int n_gy,
zomplex *h, int inch, int ldh, int ihx0, int n_hx,
int ihy0, int n_hy,
zomplex *alpha, zomplex *beta)
DESCRIPTION
SFIR2D and DFIR2D compute a 2D convolution in the time domain :
h(i,j) = beta * h(i,j) + alpha * Sum.Sum[ f(k,l) * g(i-k,j-l) ]
PARAMETERS
f Vector containing sequence "f"
incf Increment between two successive lines of "f"
ldf Increment between two successive columns of "f"
ifx0 Index of the first element of each column of "f"
n_fx Number of elements (lines) of each column of "f"
ify0 Index of the first column of "f"
n_fy Index of the last column of "f"
g Vector containing sequence "g"
Page 2
_FIR2D(3F)_FIR2D(3F)
incg Increment between two successive lines of "g"
ldg Increment between two successive columns of "g"
igx0 Index of the first element of each column of "g"
n_gx Number of elements (lines) of each column of "g"
igy0 Index of the first column of "g"
n_gy Index of the last column of "g"
h Vector containing sequence "h"
inch Increment between two successive lines of "h"
ldh Increment between two successive columns of "h"
ihx0 Index of the first element of each column of "h"
n_hx Number of elements (lines) of each column of "h"
ihy0 Index of the first column of "h"
n_hy Index of the last column of "h"
alpha Scaling factor for the Convolution
beta Scaling Factor for the Output on Entry
IMPORTANT NOTE:
The array pointers must all point to the first element of the
array "(ifx0,ify0)", "(igx0,igy0)" and "(ihx0,ihy0)". If "f"
for example is defined as
dimension f(-25:45,10:21)
Then "dfir2d" must be called with the following parameters
call dfir2d( f(-25,10),(45-(-25)+1),-25,45,10,21 ... )
AUTHORS
Jean-Pierre Panziera, 1/12/93.
Page 3