[開發記錄] 函式庫調用 - 使用C6accel 資料庫進行FIR函式調用 之其一
来源:互联网 发布:linux切割图片 编辑:程序博客网 时间:2024/05/17 05:15
先前測試了FFT的使用,接下來進行FIR的測試,
目前已將C6accel程式清空,主程式只保留DSP調用需要的部分,
將測試碼獨立為一個副程式,才不會不小心把主程式搞壞,
測試代碼如下所示:
int c6accel_test_FIR(C6accel_Handle hC6accel,unsigned int nr,unsigned int nh){float fc=(float)8000.0/16000.0;short *xArray16, *hArray16, *yArray16;int i;float j,k,l;unsigned int nx = nr+nh-1;float nWaves=3.5; // C6accel_DSP_fir_gen() test xArray16 = (short *)pSrcBuf_16bpp; hArray16 = (short *)pWorkingBuf_16bpp;yArray16 = (short *)pOutBuf_16bpp;//create nWaves cosine wave with Q.15format in nx point for (i = 0; i < nx; i++ ){xArray16[i] = (short) (cos(2.0*PI*nWaves*i/nx)*32767);}printf("\t%f cosine wave in 120 data are : \n ",nWaves);showData(xArray16,nx); for (i = 0; i < nh; i++ ){l=i;if ( nh%2 != 0){l = l-(nh-1)/2.0;}//addelse{l = l-(nh /2.0)+0.5 ;}//evenj = sin(l*2.0*PI*fc)/(float)(l*PI);// ideal coefficientsk = 0.54+0.46*cos(2.0*PI*l/(float)nh);//Hamming windowprintf("ideal coeff = %1.4f ,\t Hamming = %1.4f,\t d=%1.4f\n",j,k,j*k);j=j*k*32767;// transfor to Q.15hArray16[i] = (short) j;}printf("\tideal coefficients * Hamming windows parameter are : \n ");showData(hArray16,nh); // Clear output arrays before tests begins memset (pOutBuf_16bpp,0x0000, nr); // Call the DSP_fir_gen function in C6AccelC6accel_DSP_fir_gen(hC6accel,xArray16, hArray16, yArray16, nh, nr ); if (C6Accel_readCallType(hC6accel) == ASYNC){C6accel_waitAsyncCall(hC6accel);}// Now wait for the callbackprintf("\tData after hamming window are : \n ");showData(yArray16,nr); // Clear output arrays memset (pOutBuf_16bpp,0x0000, nr);C6accel_DSP_fir_r4(hC6accel,xArray16, hArray16, yArray16, nh, nr ); if (C6Accel_readCallType(hC6accel) == ASYNC){C6accel_waitAsyncCall(hC6accel);}// Now wait for the callbackprintf("\tData after hamming window are : \n ");showData(yArray16,nr); // Clear output arrays memset (pOutBuf_16bpp,0x00, nr*sizeof(short)); C6accel_DSP_fir_r8(hC6accel,xArray16, hArray16, yArray16,nh,nr); if (C6Accel_readCallType(hC6accel) == ASYNC){C6accel_waitAsyncCall(hC6accel);}// Now wait for the callbackprintf("\tData after hamming window are : \n ");showData(yArray16,nr); printf(" END of FIR Filtering functions test\n"); return (1);}
產生 3.5 個cosine 波型 並且加入 8位的Hamming Windows 的FIR濾波器,此方式可使用較少位數的窗函數進行連續移動的濾波轉換,
或是可改用其他濾波器(高通或低通效果),使用DSP進行(半?)即時的濾波轉換。
- [開發記錄] 函式庫調用 - 使用C6accel 資料庫進行FIR函式調用 之其一
- [開發記錄] 函式庫調用 - 使用C6accel 資料庫進行FFT函式調用 之其一
- [開發記錄] 函式庫調用 - 使用C6accel 資料庫進行FFT函式調用 之其二
- [開發記錄] 函式庫調用 - 使用ALSA進行音訊資料擷取 之其一
- Android之googleMap(其一)
- Android之googleMap(其一)
- 在DM6467上使用C6Accel进行Sobel处理
- 在DM6467上使用C6Accel进行Sobel处理
- 其一
- Android服务之Service(其一)
- Android服务之Service(其一)
- Android服务之Service(其一)
- Android服务之Service(其一)
- Android服务之Service(其一)
- Android服务之Service(其一)
- Android服务之Service(其一)
- Android服务之Service(其一)
- Android服务之Service(其一)
- JavaIO_体系结构
- android系统默认语言设置
- 面向接口编程的理解
- Google 海底世界
- xcode没有生成archives
- [開發記錄] 函式庫調用 - 使用C6accel 資料庫進行FIR函式調用 之其一
- 家庭阅读简易指导方法
- IE配置注册表对应值,WebBrowser中启用禁用ActiveX
- delphi out
- 实现ucGUI界面中的拼音汉字输入法(T9)
- Linux OS 的6个运行级别!!!
- 商家收款产品 (应用于互联网交易的基础产品)
- asp中出现这种错误 '80020009' 的解决方法
- Android 启动过程介绍