Lines Matching +full:n +full:- +full:factor
2 model.c -- program to help test DSP filter and rate-conversion code.
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
38 # define MINSAMPL -0x8000
42 # define MINSAMPL -0x800000
57 fprintf(stderr,"Usage: ./model rate0,rate1 [-l len] [-f freq] <in-file>\n"); exit(-1); in Usage()
60 static int ReadN(int fd, SAMPL *v, int n) in ReadN() argument
65 r = read(fd, (char*)(v), n*sizeof(SAMPL)); in ReadN()
66 }while(r==-1 && errno==EINTR); in ReadN()
67 if (r==-1 || r%sizeof(SAMPL)) { in ReadN()
68 perror("Error reading input"); exit(-1); in ReadN()
82 if (h22>1e-20*h11) { in bestfit()
83 a = h12/h22; /* u[] = x[] - a*y[] is orthogonal to y[] */ in bestfit()
86 /* <s,x-ay> = sx -a*sy */ in bestfit()
87 su = sx - a*sy; /* su is iprod of s[] and u[] */ in bestfit()
88 /* <u,u> = <x-ay,x-ay> = h11 - 2a*h11 + a*a*h22 */ in bestfit()
89 uu = h11 - 2*a*h12 + a*a*h22; in bestfit()
91 if (uu>1e-20*h11) in bestfit()
96 *cy -= a*cu; in bestfit()
103 int n; in eCenter() local
106 for (n=0; n<len; n++) { in eCenter()
107 double w = ibuff[n]; in eCenter()
110 v1 += n*w; in eCenter()
111 v2 += (n*n)*w; in eCenter()
115 v2 -= v1*v1; in eCenter()
116 fprintf(stderr,"eCenter %.2f, STD %.2f\n",v1,sqrt(v2)); in eCenter()
121 bigcalc(double Factor, double Freq1, const SAMPL *ibuff, int len) in bigcalc() argument
127 int k1,n; in bigcalc() local
146 u = k/l - 1; /* in (-1,+1) */ in bigcalc()
154 x1 = x*thx - y*thy; in bigcalc()
166 Len1 = Env.c*Factor*0.6; /* 60% of original const-amplitude area */ in bigcalc()
167 c += Env.c*Factor*0.15; /* beginning after 30% */ in bigcalc()
171 a = c-Len1/2; in bigcalc()
172 b = ceil(a-0.001); in bigcalc()
174 del = b-a; in bigcalc()
176 fprintf(stderr,"del %.3f\n", del); in bigcalc()
177 k1 = Len1-del; in bigcalc()
182 for(n=0; n<=k1; n++) { in bigcalc()
186 s = ip[n]; /* sigval at n */ in bigcalc()
188 f = 1; //a(n+del,Len1); in bigcalc()
197 a_post(n); in bigcalc()
199 //fprintf(stderr,"h12 %.10f\n", (double)h12/(sqrt(h11)*sqrt(h22))); in bigcalc()
204 fprintf(stderr,"amp %.1f, cx %.10f, cy %.10f\n", cn, cx/cn, cy/cn); in bigcalc()
206 fprintf(stderr,"[%.1f,%.1f] s2max %.2f, v2max %.2f, rmserr %.2f\n", in bigcalc()
207 c/Factor, c, sqrt(s2), sqrt(v2), (s2<=v2)? sqrt(v2-s2):-sqrt(s2-v2)); in bigcalc()
219 double Factor; in main() local
223 while ((optc = getopt(argct, argv, "d:e:f:h")) != -1) { in main()
229 fprintf(stderr,"option -%c expects float value (%s)\n", optc, optarg); in main()
236 fprintf(stderr,"option -%c expects float value (%s)\n", optc, optarg); in main()
251 fprintf(stderr,"option -%c not valid (%s)\n", optc, optarg); in main()
261 //fprintf(stderr,"optind=%d argct=%d\n",optind,argct); in main()
263 if (optind != argct-2) Usage(); in main()
271 fprintf(stderr,"Invalid rate parameter (%s)\n", p0); in main()
277 fprintf(stderr,"Invalid 2nd rate parameter (%s)\n", p0); in main()
282 fprintf(stderr,"Invalid rate parameter (%s)\n", argv[optind]); in main()
288 Factor = (double)rate1 / (double)rate0; in main()
289 Freq1 = Freq0/Factor; in main()
291 //if (optind != argct-1) Usage(); in main()
293 fnam1=NULL; fd1=-1; in main()
297 fprintf(stderr,"Open: %s %s\n",fnam1,strerror(errno)); return(1); in main()
300 //fprintf(stderr, "Files: %s %s\n",fnam1,fnam2); in main()
304 int n,r; in main() local
306 for (n=0; n<BSIZ; n+=r) { in main()
307 r = ReadN(fd1,ibuff+n,BSIZ-n); in main()
310 len = n; in main()
312 fprintf(stderr,"Read %d input samples\n",len); in main()
314 bigcalc(Factor, Freq1, ibuff, len); in main()