3 基于创龙TMS320C665x算法Demo例程演示
1 基于创龙TMS320C665x算法Demo例程演示
所有工程均位于光盘"Demo\Algorithm\Application"文件夹内,本章节例程仅演示算法功能,算法与平台和系统无关,如需使用SYS/BIOS请自行移植。根据2.3节"CCS工程导入和编译步骤"导入例程。
备注:本节提供的例程为广州创龙TMS320C6655/TMS320C6657系列开发板共用,由于各个开发板之间存在硬件资源的差异,测试结果仅供参考。
3.1TMS320C665x FIR——有限长单位冲激响应滤波器
此程序的作用是进行FIR有限长单位冲激响应滤波器测试。
按照工程导入步骤加载FIR.out文件,然后点击程序运行按钮,程序会在断点处停下来。
点击CCS菜单"Tools->Graph->Single Time",在弹出的界面中按下图数值设置参数。
图92
图93
点击CCS菜单"Tools->Graph->Single Time",在弹出的界面中按下图数值设置参数。
图94
点击OK,即可查看滤波后时域信号波形,如下图所示:
图95
点击CCS菜单"Tools->Graph->FFT Magnitude",在弹出的界面中按下图数值设置参数。
图96
点击OK,即可查看原始频域信号+噪声波形,如下图所示:
图97
点击CCS菜单"Tools->Graph->FFT Magnitude",在弹出的界面中按下图数值设置参数。
图98
点击OK,即可查看滤波后频域信号波形,如下图所示:
图99
MatlabFIR滤波器辅助设计
打开Matlab软件,并打开"Filter Designed&Analaysis Tool"工具,在弹出的界面中按照所需滤波器修改以下参数:
滤波器类型:低通Lowpass;
滤波方式:等纹波FIR(Equiripple);
滤波器阶数:Specifyorder(31+1阶);
采样频率:1000Hz;
通带截止频率:150Hz;
阻带截止频率:350Hz ;
如下图所示:
图100
点击"FilterDesigned&AnalaysisTool"工具菜单"Target->GenerateCHeader",在弹出的窗口中修改"Exportas"参数为"Single-precisionfloat"(单精度浮点型),其他设置按下图所示:
图101
最后点击Generate生成包含滤波器系数的.H头文件。此头文件的数据用于FIR函数,如下图所示:
图102
备注:
信号频率100Hz,噪声频率450Hz;
若采用TIC6000DSP库开发,请选用实数FIR非优化滤波函数。
3.2TMS320C665x IIR——无限脉冲响应数字滤波器
此程序的作用是进行IIR无限脉冲响应数字滤波器测试。
按照工程导入步骤加载IIR.out文件,然后点击程序运行按钮,程序会在断点处停下来。
点击CCS菜单"Tools->Graph->SingleTime",在弹出的界面中点击Import按钮,选择II R工程下的"Configure\IIR_In_Time.graphProp"后点击OK,出现如下原始时域信号+噪声波形:
图103
点击CCS菜单"Tools->Graph->SingleTime",在弹出的界面中点击Import按钮,选择II R工程下的"Configure\IIR_Out_Time.graphProp"后点击OK,出现如下原始时域信号波形:
图104
点击CCS菜单"Tools->Graph->FFTMagnitude",在弹出的界面中点击Import按钮,选择IIR工程下的"Configure\IIR_In_FFT.graphProp"后点击OK,出现如下滤波后频域信号+噪声波形:
图105
点击CCS菜单"Tools->Graph->FFTMagnitude",在弹出的界面中点击Import按钮,选择IIR工程下的"Configure\IIR_OuT_FFT.graphProp"后点击OK,出现如下滤波后频域信号波形:
MatlabIIR滤波器辅助设计
打开Matlab软件,并打开"FilterDesigned&AnalaysisTool"工具,在弹出的界面中按照所需滤波器修改以下参数:
滤波器类型:低通Lowpass;
滤波方式:巴特沃斯IIR(Butterworth);
滤波器阶数:Specifyorder(4+1阶);
采样频率:1000Hz;
通带截止频率:150Hz;
如下图所示:
图106
点击"FilterDesigned&AnalaysisTool"工具菜单"Target->GenerateCHeader",在弹出的窗口中修改"Exportas"参数为"Single-precisionfloat"(单精度浮点型),其他设置按照下图所示:
图107
最后点击Generate生成包含滤波器系数的.H头文件。此头文件的数据用于IIR函数,如下图所示:
图108
备注:
信号频率100Hz,噪声频率450Hz;
若采用TI C6000DSP库开发,请选用实数IIR非优化滤波函数。
3.3TMS320C665x FFT_Real——快速傅里叶变换/逆变换
此程序的作用是实现FFT处理功能,但是没有打开缓存。
按照工程导入步骤加载FFT_Real.out文件,然后点击程序运行按钮。
CCS支持绘制多种类型的图表时域图、频域图、瀑布图等等。待测试信号为原始信号做1K采样频率进行1024个点抽样得到。
信号源公式:y=5*sin(2*pi*150*t)+15*sin(2*pi*350*t)
该信号含有150Hz和350Hz两种频率分量。
演示步骤现象
点击"Tools->Graph->SingleTime"选择单时域信号图,如下图所示:
图109
按照下图进行设置:
图110
点击OK,CCS界面底部弹出如下界面:
图111
MATLAB代码FFT.m文件位于"FFT_Real\Configure"程目录下,程序如下图:
图112
MATLAB图表如下图:
图113
经对比可以看出经过DSP C665x计算的结果与MATLAB计算结果一致。
3.4TMS320C665x FFT_Real_Benchmark——一维FFT性能测试
此程序的作用是评估DSP C66x数字信号函数库一维FFT计算性能,测试16~262144个实数点FFT性能。程序默认使用软件仿真测试(不计内存延迟),也可使用硬件禁用缓存及使能缓存测试。
按照工程导入步骤加载FFT_Real_Benchmark.out文件,然后点击程序运行按钮。
软件仿真(不计内存延迟)
操作步骤参考文档1.8节软件仿真。
[TMS320C66x_0]
Test signal
-Include 2V DC Component
-Include 3V AC Component,Frequency:50Hz Phase:-30 Degree
-Include 1.5V AC Component,Frequency:75Hz Phase:90 Degree
-Formula:y=2+3cos(2pi*50t-(30/180)pi)+1.5cos(2pi*75t+*(90/180)pi)
--------------------------- Cache Disabled ---------------------------
----------------------------------------------------------------------
1: 16 Point FFT Test
-Sampling Period:1s Sampling Frequency:16Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 263
-Forward Transformation Execution Time is 0.2630000 us (CPU Frequency:1000MHz)
-Inverse Transformation Execution Cycle is 288
-Inverse Transformation Execution Time is 0.2880000 us (CPU Frequency:1000MHz)
16 Point FFT Test End
----------------------------------------------------------------------
2: 32 Point FFT Test
-Sampling Period:1s Sampling Frequency:32Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 295
-Forward Transformation Execution Time is 0.2950000 us (CPU Frequency:1000MHz)
-Inverse Transformation Execution Cycle is 297
-Inverse Transformation Execution Time is 0.2970000 us (CPU Frequency:1000MHz)
32 Point FFT Test End
----------------------------------------------------------------------
3: 64 Point FFT Test
-Sampling Period:1s Sampling Frequency:64Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 396
-Forward Transformation Execution Time is 0.3960000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 394
-Inverse Transformation Execution Time is 0.3940000 us (CPU Frequency:1000MHz) 64 Point FFT Test End
----------------------------------------------------------------------
4: 128 Point FFT Test
-Sampling Period:1s Sampling Frequency:128Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 581
-Forward Transformation Execution Time is 0.5810000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 576
-Inverse Transformation Execution Time is 0.5760000 us (CPU Frequency:1000MHz) 128 Point FFT Test End
----------------------------------------------------------------------
5: 256 Point FFT Test
-Sampling Period:1s Sampling Frequency:256Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 1138
-Forward Transformation Execution Time is 1.1380000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 1112
-Inverse Transformation Execution Time is 1.1120000 us (CPU Frequency:1000MHz) 256 Point FFT Test End
----------------------------------------------------------------------
6: 512 Point FFT Test
-Sampling Period:1s Sampling Frequency:512Hz Frequency Resolution:1Hz
-Forward Transformation Execution Time is 2.0270000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 1974
-Inverse Transformation Execution Time is 1.9740000 us (CPU Frequency:1000MHz) 512 Point FFT Test End
----------------------------------------------------------------------
7: 1024 Point FFT Test
-Sampling Period:1s Sampling Frequency:1024Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 4520
-Forward Transformation Execution Time is 4.5200000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 4398
-Inverse Transformation Execution Time is 4.3980000 us (CPU Frequency:1000MHz) 1024 Point FFT Test End
----------------------------------------------------------------------
8: 2048 Point FFT Test
-Sampling Period:1s Sampling Frequency:2048Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 8753
-Forward Transformation Execution Time is 8.7530000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 8508
-Inverse Transformation Execution Time is 8.5080000 us (CPU Frequency:1000MHz) 2048 Point FFT Test End
----------------------------------------------------------------------
9: 4096 Point FFT Test
-Sampling Period:1s Sampling Frequency:4096Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 20046
-Forward Transformation Execution Time is 20.0460000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 19540
-Inverse Transformation Execution Time is 19.5400000 us (CPU Frequency:1000MHz) 4096 Point FFT Test End
10: 8192 Point FFT Test
-Sampling Period:1s Sampling Frequency:8192Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 39767
-Forward Transformation Execution Time is 39.7670000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 38754
-Inverse Transformation Execution Time is 38.7540000 us (CPU Frequency:1000MHz) 8192 Point FFT Test End
----------------------------------------------------------------------
11: 16384 Point FFT Test
-Sampling Period:1s Sampling Frequency:16384Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 90484
-Forward Transformation Execution Time is 90.4840000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 88442
-Inverse Transformation Execution Time is 88.4420000 us (CPU Frequency:1000MHz) 16384 Point FFT Test End
----------------------------------------------------------------------
12: 32768 Point FFT Test
-Sampling Period:1s Sampling Frequency:32768Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 180605
-Forward Transformation Execution Time is 180.6050000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 176520
-Inverse Transformation Execution Time is 176.5200000 us (CPU Frequency:1000MHz) 32768 Point FFT Test End
----------------------------------------------------------------------
13: 65536 Point FFT Test
-Sampling Period:1s Sampling Frequency:65536Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 405914
-Forward Transformation Execution Time is 405.9140000 us (CPU Frequency:1000MHz)
-Inverse Transformation Execution Time is 397.7280000 us (CPU Frequency:1000MHz) 65536 Point FFT Test End
----------------------------------------------------------------------
14: 131072 Point FFT Test
-Sampling Period:1s Sampling Frequency:131072Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 811427
-Forward Transformation Execution Time is 811.4270000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 795054
-Inverse Transformation Execution Time is 795.0540000 us (CPU Frequency:1000MHz) 131072 Point FFT Test End
----------------------------------------------------------------------
15: 262144 Point FFT Test
-Sampling Period:1s Sampling Frequency:262144Hz Frequency Resolution:1Hz
-Forward Transformation Execution Cycle is 1802688
-Forward Transformation Execution Time is 1802.6880000 us (CPU Frequency:1000MHz) -Inverse Transformation Execution Cycle is 1769926
-Inverse Transformation Execution Time is 1769.9260000 us (CPU Frequency:1000MHz) 262144 Point FFT Test End
Test Finished!
硬件测试(禁用缓存及使用缓存)
修改main.c文件中的代码可选择硬件测试模式,如下图所示:
图114