Browse Source

use costa loop for AM demod, better polyphase filter

tags/v1.2
Thierry Leconte 20 years ago
parent
commit
24a3f7b62c
4 changed files with 178 additions and 528 deletions
  1. +22
    -35
      dsp.c
  2. +41
    -9
      filter.c
  3. +15
    -3
      filter.h
  4. +100
    -481
      filtercoeff.h

+ 22
- 35
dsp.c View File

@@ -26,35 +26,36 @@
#define Fe 11025
#define PixelLine 2080
#define Fp (2*PixelLine)
#define RSMULT 265
#define RSMULT 10
#define Fi (Fp*RSMULT)
static double FreqOsc=2400.0/Fe;
static double FreqLine=1.0;
extern int getsample(float *inbuff ,int nb);
static float pll(float Iv, float Qv)
static float pll(float In)
{
/* pll coeff */
#define K1 5e-3
#define K2 3e-6
static double PhaseOsc=0.0;
static iirbuff_t Ifilterbuff,Qfilterbuff;
double Io,Qo;
double Ip,Qp;
double DPhi;
double DF;
double I,Q;
double Io,Qo;
/* quadrature oscillator */
Io=cos(PhaseOsc); Qo=sin(PhaseOsc);
/* phase detector */
I=Iv*Io+Qv*Qo;
Q=Qv*Io-Iv*Qo;
DPhi=atan2(Q,I)/M_PI;
Ip=iir(In*Io,&Ifilterbuff,&PhaseFilterCf);
Qp=iir(In*Qo,&Qfilterbuff,&PhaseFilterCf);
DPhi=-atan2(Qp,Ip)/M_PI;
/* update */
/* loop filter */
DF=K1*DPhi+FreqOsc;
FreqOsc+=K2*DPhi;
@@ -62,7 +63,7 @@ PhaseOsc+=2.0*M_PI*DF;
if (PhaseOsc > M_PI) PhaseOsc-=2.0*M_PI;
if (PhaseOsc <= -M_PI) PhaseOsc+=2.0*M_PI;
return (float)I;
return (float)(In*Io);
}
static double fr=2400.0/Fe;
@@ -70,33 +71,19 @@ static double offset=0.0;
getamp(float *ambuff,int nb)
{
#define BLKIN 4096
static float inbuff[BLKIN];
static int nin=0;
static int idxin=0;
int n;
#define BLKIN 1024
float inbuff[BLKIN];
int n;
int res;
for(n=0;n<nb;n++) {
float I,Q;
res=getsample(inbuff,nb>BLKIN?BLKIN:nb);
if(nin<IQFilterLen) {
int res;
for(n=0;n<res;n++) {
ambuff[n]=pll(inbuff[n]);
fr=0.25*FreqOsc+0.75*fr;
}
memmove(inbuff,&(inbuff[idxin]),nin*sizeof(float));
idxin=0;
res=getsample(&(inbuff[nin]),BLKIN-nin);
nin+=res;
if(nin<IQFilterLen) return(n);
}
iqfir(&(inbuff[idxin]),Icoeff,Qcoeff,IQFilterLen,&I,&Q);
ambuff[n]=pll(I,Q);
fr=0.25*FreqOsc+0.75*fr;
idxin++;nin--;
}
return(nb);
return(res);
}
int getpixelv(float *pvbuff,int nb)
@@ -112,14 +99,14 @@ int n;
double mult;
int shift;
if(nam<15) {
if(nam<BLKAMP) {
int res;
memmove(ambuff,&(ambuff[idxam]),nam*sizeof(float));
idxam=0;
res=getamp(&(ambuff[nam]),BLKAMP-nam);
nam+=res;
if(nam<15) return(n);
if(nam<BLKAMP) return(n);
}
mult=(double)Fi*fr/2400.0*FreqLine;


+ 41
- 9
filter.c View File

@@ -21,7 +21,7 @@
*/
#include <filter.h>
float fir( float *buff, float *coeff, int len)
float fir( float *buff, const float *coeff, const int len)
{
int i;
double r;
@@ -34,29 +34,61 @@ return r;
}
void iqfir( float *buff, float *Icoeff, float *Qcoeff, int len, float *I,float *Q)
void iqfir( float *buff, const float *Icoeff, const float *Qcoeff, const int len, float *Iptr,float *Qptr)
{
int i;
float I,Q;
*I=*Q=0.0;
I=Q=0.0;
for(i=0;i<len;i++) {
register double v=buff[i];
double v;
*I+=v*Icoeff[i];
*Q+=v*Qcoeff[i];
v=buff[i];
I+=v*Icoeff[i];
Q+=v*Qcoeff[i];
}
*Iptr=I;
*Qptr=Q;
}
float rsfir(float *buff,float *coeff,int len ,double offset ,double delta)
float rsfir(float *buff,const float *coeff,const int len , const double offset , const double delta)
{
int i;
double n;
double out;
out=0.0;
for(i=0,n=offset;n<len;n+=delta,i++)
out+=buff[i]*coeff[(int)n];
for(i=0,n=offset;n<len-1;n+=delta,i++) {
int k;
double alpha;
k=(int)n;
alpha=n-k;
out+=buff[i]*(coeff[k]*(1.0-alpha)+coeff[k+1]*alpha);
}
return out;
}
double iir(double x,iirbuff_t *buff,const iircoeff_t *coeff)
{
buff->x[4]=buff->x[3];
buff->x[3]=buff->x[2];
buff->x[2]=buff->x[1];
buff->x[1]=buff->x[0];
buff->x[0]=x/coeff->G;
buff->y[2]=buff->y[1];
buff->y[1]=buff->y[0];
buff->y[0] = buff->x[4]
+ coeff->x[2] * buff->x[3]
+ coeff->x[1] * buff->x[2]
+ coeff->x[0] * buff->x[1]
+ buff->x[0]
+ coeff->y[1] * buff->y[2]
+ coeff->y[0] * buff->y[1];
return (buff->y[0]);
}

+ 15
- 3
filter.h View File

@@ -19,8 +19,20 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
float rsfir(float *buff,float *coeff,int len ,double offset ,double delta);
void iqfir(float *buff,float *Icoeff,float *Qcoeff, int len ,float *I, float *Q);
float fir(float *buff,float *coeff,int len);
typedef struct {
float G;
float x[3];
float y[2];
} iircoeff_t;
typedef struct {
float x[5];
float y[3];
} iirbuff_t;
float rsfir(float *buff,const float *coeff,const int len ,const double offset ,const double delta);
void iqfir(float *buff,const float *Icoeff,const float *Qcoeff, const int len ,float *I, float *Q);
float fir(float *buff,const float *coeff,const int len);
double iir(double x,iirbuff_t *buff, const iircoeff_t *coeff);

+ 100
- 481
filtercoeff.h View File

@@ -19,91 +19,16 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#define IQFilterLen 151
float Icoeff[151] = {
2.2325742843e-04, 2.2570278515e-04, 5.4944198549e-04,-8.6744539657e-05,
6.1428159970e-04,-4.9687907348e-05, 2.3702354115e-04, 3.0264117527e-04,
-3.4665776348e-04, 5.2848074680e-04,-6.1753398110e-04, 1.3993608700e-04,
-3.0008159593e-04,-8.1154328485e-04, 1.8022679170e-04,-1.5720199503e-03,
-3.8239337999e-05,-1.3741462473e-03,-1.2726627383e-03,-4.3328174632e-04,
-2.6172382938e-03,-1.7823982243e-05,-2.6269784384e-03,-1.1136815612e-03,
-9.8450124073e-04,-2.9497818647e-03, 7.2619879788e-04,-3.3279082742e-03,
4.9552201209e-04,-9.6400601705e-04,-1.5807647070e-03, 2.5724898362e-03,
-2.7159757697e-03, 3.9918684723e-03,-1.8644952761e-04, 1.9635192361e-03,
5.1208745535e-03,-6.5636214538e-04, 8.6991026256e-03, 6.6682087199e-04,
6.9770091456e-03, 6.7610342755e-03, 1.9312583597e-03, 1.2516505728e-02,
-4.0937464744e-05, 1.1476038446e-02, 4.9038325820e-03, 3.3291562530e-03,
1.2404842225e-02,-4.2288653974e-03, 1.2935433081e-02,-3.0148097682e-03,
2.0521344454e-03, 5.5762144444e-03,-1.2818561474e-02, 9.6027727293e-03,
-1.8205698550e-02,-1.7280919557e-03,-9.3032131482e-03,-2.4414363128e-02,
1.6839166970e-03,-3.9797698737e-02,-4.8196639244e-03,-3.2146070180e-02,
-3.4343377421e-02,-8.3583656070e-03,-6.6171220524e-02, 1.5264230826e-03,
-6.6097291361e-02,-3.1651889619e-02,-1.6711859701e-02,-1.0684451613e-01,
6.1593047818e-02,-1.8604836192e-01, 1.2071892074e-01, 7.7996698006e-01,
1.2071892074e-01,-1.8604836192e-01, 6.1593047818e-02,-1.0684451613e-01,
-1.6711859701e-02,-3.1651889619e-02,-6.6097291361e-02, 1.5264230826e-03,
-6.6171220524e-02,-8.3583656070e-03,-3.4343377421e-02,-3.2146070180e-02,
-4.8196639244e-03,-3.9797698737e-02, 1.6839166970e-03,-2.4414363128e-02,
-9.3032131482e-03,-1.7280919557e-03,-1.8205698550e-02, 9.6027727293e-03,
-1.2818561474e-02, 5.5762144444e-03, 2.0521344454e-03,-3.0148097682e-03,
1.2935433081e-02,-4.2288653974e-03, 1.2404842225e-02, 3.3291562530e-03,
4.9038325820e-03, 1.1476038446e-02,-4.0937464744e-05, 1.2516505728e-02,
1.9312583597e-03, 6.7610342755e-03, 6.9770091456e-03, 6.6682087199e-04,
8.6991026256e-03,-6.5636214538e-04, 5.1208745535e-03, 1.9635192361e-03,
-1.8644952761e-04, 3.9918684723e-03,-2.7159757697e-03, 2.5724898362e-03,
-1.5807647070e-03,-9.6400601705e-04, 4.9552201209e-04,-3.3279082742e-03,
7.2619879788e-04,-2.9497818647e-03,-9.8450124073e-04,-1.1136815612e-03,
-2.6269784384e-03,-1.7823982243e-05,-2.6172382938e-03,-4.3328174632e-04,
-1.2726627383e-03,-1.3741462473e-03,-3.8239337999e-05,-1.5720199503e-03,
1.8022679170e-04,-8.1154328485e-04,-3.0008159593e-04, 1.3993608700e-04,
-6.1753398110e-04, 5.2848074680e-04,-3.4665776348e-04, 3.0264117527e-04,
2.3702354115e-04,-4.9687907348e-05, 6.1428159970e-04,-8.6744539657e-05,
5.4944198549e-04, 2.2570278515e-04, 2.2325742843e-04
};
float Qcoeff[151] = {
-4.2794269223e-04, 1.8397163024e-04,-4.4785330284e-04,-1.6627304228e-04,
-1.7519563571e-04,-6.6303904496e-04, 3.0560801452e-05,-8.7995185699e-04,
-2.0511283957e-04,-5.8191603551e-04,-8.4615386905e-04,-6.3742453554e-05,
-1.3147433754e-03, 1.7346439781e-05,-9.8119119480e-04,-6.3644034234e-04,
5.7395024970e-05,-1.3889089625e-03, 8.2841163975e-04,-1.1039838850e-03,
4.5188354450e-04, 5.5581740182e-04,-6.2919746234e-04, 2.3772351253e-03,
-7.3475237168e-04, 2.6219466447e-03, 1.2578132143e-03, 1.1049416742e-03,
4.1962479555e-03,-8.2609879762e-05, 5.3261208370e-03, 1.3772341565e-03,
3.2602876090e-03, 5.0056447374e-03, 9.4749957243e-05, 7.1744053356e-03,
-3.2877105453e-04, 4.6945227130e-03, 3.0962146156e-03,-1.0999907749e-03,
6.4737184289e-03,-4.8244158496e-03, 4.3627462751e-03,-2.7164327070e-03,
-3.8309093084e-03, 2.2349582872e-03,-1.1750018328e-02, 2.2697803009e-03,
-1.2013419762e-02,-6.6510513229e-03,-4.9179283848e-03,-1.8647664418e-02,
8.7767339485e-05,-2.2229998741e-02,-6.1730938556e-03,-1.2584041201e-02,
-2.0928200446e-02, 9.7324325774e-04,-2.9054318745e-02, 2.6188181509e-03,
-1.7455558105e-02,-1.2275964282e-02, 8.7758192834e-03,-2.7366348536e-02,
2.6792609619e-02,-1.6892171021e-02, 1.7352137440e-02, 2.8542292813e-02,
-9.9625636977e-03, 8.6008409146e-02,-1.0376631651e-02, 1.1271117143e-01,
8.8298265751e-02, 7.9991566706e-02, 5.8639987374e-01,-0.0000000000e-00,
-5.8639987374e-01,-7.9991566706e-02,-8.8298265751e-02,-1.1271117143e-01,
1.0376631651e-02,-8.6008409146e-02, 9.9625636977e-03,-2.8542292813e-02,
-1.7352137440e-02, 1.6892171021e-02,-2.6792609619e-02, 2.7366348536e-02,
-8.7758192834e-03, 1.2275964282e-02, 1.7455558105e-02,-2.6188181509e-03,
2.9054318745e-02,-9.7324325774e-04, 2.0928200446e-02, 1.2584041201e-02,
6.1730938556e-03, 2.2229998741e-02,-8.7767339485e-05, 1.8647664418e-02,
4.9179283848e-03, 6.6510513229e-03, 1.2013419762e-02,-2.2697803009e-03,
1.1750018328e-02,-2.2349582872e-03, 3.8309093084e-03, 2.7164327070e-03,
-4.3627462751e-03, 4.8244158496e-03,-6.4737184289e-03, 1.0999907749e-03,
-3.0962146156e-03,-4.6945227130e-03, 3.2877105453e-04,-7.1744053356e-03,
-9.4749957243e-05,-5.0056447374e-03,-3.2602876090e-03,-1.3772341565e-03,
-5.3261208370e-03, 8.2609879762e-05,-4.1962479555e-03,-1.1049416742e-03,
-1.2578132143e-03,-2.6219466447e-03, 7.3475237168e-04,-2.3772351253e-03,
6.2919746234e-04,-5.5581740182e-04,-4.5188354450e-04, 1.1039838850e-03,
-8.2841163975e-04, 1.3889089625e-03,-5.7395024970e-05, 6.3644034234e-04,
9.8119119480e-04,-1.7346439781e-05, 1.3147433754e-03, 6.3742453554e-05,
8.4615386905e-04, 5.8191603551e-04, 2.0511283957e-04, 8.7995185699e-04,
-3.0560801452e-05, 6.6303904496e-04, 1.7519563571e-04, 1.6627304228e-04,
4.4785330284e-04,-1.8397163024e-04, 4.2794269223e-04
const iircoeff_t PhaseFilterCf=
{ 3.106389554e+03,
{ 3.8373714492, 5.6747428984, 3.8373714492 },
{ 1.8770305106,-0.8819717729 }
};
#define SyncFilterLen 34
static float Sync[SyncFilterLen]={
const float Sync[SyncFilterLen]={
-14,-14,-14,-14,
20,20,-14,-14,20,20,-14,-14,20,20,-14,-14,
20,20,-14,-14,20,20,-14,-14,20,20,-14,-14,
@@ -111,404 +36,98 @@ static float Sync[SyncFilterLen]={
};
#define RSFilterLen 1591
static float rsfilter[RSFilterLen] = {
0.0,3.7950625746e-07, 7.6001859743e-07, 1.1415897914e-06,
1.5242727912e-06, 1.9081206871e-06, 2.2931866654e-06, 2.6795239658e-06,
3.0671858386e-06, 3.4562255014e-06, 3.8466960961e-06, 4.2386506453e-06,
4.6321420085e-06, 5.0272228381e-06, 5.4239455359e-06, 5.8223622081e-06,
6.2225246219e-06, 6.6244841603e-06, 7.0282917779e-06, 7.4339979562e-06,
7.8416526592e-06, 8.2513052879e-06, 8.6630046363e-06, 9.0767988460e-06,
9.4927353615e-06, 9.9108608857e-06, 1.0331221334e-05, 1.0753861792e-05,
1.1178826466e-05, 1.1606158644e-05, 1.2035900647e-05, 1.2468093785e-05,
1.2902778316e-05, 1.3339993396e-05, 1.3779777040e-05, 1.4222166074e-05,
1.4667196094e-05, 1.5114901421e-05, 1.5565315058e-05, 1.6018468647e-05,
1.6474392423e-05, 1.6933115176e-05, 1.7394664207e-05, 1.7859065281e-05,
1.8326342592e-05, 1.8796518718e-05, 1.9269614578e-05, 1.9745649395e-05,
2.0224640651e-05, 2.0706604052e-05, 2.1191553481e-05, 2.1679500965e-05,
2.2170456632e-05, 2.2664428676e-05, 2.3161423314e-05, 2.3661444750e-05,
2.4164495141e-05, 2.4670574556e-05, 2.5179680941e-05, 2.5691810082e-05,
2.6206955574e-05, 2.6725108782e-05, 2.7246258806e-05, 2.7770392453e-05,
2.8297494197e-05, 2.8827546152e-05, 2.9360528038e-05, 2.9896417149e-05,
3.0435188325e-05, 3.0976813919e-05, 3.1521263770e-05, 3.2068505173e-05,
3.2618502852e-05, 3.3171218934e-05, 3.3726612919e-05, 3.4284641659e-05,
3.4845259328e-05, 3.5408417403e-05, 3.5974064636e-05, 3.6542147034e-05,
3.7112607836e-05, 3.7685387493e-05, 3.8260423646e-05, 3.8837651110e-05,
3.9417001850e-05, 3.9998404969e-05, 4.0581786687e-05, 4.1167070327e-05,
4.1754176299e-05, 4.2343022087e-05, 4.2933522235e-05, 4.3525588332e-05,
4.4119129007e-05, 4.4714049910e-05, 4.5310253710e-05, 4.5907640081e-05,
4.6506105698e-05, 4.7105544228e-05, 4.7705846324e-05, 4.8306899622e-05,
4.8908588735e-05, 4.9510795252e-05, 5.0113397738e-05, 5.0716271725e-05,
5.1319289724e-05, 5.1922321217e-05, 5.2525232664e-05, 5.3127887502e-05,
5.3730146156e-05, 5.4331866037e-05, 5.4932901556e-05, 5.5533104125e-05,
5.6132322167e-05, 5.6730401131e-05, 5.7327183494e-05, 5.7922508779e-05,
5.8516213569e-05, 5.9108131514e-05, 5.9698093353e-05, 6.0285926926e-05,
6.0871457195e-05, 6.1454506256e-05, 6.2034893367e-05, 6.2612434961e-05,
6.3186944673e-05, 6.3758233357e-05, 6.4326109118e-05, 6.4890377328e-05,
6.5450840659e-05, 6.6007299107e-05, 6.6559550021e-05, 6.7107388130e-05,
6.7650605579e-05, 6.8188991955e-05, 6.8722334323e-05, 6.9250417260e-05,
6.9773022885e-05, 7.0289930903e-05, 7.0800918635e-05, 7.1305761060e-05,
7.1804230854e-05, 7.2296098428e-05, 7.2781131971e-05, 7.3259097496e-05,
7.3729758875e-05, 7.4192877893e-05, 7.4648214288e-05, 7.5095525799e-05,
7.5534568215e-05, 7.5965095424e-05, 7.6386859459e-05, 7.6799610555e-05,
7.7203097196e-05, 7.7597066172e-05, 7.7981262629e-05, 7.8355430128e-05,
7.8719310698e-05, 7.9072644894e-05, 7.9415171857e-05, 7.9746629367e-05,
8.0066753913e-05, 8.0375280743e-05, 8.0671943934e-05, 8.0956476450e-05,
8.1228610209e-05, 8.1488076144e-05, 8.1734604273e-05, 8.1967923761e-05,
8.2187762990e-05, 8.2393849628e-05, 8.2585910696e-05, 8.2763672636e-05,
8.2926861388e-05, 8.3075202457e-05, 8.3208420983e-05, 8.3326241823e-05,
8.3428389614e-05, 8.3514588856e-05, 8.3584563985e-05, 8.3638039448e-05,
8.3674739779e-05, 8.3694389682e-05, 8.3696714102e-05, 8.3681438312e-05,
8.3648287984e-05, 8.3596989278e-05, 8.3527268917e-05, 8.3438854270e-05,
8.3331473436e-05, 8.3204855326e-05, 8.3058729744e-05, 8.2892827475e-05,
8.2706880366e-05, 8.2500621413e-05, 8.2273784846e-05, 8.2026106214e-05,
8.1757322474e-05, 8.1467172075e-05, 8.1155395046e-05, 8.0821733085e-05,
8.0465929646e-05, 8.0087730028e-05, 7.9686881464e-05, 7.9263133209e-05,
7.8816236631e-05, 7.8345945299e-05, 7.7852015075e-05, 7.7334204203e-05,
7.6792273401e-05, 7.6225985948e-05, 7.5635107781e-05, 7.5019407579e-05,
7.4378656861e-05, 7.3712630073e-05, 7.3021104680e-05, 7.2303861260e-05,
7.1560683593e-05, 7.0791358754e-05, 6.9995677204e-05, 6.9173432882e-05,
6.8324423296e-05, 6.7448449618e-05, 6.6545316771e-05, 6.5614833521e-05,
6.4656812572e-05, 6.3671070655e-05, 6.2657428617e-05, 6.1615711517e-05,
6.0545748710e-05, 5.9447373943e-05, 5.8320425444e-05, 5.7164746011e-05,
5.5980183100e-05, 5.4766588919e-05, 5.3523820512e-05, 5.2251739851e-05,
5.0950213924e-05, 4.9619114820e-05, 4.8258319820e-05, 4.6867711482e-05,
4.5447177727e-05, 4.3996611928e-05, 4.2515912992e-05, 4.1004985446e-05,
3.9463739523e-05, 3.7892091243e-05, 3.6289962498e-05, 3.4657281135e-05,
3.2993981037e-05, 3.1300002202e-05, 2.9575290828e-05, 2.7819799389e-05,
2.6033486716e-05, 2.4216318075e-05, 2.2368265244e-05, 2.0489306587e-05,
1.8579427136e-05, 1.6638618659e-05, 1.4666879741e-05, 1.2664215849e-05,
1.0630639412e-05, 8.5661698866e-06, 6.4708338309e-06, 4.3446649711e-06,
2.1877042712e-06,-4.5534510243e-20,-2.2183922032e-06,-4.4674092633e-06,
-6.7469806051e-06,-9.0570280913e-06,-1.1397465960e-05,-1.3768200765e-05,
-1.6169131315e-05,-1.8600148618e-05,-2.1061135821e-05,-2.3551968159e-05,
-2.6072512896e-05,-2.8622629274e-05,-3.1202168460e-05,-3.3810973499e-05,
-3.6448879261e-05,-3.9115712396e-05,-4.1811291283e-05,-4.4535425992e-05,
-4.7287918235e-05,-5.0068561326e-05,-5.2877140140e-05,-5.5713431075e-05,
-5.8577202010e-05,-6.1468212275e-05,-6.4386212612e-05,-6.7330945143e-05,
-7.0302143339e-05,-7.3299531988e-05,-7.6322827171e-05,-7.9371736228e-05,
-8.2445957740e-05,-8.5545181502e-05,-8.8669088501e-05,-9.1817350897e-05,
-9.4989632001e-05,-9.8185586264e-05,-1.0140485926e-04,-1.0464708766e-04,
-1.0791189924e-04,-1.1119891287e-04,-1.1450773848e-04,-1.1783797709e-04,
-1.2118922076e-04,-1.2456105265e-04,-1.2795304695e-04,-1.3136476894e-04,
-1.3479577493e-04,-1.3824561234e-04,-1.4171381965e-04,-1.4519992640e-04,
-1.4870345327e-04,-1.5222391200e-04,-1.5576080549e-04,-1.5931362774e-04,
-1.6288186392e-04,-1.6646499038e-04,-1.7006247463e-04,-1.7367377543e-04,
-1.7729834276e-04,-1.8093561787e-04,-1.8458503332e-04,-1.8824601297e-04,
-1.9191797206e-04,-1.9560031722e-04,-1.9929244651e-04,-2.0299374946e-04,
-2.0670360709e-04,-2.1042139201e-04,-2.1414646838e-04,-2.1787819205e-04,
-2.2161591052e-04,-2.2535896306e-04,-2.2910668071e-04,-2.3285838636e-04,
-2.3661339482e-04,-2.4037101285e-04,-2.4413053922e-04,-2.4789126481e-04,
-2.5165247261e-04,-2.5541343785e-04,-2.5917342803e-04,-2.6293170300e-04,
-2.6668751502e-04,-2.7044010888e-04,-2.7418872190e-04,-2.7793258406e-04,
-2.8167091807e-04,-2.8540293945e-04,-2.8912785661e-04,-2.9284487093e-04,
-2.9655317686e-04,-3.0025196200e-04,-3.0394040718e-04,-3.0761768658e-04,
-3.1128296779e-04,-3.1493541196e-04,-3.1857417383e-04,-3.2219840188e-04,
-3.2580723839e-04,-3.2939981961e-04,-3.3297527578e-04,-3.3653273132e-04,
-3.4007130486e-04,-3.4359010942e-04,-3.4708825249e-04,-3.5056483612e-04,
-3.5401895709e-04,-3.5744970699e-04,-3.6085617234e-04,-3.6423743474e-04,
-3.6759257095e-04,-3.7092065306e-04,-3.7422074856e-04,-3.7749192054e-04,
-3.8073322773e-04,-3.8394372473e-04,-3.8712246205e-04,-3.9026848631e-04,
-3.9338084034e-04,-3.9645856333e-04,-3.9950069096e-04,-4.0250625556e-04,
-4.0547428621e-04,-4.0840380894e-04,-4.1129384681e-04,-4.1414342011e-04,
-4.1695154648e-04,-4.1971724105e-04,-4.2243951663e-04,-4.2511738380e-04,
-4.2774985111e-04,-4.3033592523e-04,-4.3287461106e-04,-4.3536491195e-04,
-4.3780582981e-04,-4.4019636528e-04,-4.4253551789e-04,-4.4482228624e-04,
-4.4705566812e-04,-4.4923466071e-04,-4.5135826073e-04,-4.5342546458e-04,
-4.5543526856e-04,-4.5738666898e-04,-4.5927866237e-04,-4.6111024563e-04,
-4.6288041617e-04,-4.6458817216e-04,-4.6623251259e-04,-4.6781243755e-04,
-4.6932694833e-04,-4.7077504763e-04,-4.7215573969e-04,-4.7346803053e-04,
-4.7471092806e-04,-4.7588344231e-04,-4.7698458557e-04,-4.7801337256e-04,
-4.7896882064e-04,-4.7984994999e-04,-4.8065578373e-04,-4.8138534817e-04,
-4.8203767295e-04,-4.8261179121e-04,-4.8310673981e-04,-4.8352155947e-04,
-4.8385529498e-04,-4.8410699535e-04,-4.8427571402e-04,-4.8436050902e-04,
-4.8436044316e-04,-4.8427458423e-04,-4.8410200512e-04,-4.8384178408e-04,
-4.8349300485e-04,-4.8305475684e-04,-4.8252613535e-04,-4.8190624170e-04,
-4.8119418347e-04,-4.8038907462e-04,-4.7949003570e-04,-4.7849619404e-04,
-4.7740668391e-04,-4.7622064671e-04,-4.7493723115e-04,-4.7355559341e-04,
-4.7207489737e-04,-4.7049431471e-04,-4.6881302515e-04,-4.6703021660e-04,
-4.6514508537e-04,-4.6315683628e-04,-4.6106468290e-04,-4.5886784769e-04,
-4.5656556219e-04,-4.5415706718e-04,-4.5164161286e-04,-4.4901845903e-04,
-4.4628687524e-04,-4.4344614098e-04,-4.4049554585e-04,-4.3743438969e-04,
-4.3426198281e-04,-4.3097764611e-04,-4.2758071126e-04,-4.2407052086e-04,
-4.2044642861e-04,-4.1670779947e-04,-4.1285400982e-04,-4.0888444762e-04,
-4.0479851256e-04,-4.0059561624e-04,-3.9627518229e-04,-3.9183664658e-04,
-3.8727945730e-04,-3.8260307518e-04,-3.7780697360e-04,-3.7289063876e-04,
-3.6785356980e-04,-3.6269527899e-04,-3.5741529184e-04,-3.5201314724e-04,
-3.4648839763e-04,-3.4084060911e-04,-3.3506936162e-04,-3.2917424901e-04,
-3.2315487925e-04,-3.1701087449e-04,-3.1074187125e-04,-3.0434752054e-04,
-2.9782748793e-04,-2.9118145376e-04,-2.8440911321e-04,-2.7751017643e-04,
-2.7048436867e-04,-2.6333143040e-04,-2.5605111740e-04,-2.4864320091e-04,
-2.4110746772e-04,-2.3344372028e-04,-2.2565177682e-04,-2.1773147142e-04,
-2.0968265418e-04,-2.0150519126e-04,-1.9319896499e-04,-1.8476387399e-04,
-1.7619983325e-04,-1.6750677422e-04,-1.5868464489e-04,-1.4973340992e-04,
-1.4065305066e-04,-1.3144356528e-04,-1.2210496885e-04,-1.1263729339e-04,
-1.0304058795e-04,-9.3314918711e-05,-8.3460369032e-05,-7.3477039518e-05,
-6.3365048091e-05,-5.3124530052e-05,-4.2755638139e-05,-3.2258542586e-05,
-2.1633431179e-05,-1.0880509304e-05, 1.1310184802e-19, 1.1007855993e-05,
2.2142800194e-05, 3.3404556336e-05, 4.4792830329e-05, 5.6307310222e-05,
6.7947666171e-05, 7.9713550410e-05, 9.1604597220e-05, 1.0362042291e-04,
1.1576062577e-04, 1.2802478611e-04, 1.4041246616e-04, 1.5292321014e-04,
1.6555654419e-04, 1.7831197638e-04, 1.9118899672e-04, 2.0418707714e-04,
2.1730567148e-04, 2.3054421553e-04, 2.4390212700e-04, 2.5737880555e-04,
2.7097363280e-04, 2.8468597233e-04, 2.9851516972e-04, 3.1246055255e-04,
3.2652143044e-04, 3.4069709507e-04, 3.5498682020e-04, 3.6938986172e-04,
3.8390545768e-04, 3.9853282832e-04, 4.1327117613e-04, 4.2811968586e-04,
4.4307752461e-04, 4.5814384185e-04, 4.7331776948e-04, 4.8859842189e-04,
5.0398489602e-04, 5.1947627143e-04, 5.3507161034e-04, 5.5076995771e-04,
5.6657034133e-04, 5.8247177185e-04, 5.9847324292e-04, 6.1457373120e-04,
6.3077219650e-04, 6.4706758183e-04, 6.6345881349e-04, 6.7994480118e-04,
6.9652443810e-04, 7.1319660100e-04, 7.2996015034e-04, 7.4681393034e-04,
7.6375676912e-04, 7.8078747881e-04, 7.9790485563e-04, 8.1510768002e-04,
8.3239471677e-04, 8.4976471514e-04, 8.6721640894e-04, 8.8474851671e-04,
9.0235974182e-04, 9.2004877259e-04, 9.3781428245e-04, 9.5565493007e-04,
9.7356935947e-04, 9.9155620020e-04, 1.0096140675e-03, 1.0277415622e-03,
1.0459372715e-03, 1.0641997684e-03, 1.0825276121e-03, 1.1009193484e-03,
1.1193735096e-03, 1.1378886147e-03, 1.1564631697e-03, 1.1750956677e-03,
1.1937845887e-03, 1.2125284006e-03, 1.2313255585e-03, 1.2501745054e-03,
1.2690736722e-03, 1.2880214780e-03, 1.3070163301e-03, 1.3260566244e-03,
1.3451407454e-03, 1.3642670663e-03, 1.3834339497e-03, 1.4026397472e-03,
1.4218828000e-03, 1.4411614388e-03, 1.4604739841e-03, 1.4798187468e-03,
1.4991940276e-03, 1.5185981180e-03, 1.5380292999e-03, 1.5574858464e-03,
1.5769660214e-03, 1.5964680802e-03, 1.6159902696e-03, 1.6355308284e-03,
1.6550879869e-03, 1.6746599679e-03, 1.6942449865e-03, 1.7138412504e-03,
1.7334469603e-03, 1.7530603099e-03, 1.7726794861e-03, 1.7923026695e-03,
1.8119280344e-03, 1.8315537491e-03, 1.8511779762e-03, 1.8707988727e-03,
1.8904145905e-03, 1.9100232762e-03, 1.9296230717e-03, 1.9492121146e-03,
1.9687885377e-03, 1.9883504700e-03, 2.0078960369e-03, 2.0274233597e-03,
2.0469305569e-03, 2.0664157434e-03, 2.0858770318e-03, 2.1053125316e-03,
2.1247203504e-03, 2.1440985934e-03, 2.1634453643e-03, 2.1827587648e-03,
2.2020368956e-03, 2.2212778563e-03, 2.2404797456e-03, 2.2596406616e-03,
2.2787587024e-03, 2.2978319656e-03, 2.3168585495e-03, 2.3358365525e-03,
2.3547640739e-03, 2.3736392140e-03, 2.3924600743e-03, 2.4112247579e-03,
2.4299313695e-03, 2.4485780161e-03, 2.4671628067e-03, 2.4856838531e-03,
2.5041392697e-03, 2.5225271742e-03, 2.5408456874e-03, 2.5590929338e-03,
2.5772670418e-03, 2.5953661439e-03, 2.6133883768e-03, 2.6313318822e-03,
2.6491948062e-03, 2.6669753004e-03, 2.6846715218e-03, 2.7022816329e-03,
2.7198038022e-03, 2.7372362044e-03, 2.7545770206e-03, 2.7718244386e-03,
2.7889766531e-03, 2.8060318661e-03, 2.8229882870e-03, 2.8398441329e-03,
2.8565976289e-03, 2.8732470082e-03, 2.8897905125e-03, 2.9062263924e-03,
2.9225529072e-03, 2.9387683255e-03, 2.9548709253e-03, 2.9708589945e-03,
2.9867308307e-03, 3.0024847417e-03, 3.0181190460e-03, 3.0336320724e-03,
3.0490221608e-03, 3.0642876623e-03, 3.0794269392e-03, 3.0944383655e-03,
3.1093203271e-03, 3.1240712219e-03, 3.1386894602e-03, 3.1531734647e-03,
3.1675216709e-03, 3.1817325275e-03, 3.1958044961e-03, 3.2097360520e-03,
3.2235256839e-03, 3.2371718947e-03, 3.2506732010e-03, 3.2640281341e-03,
3.2772352396e-03, 3.2902930778e-03, 3.3032002240e-03, 3.3159552688e-03,
3.3285568179e-03, 3.3410034926e-03, 3.3532939302e-03, 3.3654267836e-03,
3.3774007222e-03, 3.3892144313e-03, 3.4008666133e-03, 3.4123559869e-03,
3.4236812877e-03, 3.4348412688e-03, 3.4458347001e-03, 3.4566603693e-03,
3.4673170816e-03, 3.4778036599e-03, 3.4881189454e-03, 3.4982617970e-03,
3.5082310925e-03, 3.5180257276e-03, 3.5276446170e-03, 3.5370866942e-03,
3.5463509114e-03, 3.5554362403e-03, 3.5643416716e-03, 3.5730662154e-03,
3.5816089016e-03, 3.5899687796e-03, 3.5981449186e-03, 3.6061364080e-03,
3.6139423572e-03, 3.6215618958e-03, 3.6289941738e-03, 3.6362383619e-03,
3.6432936510e-03, 3.6501592532e-03, 3.6568344011e-03, 3.6633183486e-03,
3.6696103704e-03, 3.6757097626e-03, 3.6816158424e-03, 3.6873279485e-03,
3.6928454411e-03, 3.6981677021e-03, 3.7032941348e-03, 3.7082241645e-03,
3.7129572383e-03, 3.7174928251e-03, 3.7218304161e-03, 3.7259695243e-03,
3.7299096851e-03, 3.7336504559e-03, 3.7371914165e-03, 3.7405321691e-03,
3.7436723383e-03, 3.7466115711e-03, 3.7493495372e-03, 3.7518859286e-03,
3.7542204602e-03, 3.7563528693e-03, 3.7582829162e-03, 3.7600103837e-03,
3.7615350774e-03, 3.7628568257e-03, 3.7639754800e-03, 3.7648909144e-03,
3.7656030257e-03, 3.7661117340e-03, 3.7664169818e-03, 3.7665187349e-03,
3.7664169818e-03, 3.7661117340e-03, 3.7656030257e-03, 3.7648909144e-03,
3.7639754800e-03, 3.7628568257e-03, 3.7615350774e-03, 3.7600103837e-03,
3.7582829162e-03, 3.7563528693e-03, 3.7542204602e-03, 3.7518859286e-03,
3.7493495372e-03, 3.7466115711e-03, 3.7436723383e-03, 3.7405321691e-03,
3.7371914165e-03, 3.7336504559e-03, 3.7299096851e-03, 3.7259695243e-03,
3.7218304161e-03, 3.7174928251e-03, 3.7129572383e-03, 3.7082241645e-03,
3.7032941348e-03, 3.6981677021e-03, 3.6928454411e-03, 3.6873279485e-03,
3.6816158424e-03, 3.6757097626e-03, 3.6696103704e-03, 3.6633183486e-03,
3.6568344011e-03, 3.6501592532e-03, 3.6432936510e-03, 3.6362383619e-03,
3.6289941738e-03, 3.6215618958e-03, 3.6139423572e-03, 3.6061364080e-03,
3.5981449186e-03, 3.5899687796e-03, 3.5816089016e-03, 3.5730662154e-03,
3.5643416716e-03, 3.5554362403e-03, 3.5463509114e-03, 3.5370866942e-03,
3.5276446170e-03, 3.5180257276e-03, 3.5082310925e-03, 3.4982617970e-03,
3.4881189454e-03, 3.4778036599e-03, 3.4673170816e-03, 3.4566603693e-03,
3.4458347001e-03, 3.4348412688e-03, 3.4236812877e-03, 3.4123559869e-03,
3.4008666133e-03, 3.3892144313e-03, 3.3774007222e-03, 3.3654267836e-03,
3.3532939302e-03, 3.3410034926e-03, 3.3285568179e-03, 3.3159552688e-03,
3.3032002240e-03, 3.2902930778e-03, 3.2772352396e-03, 3.2640281341e-03,
3.2506732010e-03, 3.2371718947e-03, 3.2235256839e-03, 3.2097360520e-03,
3.1958044961e-03, 3.1817325275e-03, 3.1675216709e-03, 3.1531734647e-03,
3.1386894602e-03, 3.1240712219e-03, 3.1093203271e-03, 3.0944383655e-03,
3.0794269392e-03, 3.0642876623e-03, 3.0490221608e-03, 3.0336320724e-03,
3.0181190460e-03, 3.0024847417e-03, 2.9867308307e-03, 2.9708589945e-03,
2.9548709253e-03, 2.9387683255e-03, 2.9225529072e-03, 2.9062263924e-03,
2.8897905125e-03, 2.8732470082e-03, 2.8565976289e-03, 2.8398441329e-03,
2.8229882870e-03, 2.8060318661e-03, 2.7889766531e-03, 2.7718244386e-03,
2.7545770206e-03, 2.7372362044e-03, 2.7198038022e-03, 2.7022816329e-03,
2.6846715218e-03, 2.6669753004e-03, 2.6491948062e-03, 2.6313318822e-03,
2.6133883768e-03, 2.5953661439e-03, 2.5772670418e-03, 2.5590929338e-03,
2.5408456874e-03, 2.5225271742e-03, 2.5041392697e-03, 2.4856838531e-03,
2.4671628067e-03, 2.4485780161e-03, 2.4299313695e-03, 2.4112247579e-03,
2.3924600743e-03, 2.3736392140e-03, 2.3547640739e-03, 2.3358365525e-03,
2.3168585495e-03, 2.2978319656e-03, 2.2787587024e-03, 2.2596406616e-03,
2.2404797456e-03, 2.2212778563e-03, 2.2020368956e-03, 2.1827587648e-03,
2.1634453643e-03, 2.1440985934e-03, 2.1247203504e-03, 2.1053125316e-03,
2.0858770318e-03, 2.0664157434e-03, 2.0469305569e-03, 2.0274233597e-03,
2.0078960369e-03, 1.9883504700e-03, 1.9687885377e-03, 1.9492121146e-03,
1.9296230717e-03, 1.9100232762e-03, 1.8904145905e-03, 1.8707988727e-03,
1.8511779762e-03, 1.8315537491e-03, 1.8119280344e-03, 1.7923026695e-03,
1.7726794861e-03, 1.7530603099e-03, 1.7334469603e-03, 1.7138412504e-03,
1.6942449865e-03, 1.6746599679e-03, 1.6550879869e-03, 1.6355308284e-03,
1.6159902696e-03, 1.5964680802e-03, 1.5769660214e-03, 1.5574858464e-03,
1.5380292999e-03, 1.5185981180e-03, 1.4991940276e-03, 1.4798187468e-03,
1.4604739841e-03, 1.4411614388e-03, 1.4218828000e-03, 1.4026397472e-03,
1.3834339497e-03, 1.3642670663e-03, 1.3451407454e-03, 1.3260566244e-03,
1.3070163301e-03, 1.2880214780e-03, 1.2690736722e-03, 1.2501745054e-03,
1.2313255585e-03, 1.2125284006e-03, 1.1937845887e-03, 1.1750956677e-03,
1.1564631697e-03, 1.1378886147e-03, 1.1193735096e-03, 1.1009193484e-03,
1.0825276121e-03, 1.0641997684e-03, 1.0459372715e-03, 1.0277415622e-03,
1.0096140675e-03, 9.9155620020e-04, 9.7356935947e-04, 9.5565493007e-04,
9.3781428245e-04, 9.2004877259e-04, 9.0235974182e-04, 8.8474851671e-04,
8.6721640894e-04, 8.4976471514e-04, 8.3239471677e-04, 8.1510768002e-04,
7.9790485563e-04, 7.8078747881e-04, 7.6375676912e-04, 7.4681393034e-04,
7.2996015034e-04, 7.1319660100e-04, 6.9652443810e-04, 6.7994480118e-04,
6.6345881349e-04, 6.4706758183e-04, 6.3077219650e-04, 6.1457373120e-04,
5.9847324292e-04, 5.8247177185e-04, 5.6657034133e-04, 5.5076995771e-04,
5.3507161034e-04, 5.1947627143e-04, 5.0398489602e-04, 4.8859842189e-04,
4.7331776948e-04, 4.5814384185e-04, 4.4307752461e-04, 4.2811968586e-04,
4.1327117613e-04, 3.9853282832e-04, 3.8390545768e-04, 3.6938986172e-04,
3.5498682020e-04, 3.4069709507e-04, 3.2652143044e-04, 3.1246055255e-04,
2.9851516972e-04, 2.8468597233e-04, 2.7097363280e-04, 2.5737880555e-04,
2.4390212700e-04, 2.3054421553e-04, 2.1730567148e-04, 2.0418707714e-04,
1.9118899672e-04, 1.7831197638e-04, 1.6555654419e-04, 1.5292321014e-04,
1.4041246616e-04, 1.2802478611e-04, 1.1576062577e-04, 1.0362042291e-04,
9.1604597220e-05, 7.9713550410e-05, 6.7947666171e-05, 5.6307310222e-05,
4.4792830329e-05, 3.3404556336e-05, 2.2142800194e-05, 1.1007855993e-05,
1.1310184802e-19,-1.0880509304e-05,-2.1633431179e-05,-3.2258542586e-05,
-4.2755638139e-05,-5.3124530052e-05,-6.3365048091e-05,-7.3477039518e-05,
-8.3460369032e-05,-9.3314918711e-05,-1.0304058795e-04,-1.1263729339e-04,
-1.2210496885e-04,-1.3144356528e-04,-1.4065305066e-04,-1.4973340992e-04,
-1.5868464489e-04,-1.6750677422e-04,-1.7619983325e-04,-1.8476387399e-04,
-1.9319896499e-04,-2.0150519126e-04,-2.0968265418e-04,-2.1773147142e-04,
-2.2565177682e-04,-2.3344372028e-04,-2.4110746772e-04,-2.4864320091e-04,
-2.5605111740e-04,-2.6333143040e-04,-2.7048436867e-04,-2.7751017643e-04,
-2.8440911321e-04,-2.9118145376e-04,-2.9782748793e-04,-3.0434752054e-04,
-3.1074187125e-04,-3.1701087449e-04,-3.2315487925e-04,-3.2917424901e-04,
-3.3506936162e-04,-3.4084060911e-04,-3.4648839763e-04,-3.5201314724e-04,
-3.5741529184e-04,-3.6269527899e-04,-3.6785356980e-04,-3.7289063876e-04,
-3.7780697360e-04,-3.8260307518e-04,-3.8727945730e-04,-3.9183664658e-04,
-3.9627518229e-04,-4.0059561624e-04,-4.0479851256e-04,-4.0888444762e-04,
-4.1285400982e-04,-4.1670779947e-04,-4.2044642861e-04,-4.2407052086e-04,
-4.2758071126e-04,-4.3097764611e-04,-4.3426198281e-04,-4.3743438969e-04,
-4.4049554585e-04,-4.4344614098e-04,-4.4628687524e-04,-4.4901845903e-04,
-4.5164161286e-04,-4.5415706718e-04,-4.5656556219e-04,-4.5886784769e-04,
-4.6106468290e-04,-4.6315683628e-04,-4.6514508537e-04,-4.6703021660e-04,
-4.6881302515e-04,-4.7049431471e-04,-4.7207489737e-04,-4.7355559341e-04,
-4.7493723115e-04,-4.7622064671e-04,-4.7740668391e-04,-4.7849619404e-04,
-4.7949003570e-04,-4.8038907462e-04,-4.8119418347e-04,-4.8190624170e-04,
-4.8252613535e-04,-4.8305475684e-04,-4.8349300485e-04,-4.8384178408e-04,
-4.8410200512e-04,-4.8427458423e-04,-4.8436044316e-04,-4.8436050902e-04,
-4.8427571402e-04,-4.8410699535e-04,-4.8385529498e-04,-4.8352155947e-04,
-4.8310673981e-04,-4.8261179121e-04,-4.8203767295e-04,-4.8138534817e-04,
-4.8065578373e-04,-4.7984994999e-04,-4.7896882064e-04,-4.7801337256e-04,
-4.7698458557e-04,-4.7588344231e-04,-4.7471092806e-04,-4.7346803053e-04,
-4.7215573969e-04,-4.7077504763e-04,-4.6932694833e-04,-4.6781243755e-04,
-4.6623251259e-04,-4.6458817216e-04,-4.6288041617e-04,-4.6111024563e-04,
-4.5927866237e-04,-4.5738666898e-04,-4.5543526856e-04,-4.5342546458e-04,
-4.5135826073e-04,-4.4923466071e-04,-4.4705566812e-04,-4.4482228624e-04,
-4.4253551789e-04,-4.4019636528e-04,-4.3780582981e-04,-4.3536491195e-04,
-4.3287461106e-04,-4.3033592523e-04,-4.2774985111e-04,-4.2511738380e-04,
-4.2243951663e-04,-4.1971724105e-04,-4.1695154648e-04,-4.1414342011e-04,
-4.1129384681e-04,-4.0840380894e-04,-4.0547428621e-04,-4.0250625556e-04,
-3.9950069096e-04,-3.9645856333e-04,-3.9338084034e-04,-3.9026848631e-04,
-3.8712246205e-04,-3.8394372473e-04,-3.8073322773e-04,-3.7749192054e-04,
-3.7422074856e-04,-3.7092065306e-04,-3.6759257095e-04,-3.6423743474e-04,
-3.6085617234e-04,-3.5744970699e-04,-3.5401895709e-04,-3.5056483612e-04,
-3.4708825249e-04,-3.4359010942e-04,-3.4007130486e-04,-3.3653273132e-04,
-3.3297527578e-04,-3.2939981961e-04,-3.2580723839e-04,-3.2219840188e-04,
-3.1857417383e-04,-3.1493541196e-04,-3.1128296779e-04,-3.0761768658e-04,
-3.0394040718e-04,-3.0025196200e-04,-2.9655317686e-04,-2.9284487093e-04,
-2.8912785661e-04,-2.8540293945e-04,-2.8167091807e-04,-2.7793258406e-04,
-2.7418872190e-04,-2.7044010888e-04,-2.6668751502e-04,-2.6293170300e-04,
-2.5917342803e-04,-2.5541343785e-04,-2.5165247261e-04,-2.4789126481e-04,
-2.4413053922e-04,-2.4037101285e-04,-2.3661339482e-04,-2.3285838636e-04,
-2.2910668071e-04,-2.2535896306e-04,-2.2161591052e-04,-2.1787819205e-04,
-2.1414646838e-04,-2.1042139201e-04,-2.0670360709e-04,-2.0299374946e-04,
-1.9929244651e-04,-1.9560031722e-04,-1.9191797206e-04,-1.8824601297e-04,
-1.8458503332e-04,-1.8093561787e-04,-1.7729834276e-04,-1.7367377543e-04,
-1.7006247463e-04,-1.6646499038e-04,-1.6288186392e-04,-1.5931362774e-04,
-1.5576080549e-04,-1.5222391200e-04,-1.4870345327e-04,-1.4519992640e-04,
-1.4171381965e-04,-1.3824561234e-04,-1.3479577493e-04,-1.3136476894e-04,
-1.2795304695e-04,-1.2456105265e-04,-1.2118922076e-04,-1.1783797709e-04,
-1.1450773848e-04,-1.1119891287e-04,-1.0791189924e-04,-1.0464708766e-04,
-1.0140485926e-04,-9.8185586264e-05,-9.4989632001e-05,-9.1817350897e-05,
-8.8669088501e-05,-8.5545181502e-05,-8.2445957740e-05,-7.9371736228e-05,
-7.6322827171e-05,-7.3299531988e-05,-7.0302143339e-05,-6.7330945143e-05,
-6.4386212612e-05,-6.1468212275e-05,-5.8577202010e-05,-5.5713431075e-05,
-5.2877140140e-05,-5.0068561326e-05,-4.7287918235e-05,-4.4535425992e-05,
-4.1811291283e-05,-3.9115712396e-05,-3.6448879261e-05,-3.3810973499e-05,
-3.1202168460e-05,-2.8622629274e-05,-2.6072512896e-05,-2.3551968159e-05,
-2.1061135821e-05,-1.8600148618e-05,-1.6169131315e-05,-1.3768200765e-05,
-1.1397465960e-05,-9.0570280913e-06,-6.7469806051e-06,-4.4674092633e-06,
-2.2183922032e-06,-4.5534510243e-20, 2.1877042712e-06, 4.3446649711e-06,
6.4708338309e-06, 8.5661698866e-06, 1.0630639412e-05, 1.2664215849e-05,
1.4666879741e-05, 1.6638618659e-05, 1.8579427136e-05, 2.0489306587e-05,
2.2368265244e-05, 2.4216318075e-05, 2.6033486716e-05, 2.7819799389e-05,
2.9575290828e-05, 3.1300002202e-05, 3.2993981037e-05, 3.4657281135e-05,
3.6289962498e-05, 3.7892091243e-05, 3.9463739523e-05, 4.1004985446e-05,
4.2515912992e-05, 4.3996611928e-05, 4.5447177727e-05, 4.6867711482e-05,
4.8258319820e-05, 4.9619114820e-05, 5.0950213924e-05, 5.2251739851e-05,
5.3523820512e-05, 5.4766588919e-05, 5.5980183100e-05, 5.7164746011e-05,
5.8320425444e-05, 5.9447373943e-05, 6.0545748710e-05, 6.1615711517e-05,
6.2657428617e-05, 6.3671070655e-05, 6.4656812572e-05, 6.5614833521e-05,
6.6545316771e-05, 6.7448449618e-05, 6.8324423296e-05, 6.9173432882e-05,
6.9995677204e-05, 7.0791358754e-05, 7.1560683593e-05, 7.2303861260e-05,
7.3021104680e-05, 7.3712630073e-05, 7.4378656861e-05, 7.5019407579e-05,
7.5635107781e-05, 7.6225985948e-05, 7.6792273401e-05, 7.7334204203e-05,
7.7852015075e-05, 7.8345945299e-05, 7.8816236631e-05, 7.9263133209e-05,
7.9686881464e-05, 8.0087730028e-05, 8.0465929646e-05, 8.0821733085e-05,
8.1155395046e-05, 8.1467172075e-05, 8.1757322474e-05, 8.2026106214e-05,
8.2273784846e-05, 8.2500621413e-05, 8.2706880366e-05, 8.2892827475e-05,
8.3058729744e-05, 8.3204855326e-05, 8.3331473436e-05, 8.3438854270e-05,
8.3527268917e-05, 8.3596989278e-05, 8.3648287984e-05, 8.3681438312e-05,
8.3696714102e-05, 8.3694389682e-05, 8.3674739779e-05, 8.3638039448e-05,
8.3584563985e-05, 8.3514588856e-05, 8.3428389614e-05, 8.3326241823e-05,
8.3208420983e-05, 8.3075202457e-05, 8.2926861388e-05, 8.2763672636e-05,
8.2585910696e-05, 8.2393849628e-05, 8.2187762990e-05, 8.1967923761e-05,
8.1734604273e-05, 8.1488076144e-05, 8.1228610209e-05, 8.0956476450e-05,
8.0671943934e-05, 8.0375280743e-05, 8.0066753913e-05, 7.9746629367e-05,
7.9415171857e-05, 7.9072644894e-05, 7.8719310698e-05, 7.8355430128e-05,
7.7981262629e-05, 7.7597066172e-05, 7.7203097196e-05, 7.6799610555e-05,
7.6386859459e-05, 7.5965095424e-05, 7.5534568215e-05, 7.5095525799e-05,
7.4648214288e-05, 7.4192877893e-05, 7.3729758875e-05, 7.3259097496e-05,
7.2781131971e-05, 7.2296098428e-05, 7.1804230854e-05, 7.1305761060e-05,
7.0800918635e-05, 7.0289930903e-05, 6.9773022885e-05, 6.9250417260e-05,
6.8722334323e-05, 6.8188991955e-05, 6.7650605579e-05, 6.7107388130e-05,
6.6559550021e-05, 6.6007299107e-05, 6.5450840659e-05, 6.4890377328e-05,
6.4326109118e-05, 6.3758233357e-05, 6.3186944673e-05, 6.2612434961e-05,
6.2034893367e-05, 6.1454506256e-05, 6.0871457195e-05, 6.0285926926e-05,
5.9698093353e-05, 5.9108131514e-05, 5.8516213569e-05, 5.7922508779e-05,
5.7327183494e-05, 5.6730401131e-05, 5.6132322167e-05, 5.5533104125e-05,
5.4932901556e-05, 5.4331866037e-05, 5.3730146156e-05, 5.3127887502e-05,
5.2525232664e-05, 5.1922321217e-05, 5.1319289724e-05, 5.0716271725e-05,
5.0113397738e-05, 4.9510795252e-05, 4.8908588735e-05, 4.8306899622e-05,
4.7705846324e-05, 4.7105544228e-05, 4.6506105698e-05, 4.5907640081e-05,
4.5310253710e-05, 4.4714049910e-05, 4.4119129007e-05, 4.3525588332e-05,
4.2933522235e-05, 4.2343022087e-05, 4.1754176299e-05, 4.1167070327e-05,
4.0581786687e-05, 3.9998404969e-05, 3.9417001850e-05, 3.8837651110e-05,
3.8260423646e-05, 3.7685387493e-05, 3.7112607836e-05, 3.6542147034e-05,
3.5974064636e-05, 3.5408417403e-05, 3.4845259328e-05, 3.4284641659e-05,
3.3726612919e-05, 3.3171218934e-05, 3.2618502852e-05, 3.2068505173e-05,
3.1521263770e-05, 3.0976813919e-05, 3.0435188325e-05, 2.9896417149e-05,
2.9360528038e-05, 2.8827546152e-05, 2.8297494197e-05, 2.7770392453e-05,
2.7246258806e-05, 2.6725108782e-05, 2.6206955574e-05, 2.5691810082e-05,
2.5179680941e-05, 2.4670574556e-05, 2.4164495141e-05, 2.3661444750e-05,
2.3161423314e-05, 2.2664428676e-05, 2.2170456632e-05, 2.1679500965e-05,
2.1191553481e-05, 2.0706604052e-05, 2.0224640651e-05, 1.9745649395e-05,
1.9269614578e-05, 1.8796518718e-05, 1.8326342592e-05, 1.7859065281e-05,
1.7394664207e-05, 1.6933115176e-05, 1.6474392423e-05, 1.6018468647e-05,
1.5565315058e-05, 1.5114901421e-05, 1.4667196094e-05, 1.4222166074e-05,
1.3779777040e-05, 1.3339993396e-05, 1.2902778316e-05, 1.2468093785e-05,
1.2035900647e-05, 1.1606158644e-05, 1.1178826466e-05, 1.0753861792e-05,
1.0331221334e-05, 9.9108608857e-06, 9.4927353615e-06, 9.0767988460e-06,
8.6630046363e-06, 8.2513052879e-06, 7.8416526592e-06, 7.4339979562e-06,
7.0282917779e-06, 6.6244841603e-06, 6.2225246219e-06, 5.8223622081e-06,
5.4239455359e-06, 5.0272228381e-06, 4.6321420085e-06, 4.2386506453e-06,
3.8466960961e-06, 3.4562255014e-06, 3.0671858386e-06, 2.6795239658e-06,
2.2931866654e-06, 1.9081206871e-06, 1.5242727912e-06, 1.1415897914e-06,
7.6001859743e-07, 3.7950625746e-07, 0.0
#define RSFilterLen 455
const float rsfilter[RSFilterLen] = {
-1.34249E-03, 1.80631E-03, 5.90669E-04, -9.41810E-05, -4.07485E-04,
-4.85881E-04, -4.25951E-04, -2.95340E-04, -1.40622E-04, 8.99745E-06,
1.36594E-04, 2.26986E-04, 2.85762E-04, 2.94814E-04, 2.77103E-04,
2.22380E-04, 1.42116E-04, 4.70086E-05, -5.48539E-05, -1.53666E-04,
-2.40057E-04, -3.05583E-04, -3.38473E-04, -3.31887E-04, -2.88025E-04,
-2.00097E-04, -7.80172E-05, 6.00740E-05, 2.04035E-04, 3.27028E-04,
4.09429E-04, 4.49753E-04, 4.42694E-04, 3.90744E-04, 2.91131E-04,
1.41069E-04, -5.08986E-05, -2.51913E-04, -4.13487E-04, -5.24003E-04,
-6.21400E-04, -6.34251E-04, -5.52247E-04, -4.21106E-04, -2.20212E-04,
1.86971E-05, 2.70810E-04, 5.06335E-04, 6.95368E-04, 8.12780E-04,
8.41294E-04, 7.74712E-04, 6.05319E-04, 3.65225E-04, 5.97767E-05,
-2.79576E-04, -5.85626E-04, -8.51135E-04, -1.04118E-03, -1.10967E-03,
-1.04530E-03, -8.59561E-04, -5.69134E-04, -1.96493E-04, 2.25062E-04,
6.43802E-04, 1.01013E-03, 1.27553E-03, 1.40162E-03, 1.37519E-03,
1.19236E-03, 8.58959E-04, 4.11732E-04, -1.08112E-04, -6.42232E-04,
-1.12853E-03, -1.50942E-03, -1.73155E-03, -1.76040E-03, -1.59382E-03,
-1.24024E-03, -7.13718E-04, -1.04045E-04, 5.64297E-04, 1.18859E-03,
1.70866E-03, 2.05610E-03, 2.18481E-03, 2.07002E-03, 1.71311E-03,
1.14477E-03, 4.21690E-04, -3.55578E-04, -1.25508E-03, -1.71599E-03,
-2.41463E-03, -2.69109E-03, -2.58592E-03, -2.22118E-03, -1.64517E-03,
-8.79739E-04, 2.69032E-05, 9.88114E-04, 1.89024E-03, 2.61089E-03,
3.06416E-03, 3.16887E-03, 2.92092E-03, 2.32859E-03, 1.45518E-03,
3.95690E-04, -7.36841E-04, -1.82279E-03, -2.74182E-03, -3.38572E-03,
-3.67163E-03, -3.56243E-03, -3.06396E-03, -2.20473E-03, -1.07168E-03,
2.11501E-04, 1.52499E-03, 2.71421E-03, 3.64024E-03, 4.20033E-03,
4.30452E-03, 3.92241E-03, 3.07838E-03, 1.86091E-03, 4.12894E-04,
-1.09233E-03, -2.49094E-03, -3.67748E-03, -4.59237E-03, -4.94819E-03,
-4.72195E-03, -4.04181E-03, -2.87213E-03, -1.35672E-03, 3.48096E-04,
2.05986E-03, 3.59116E-03, 4.77047E-03, 5.45966E-03, 5.57156E-03,
5.06959E-03, 4.01206E-03, 2.48309E-03, 6.38942E-04, -1.30369E-03,
-3.16818E-03, -4.74034E-03, -5.82407E-03, -6.30342E-03, -6.11965E-03,
-5.26980E-03, -3.82401E-03, -1.92513E-03, 2.24480E-04, 2.40210E-03,
4.37609E-03, 5.92750E-03, 6.88184E-03, 7.12199E-03, 6.59535E-03,
5.35465E-03, 3.50961E-03, 1.24232E-03, -1.21891E-03, -3.61467E-03,
-5.67831E-03, -7.18706E-03, -7.98927E-03, -7.96553E-03, -7.05584E-03,
-5.43074E-03, -3.14084E-03, -4.79904E-04, 2.31258E-03, 4.94032E-03,
7.12564E-03, 8.62696E-03, 9.26797E-03, 8.95857E-03, 7.70228E-03,
5.61491E-03, 2.82257E-03, -2.51761E-04, -3.54470E-03, -6.50595E-03,
-8.89239E-03, -1.04874E-02, -1.10720E-02, -1.05258E-02, -8.86513E-03,
-6.22409E-03, -2.83088E-03, 1.00897E-03, 4.94996E-03, 8.59207E-03,
1.15713E-02, 1.35495E-02, 1.42747E-02, 1.36027E-02, 1.15090E-02,
8.09566E-03, 3.60181E-03, -1.62033E-03, -7.13494E-03, -1.24571E-02,
-1.70701E-02, -2.04557E-02, -2.21780E-02, -2.18923E-02, -1.93358E-02,
-1.44250E-02, -7.21445E-03, 2.10551E-03, 1.31706E-02, 2.55127E-02,
3.85612E-02, 5.16835E-02, 6.42196E-02, 7.55240E-02, 8.50058E-02,
9.21659E-02, 9.66207E-02, 9.32814E-02, 9.66207E-02, 9.21659E-02,
8.50058E-02, 7.55240E-02, 6.42196E-02, 5.16835E-02, 3.85612E-02,
2.55127E-02, 1.31706E-02, 2.10551E-03, -7.21445E-03, -1.44250E-02,
-1.93358E-02, -2.18923E-02, -2.21780E-02, -2.04557E-02, -1.70701E-02,
-1.24571E-02, -7.13494E-03, -1.62033E-03, 3.60181E-03, 8.09566E-03,
1.15090E-02, 1.36027E-02, 1.42747E-02, 1.35495E-02, 1.15713E-02,
8.59207E-03, 4.94996E-03, 1.00897E-03, -2.83088E-03, -6.22409E-03,
-8.86513E-03, -1.05258E-02, -1.10720E-02, -1.04874E-02, -8.89239E-03,
-6.50595E-03, -3.54470E-03, -2.51761E-04, 2.82257E-03, 5.61491E-03,
7.70228E-03, 8.95857E-03, 9.26797E-03, 8.62696E-03, 7.12564E-03,
4.94032E-03, 2.31258E-03, -4.79904E-04, -3.14084E-03, -5.43074E-03,
-7.05584E-03, -7.96553E-03, -7.98927E-03, -7.18706E-03, -5.67831E-03,
-3.61467E-03, -1.21891E-03, 1.24232E-03, 3.50961E-03, 5.35465E-03,
6.59535E-03, 7.12199E-03, 6.88184E-03, 5.92750E-03, 4.37609E-03,
2.40210E-03, 2.24480E-04, -1.92513E-03, -3.82401E-03, -5.26980E-03,
-6.11965E-03, -6.30342E-03, -5.82407E-03, -4.74034E-03, -3.16818E-03,
-1.30369E-03, 6.38942E-04, 2.48309E-03, 4.01206E-03, 5.06959E-03,
5.57156E-03, 5.45966E-03, 4.77047E-03, 3.59116E-03, 2.05986E-03,
3.48096E-04, -1.35672E-03, -2.87213E-03, -4.04181E-03, -4.72195E-03,
-4.94819E-03, -4.59237E-03, -3.67748E-03, -2.49094E-03, -1.09233E-03,
4.12894E-04, 1.86091E-03, 3.07838E-03, 3.92241E-03, 4.30452E-03,
4.20033E-03, 3.64024E-03, 2.71421E-03, 1.52499E-03, 2.11501E-04,
-1.07168E-03, -2.20473E-03, -3.06396E-03, -3.56243E-03, -3.67163E-03,
-3.38572E-03, -2.74182E-03, -1.82279E-03, -7.36841E-04, 3.95690E-04,
1.45518E-03, 2.32859E-03, 2.92092E-03, 3.16887E-03, 3.06416E-03,
2.61089E-03, 1.89024E-03, 9.88114E-04, 2.69032E-05, -8.79739E-04,
-1.64517E-03, -2.22118E-03, -2.58592E-03, -2.69109E-03, -2.41463E-03,
-1.71599E-03, -1.25508E-03, -3.55578E-04, 4.21690E-04, 1.14477E-03,
1.71311E-03, 2.07002E-03, 2.18481E-03, 2.05610E-03, 1.70866E-03,
1.18859E-03, 5.64297E-04, -1.04045E-04, -7.13718E-04, -1.24024E-03,
-1.59382E-03, -1.76040E-03, -1.73155E-03, -1.50942E-03, -1.12853E-03,
-6.42232E-04, -1.08112E-04, 4.11732E-04, 8.58959E-04, 1.19236E-03,
1.37519E-03, 1.40162E-03, 1.27553E-03, 1.01013E-03, 6.43802E-04,
2.25062E-04, -1.96493E-04, -5.69134E-04, -8.59561E-04, -1.04530E-03,
-1.10967E-03, -1.04118E-03, -8.51135E-04, -5.85626E-04, -2.79576E-04,
5.97767E-05, 3.65225E-04, 6.05319E-04, 7.74712E-04, 8.41294E-04,
8.12780E-04, 6.95368E-04, 5.06335E-04, 2.70810E-04, 1.86971E-05,
-2.20212E-04, -4.21106E-04, -5.52247E-04, -6.34251E-04, -6.21400E-04,
-5.24003E-04, -4.13487E-04, -2.51913E-04, -5.08986E-05, 1.41069E-04,
2.91131E-04, 3.90744E-04, 4.42694E-04, 4.49753E-04, 4.09429E-04,
3.27028E-04, 2.04035E-04, 6.00740E-05, -7.80172E-05, -2.00097E-04,
-2.88025E-04, -3.31887E-04, -3.38473E-04, -3.05583E-04, -2.40057E-04,
-1.53666E-04, -5.48539E-05, 4.70086E-05, 1.42116E-04, 2.22380E-04,
2.77103E-04, 2.94814E-04, 2.85762E-04, 2.26986E-04, 1.36594E-04,
8.99745E-06, -1.40622E-04, -2.95340E-04, -4.25951E-04, -4.85881E-04,
-4.07485E-04, -9.41810E-05, 5.90669E-04, 1.80631E-03, -1.34249E-03
};

Loading…
Cancel
Save