亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch08test.c

?? arm嵌入式系統開發--軟件設計與優化隨書源代碼。開發環境asm+c。dsp部分。
?? C
字號:
/* ____________________________________________________________________
 *
 * Copyright (c) 2003, Andrew N. Sloss, Dominic Symes, Chris Wright
 * All rights reserved.
 * ____________________________________________________________________
 * 
 * NON-COMMERCIAL USE License
 * 
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions 
 * are met: 
 *
 * 1. For NON-COMMERCIAL USE only.
 * 
 * 2. Redistributions of source code must retain the above copyright 
 *    notice, this list of conditions and the following disclaimer. 
 *
 * 3. Redistributions in binary form must reproduce the above 
 *    copyright notice, this list of conditions and the following 
 *    disclaimer in the documentation and/or other materials provided 
 *    with the distribution. 
 *
 * 4. All advertising materials mentioning features or use of this 
 *    software must display the following acknowledgement:
 *
 *    This product includes software developed by Andrew N. Sloss,
 *    Chris Wright and Dominic Symes. 
 *
 *  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY 
 *  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
 *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE CONTRIBUTORS BE 
 *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
 *  OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
 *  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
 *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 
 *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
 *  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
 *  OF SUCH DAMAGE. 
 *
 * If you have questions about this license or would like a different
 * license please email : andrew@sloss.net
 *
 * Test module for the example routines of Chapter 8
 */
 
#include <stdio.h>
#include "ch08test.h"

int main(void)
{
  int maxerr, errors=0;
  
  //gen_fft_tables(4096, 5);

  printf("Testing examples for Chapter 8\n");
  
  /* Section 8.2 */
  maxerr=1<<13;
  TEST_DOT(dot_16by16_arm7m, q13in32, q13in32, q26in32, maxerr);
  TEST_DOT(dot_16by16_arm9m, q13in16, q13in16, q26in32, maxerr);
  TEST_DOT(dot_16by16_SA1  , q13in32, q13in32, q26in32, maxerr);
  TEST_DOT(dot_16by16_arm9e, q13in16, q13in16, q26in32, maxerr);
  TEST_DOT(dot_16by16_arm10, q13in16, q13in16, q26in32, maxerr);
  TEST_DOT(dot_16by16_xscale, q13in16, q13in16, q26in32, maxerr);
  
  /* Section 8.3 */
  maxerr=1<<15;
  TEST_FIR(fir_16by16_arm7m, q13in32, q13in32, q26in32, maxerr);
  TEST_FIR(fir_16by16_arm9m, q13in16, q13in16, q26in32, maxerr);
  TEST_FIR(fir_16by16_arm9e, q13in16, q13in16, q26in32, maxerr);
  TEST_FIR(fir_32by16_arm9e, q29in32, q13in16, q26in32, maxerr);
  TEST_FIR(fir_32by32, q29in32, q29in32, q58in64, 0x7FFFFFFF);
  
  /* Section 8.4 */
  TEST_IIR(iir_q14_arm7m, q13in32, q14in32, q13in32, 8);
  TEST_IIR(iir_q14_arm9m, q13in16, q14in16, q13in16, 8);
  TEST_IIR(iir_q14_arm9e, q13in16, q14in16, q13in16, 8);

  /* Section 8.5 */
  TEST_FFT(fft_16_arm9m, q15in16, q15in16, 7);
  TEST_FFT(fft_16_arm9e, q15in16, q15in16, 7);
  
  if (errors)
  {
    printf("Test finished with %d errors.\n", errors);
    return 1;
  }
  else
  {
    printf("Test passed.\n");
  }
  return 0;
}

int test_dot(
  char *name,           /* function name */
  fn_dot *fn,           /* function to test */
  format samp,          /* input sample format */
  format coef,          /* input coefficient format */
  format result,        /* output result format */
  int maxerr            /* maximum error alowed */
)
{
  int32 out;
  const int nSamps=40;
  void *samps, *coefs;
  real *ref_samps, *ref_coefs, ref_out;
  
  printf("Testing function: %s\n", name);

  /* generate test signal */  
  ref_samps = gen_signal(nSamps, 0);
  ref_coefs = gen_signal(nSamps, 1);
  
  /* create samples buffer */
  samps = gen_data(nSamps, samp, ref_samps);
  coefs = gen_data(nSamps, coef, ref_coefs);

#if 0
  print_signal("ref_samps", ref_samps, nSamps);
  print_data("samps", samps, samp, nSamps);
  print_signal("ref_coefs", ref_coefs, nSamps);
  print_data("coefs", coefs, coef, nSamps);
#endif
  
  /* run the test routine */
  out = (*fn)(samps, coefs, nSamps);
  ref_out = ref_dot(ref_samps, ref_coefs, nSamps);
  
  free_signal(ref_samps);
  free_signal(ref_coefs);
  free_signal(samps);
  free_signal(coefs);
  
  return compare(&ref_out, &out, result, 1, maxerr);
}

int test_fir(
  char *name,           /* function name */
  fn_fir *fn,           /* function to test */
  format samp,          /* input sample format */
  format coef,          /* input coefficient format */
  format result,        /* output result format */
  int maxerr            /* maximum error alowed */
)
{
  const int nCoefs=24;
  const int nOut = 36;
  const int nSamps=nCoefs+nOut-1;
  void *samps, *out;
  sCoefs coefs;
  real *ref_samps, *ref_out;
  rCoefs ref_coefs;
  int err;
  
  printf("Testing function: %s\n", name);

  /* generate test signal */  
  ref_samps   = gen_signal(nSamps, 0);
  ref_coefs.c = gen_signal(nCoefs, 1);
  ref_coefs.M = nCoefs;
  ref_out     = gen_signal(nOut, 2);
  
  /* create samples buffer */
  samps   = gen_data(nSamps, samp, ref_samps);
  coefs.c = gen_data(nCoefs, coef, ref_coefs.c);
  coefs.M = nCoefs;
  out     = gen_data(nOut, result, ref_out);

#if 0
  print_signal("ref_samps", ref_samps, nSamps);
  print_data("samps", samps, samp, nSamps);
  print_signal("ref_coefs", ref_coefs.c, nCoefs);
  print_data("coefs", coefs.c, coef, nCoefs);
#endif
  
  /* run the test routine */
  (*fn)(out, samps, &coefs, nOut);
  ref_fir(ref_out, ref_samps, &ref_coefs, nOut);
  
  free_signal(ref_samps);
  free_signal(ref_coefs.c);
  free_signal(samps);
  free_signal(coefs.c);
  
  err = compare(ref_out, out, result, nOut, maxerr);
  free_signal(ref_out);
  free_signal(out);
  
  return err;
}

int test_iir(
  char *name,           /* function name */
  fn_iir *fn,           /* function to test */
  format samp,          /* input sample format */
  format coef,          /* input coefficient format */
  format result,        /* output result format */
  int maxerr            /* maximum error alowed */
)
{
  const int nBiquads=4;
  const int nSamps=36;
  void *samps, *out;
  sBiquads biquads;
  real *ref_samps, *ref_out;
  rBiquads ref_biquads;
  int i, err;
  
  printf("Testing function: %s\n", name);

  /* generate test signal */  
  ref_samps     = gen_signal(nSamps, 3);
  ref_biquads.b = gen_signal(nBiquads*6, 1);
  ref_biquads.M = nBiquads;
  ref_out       = gen_signal(nSamps, 2);
  
  /* zero initial states */
  for (i=0; i<nBiquads; i++)
  {
    ref_biquads.b[6*i+4] = 0.0;
    ref_biquads.b[6*i+5] = 0.0;
  }
  
  /* create samples buffer */
  samps     = gen_data(nSamps, samp, ref_samps);
  biquads.b = gen_data(nBiquads*6, coef, ref_biquads.b);
  biquads.M = nBiquads;
  out       = gen_data(nSamps, result, ref_out);

#if 0
  print_signal("ref_samps", ref_samps, nSamps);
  print_data("samps", samps, samp, nSamps);
  print_signal("ref_coefs", ref_coefs.c, nCoefs);
  print_data("coefs", coefs.c, coef, nCoefs);
#endif
  
  /* run the test routine */
  (*fn)(out, samps, &biquads, nSamps);
  ref_iir(ref_out, ref_samps, &ref_biquads, nSamps);
  
  free_signal(ref_samps);
  free_signal(ref_biquads.b);
  free_signal(samps);
  free_signal(biquads.b);
  
  err = compare(ref_out, out, result, nSamps, maxerr);
  free_signal(ref_out);
  free_signal(out);
  
  return err;
}

int test_fft(
  char *name,           /* function name */
  fn_fft *fn,           /* function to test */
  format samp,          /* input sample format */
  format result,        /* output result format */
  int maxerr            /* maximum error alowed */
)
{
  const int nSamps=256;
  void *samps, *out;
  real *ref_samps, *ref_out;
  int err;
  
  printf("Testing function: %s\n", name);

  /* generate test signal */  
  ref_samps     = gen_signal(2*nSamps, 3);
  ref_out       = gen_signal(2*nSamps, 2);
  
  /* create samples buffer */
  samps     = gen_data(2*nSamps, samp, ref_samps);
  out       = gen_data(2*nSamps, result, ref_out);
  
  /* run the test routine */
  (*fn)(out, samps, nSamps);
  ref_fft((complex*)ref_out, (complex*)ref_samps, nSamps);
  
#if 0
  { int i, j=4; real d=0;
    for (i=0; i<j; i++) d+=ref_samps[2*i*(nSamps/j)];
    printf("average = %lf\n", d/(real)j);
  }
  print_signal("ref_samps", ref_samps, 2*nSamps);
  print_data("samps", samps, samp, 2*nSamps);
  print_signal("ref_out", ref_out, 2*nSamps);
  print_data("out", out, result, 2*nSamps);
#endif

  free_signal(ref_samps);
  free_signal(samps);
  
  err = compare(ref_out, out, result, 2*nSamps, maxerr);
  free_signal(ref_out);
  free_signal(out);
  
  return err;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久成人av少妇免费| 国产成人在线视频播放| 国内精品视频一区二区三区八戒| 成人一级视频在线观看| 精品视频一区三区九区| 久久精品一区蜜桃臀影院| 亚洲国产精品久久人人爱蜜臀 | 亚洲国产精品ⅴa在线观看| 亚洲综合无码一区二区| 国产99久久久国产精品潘金网站| 777午夜精品视频在线播放| 国产精品福利在线播放| 国产一区二区三区免费| 7777精品伊人久久久大香线蕉完整版 | 极品少妇xxxx偷拍精品少妇| 欧美日韩专区在线| 亚洲精品精品亚洲| 成人avav在线| 国产精品免费丝袜| 国产成人精品影视| 久久久精品人体av艺术| 伦理电影国产精品| 日韩欧美在线不卡| 日韩影院免费视频| 777久久久精品| 日韩成人一区二区三区在线观看| 在线观看区一区二| 一区二区三区精品| 色网综合在线观看| 亚洲一区二区三区自拍| 欧洲av一区二区嗯嗯嗯啊| 亚洲视频一二区| 91丨porny丨首页| 亚洲视频免费观看| 色天使色偷偷av一区二区| 亚洲欧美一区二区三区极速播放| 99久久精品免费看| 九九国产精品视频| 日韩午夜在线播放| 麻豆国产精品一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 亚洲成av人**亚洲成av**| 欧美精品久久久久久久多人混战| 日韩经典一区二区| 欧美哺乳videos| 国产一区不卡精品| 国产精品第一页第二页第三页| 国产高清不卡二三区| 中文字幕精品—区二区四季| 不卡视频在线看| 亚洲欧美视频在线观看视频| 91成人国产精品| 日韩中文字幕亚洲一区二区va在线| 在线成人av网站| 国产一区在线看| 欧美国产精品劲爆| 欧美午夜精品免费| 奇米亚洲午夜久久精品| 久久久久国产一区二区三区四区 | 99精品视频一区二区三区| 亚洲天堂免费在线观看视频| 欧美色精品在线视频| 麻豆国产91在线播放| 亚洲欧美综合网| 欧美日韩夫妻久久| 国产精品996| 不卡av在线免费观看| 亚洲卡通欧美制服中文| 欧美一区二区三区四区久久| 国产成人在线电影| 亚洲一线二线三线久久久| 日韩精品中文字幕在线一区| fc2成人免费人成在线观看播放| 亚洲国产精品久久久久婷婷884| 精品对白一区国产伦| 在线一区二区观看| 国产美女精品一区二区三区| 亚洲精品大片www| 2021国产精品久久精品| 欧洲精品一区二区| 国产成人精品亚洲日本在线桃色| 亚洲精品欧美激情| 国产香蕉久久精品综合网| 欧美日韩精品高清| 国产精品初高中害羞小美女文| 欧美色图第一页| 精品亚洲成a人| 亚洲一区二区三区四区的| 精品美女在线播放| 欧美性色黄大片| 成人午夜在线视频| 久久99国产精品久久99 | 中文字幕在线一区二区三区| 在线不卡欧美精品一区二区三区| 成人激情综合网站| 国产一区二区三区av电影| 日韩精品电影在线| 性欧美大战久久久久久久久| 亚洲视频在线观看三级| 欧美国产精品中文字幕| 久久精品亚洲精品国产欧美 | 美女任你摸久久| 国产欧美日韩精品a在线观看| 8v天堂国产在线一区二区| 不卡av在线网| 国产91富婆露脸刺激对白| 国内成+人亚洲+欧美+综合在线| 五月激情综合色| 亚洲午夜电影在线| 亚洲综合无码一区二区| 一区二区欧美精品| 亚洲激情av在线| 亚洲免费视频中文字幕| 中文字幕综合网| 亚洲欧美视频在线观看| 中文字幕亚洲一区二区av在线| 欧美激情一区二区三区蜜桃视频| 精品国产一区久久| 久久久久免费观看| 久久先锋影音av鲁色资源网| 亚洲精品在线电影| 国产亚洲自拍一区| 国产精品久线在线观看| 国产精品美女久久久久久久网站| 国产精品美女久久福利网站| 国产精品网友自拍| 亚洲天堂精品在线观看| 一个色在线综合| 日韩av一二三| 欧美日韩亚洲另类| 欧美日韩美女一区二区| 538在线一区二区精品国产| 日韩一区二区精品葵司在线| 精品国产伦理网| 国产精品青草综合久久久久99| 亚洲色图欧美在线| 爽好多水快深点欧美视频| 激情五月激情综合网| 欧美一区二区在线不卡| 欧美丰满一区二区免费视频 | 欧美日韩在线播| 7777精品久久久大香线蕉| 欧美区一区二区三区| 日韩一区二区在线观看| 久久亚洲精品国产精品紫薇| 国产精品美女一区二区三区| 亚洲一区免费在线观看| 久久国产精品72免费观看| 国产成人小视频| 欧美四级电影在线观看| 日韩三区在线观看| 国产精品毛片高清在线完整版| 亚洲综合色视频| 狠狠色综合播放一区二区| 成人黄色在线视频| 欧美日韩免费一区二区三区| 亚洲精品在线观看视频| 亚洲色图清纯唯美| 麻豆精品精品国产自在97香蕉 | 久久理论电影网| 亚洲黄色片在线观看| 欧美亚洲尤物久久| 欧美电视剧免费观看| 亚洲人吸女人奶水| 精品影院一区二区久久久| 色综合激情五月| 精品电影一区二区三区| 亚洲一区在线看| 成人丝袜18视频在线观看| 欧美一级午夜免费电影| 一区在线中文字幕| 精品一区二区三区的国产在线播放| 色婷婷av一区二区| 中文字幕精品—区二区四季| 久久精品国产色蜜蜜麻豆| 欧美综合欧美视频| 国产精品久久久久久妇女6080| 国产在线不卡视频| 日韩一卡二卡三卡国产欧美| 亚洲一区中文在线| www.欧美亚洲| 国产日产欧产精品推荐色| 久久精品国产99| 欧美一级电影网站| 亚洲成av人片在线| 欧美色网站导航| 亚洲在线视频网站| 91免费看片在线观看| 国产精品福利一区二区| 国产成人鲁色资源国产91色综| 日韩精品一区在线| 免费美女久久99| 日韩一区二区三区在线视频| 视频精品一区二区| 欧美日韩二区三区| 午夜精品福利一区二区三区av| 在线视频你懂得一区二区三区| 亚洲人精品一区| 在线欧美一区二区| 一区二区三区鲁丝不卡|