tag 标签: 教学实验箱

相关博文
  • 热度 3
    2023-11-30 10:21
    560 次阅读|
    0 个评论
    一、实验目的 学习直方图统计的原理,掌握图像的读取方法,并实现在LCD上显示灰度图像的直方图统计结果。 二、实验原理灰度直方图 灰度直方图是关于灰度级分布的函数,是对图像中灰度级分布的统计。灰度直方图是 将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。灰度直方图是灰度 级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。 直方图是用来整理计量值的观测数据,分析其分布状态的统计方法,用于对总体的分布特征进行推断。直方图的作用如下: (1)检验数据分布的类型,分析数据是否服从正态分布,判断数据有无异常; (2)与产品规格界限做比较,可直观地判断分布中心是否偏离规格中心,以确定是否需要调整并求出其调整量;还可判断数据分布的散差(分布范围)是否满足规格范围的要求,以确定是否采取缩小散差的技术性措施; (3)用于进行过程能力调查和不合格品率估计; (4)客观地反映操作者的技术水平和主观努力程度。 从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数 pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分。也可以直接从代表每种灰度的象素数目的直方图来观察。 灰度直方图的计算是很简单的,依据定义,若图象具有 L(通常 L=256,即 8 位灰度级)级灰度,则大小为 MxN 的灰度图象 f(x,y)的灰度直方图 hist 可用如下计算获得: (1)初始化 hist =0 ; k=0,…,L-1 (2)统计 hist ++ ; x, y =0,…,M-1, 0,…,N-1 (3)标准化 hist /=M*N 程序流程 程序流程设计中首先要进行外设使能配置,接着进行LCD管脚复用配置和LCD中断配置,然后进行LCD显示的初始化,最后读取工程目录下的BMP图像并进行直方图统计,并在 LCD 显示灰度值大 小的统计结果。 视频分析与视觉库 VLIB 是一个TI 的软件库,可加速视频分析开发并将性能提高多达 10 倍。VLIB 是针对 C6x DSP 内核优化的可扩展库。包括的40 多个内核的集合可以实现背景建模与减法、对象特征提取、追踪与识别和低级像素处理。 包括适用于 C64x+、C674x 和 C66x 处理器的 Windows 和 Linux 安装可执行文件。每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。 TMS320C6748处理器使用的是vlib_c674x_3_3_2_0。 vlib_c674x_3_3_2_0 将安装到CCS5.5 的安装路径,安装完成后会有相应的文件夹出现。源码所在路径:\vlib_c674x_3_3_2_0\packages\ti\vlib\src 程序源码 初始化缓存 使用VLIB 的库来为直方图计算进行缓存初始化。使用时,直接包含“VLIB_histogram_1D_Init_U8.h”文件 即可。 API 接口 VLIB_histogram_1D_Init_U8(const uint8_t *restrict binEdges,const int32_t numBins, uint8_t *restrict histArray); 程序使用VLIB 的库来进行灰度直方图统计前的缓存初始化,调用的程序源码和使用说明可以安装VLIB后查看。调用的初始化函数中,第一个参数是直方图的边界值,第二个参数是直方图的区间数。第三个参数是内部使用的缓冲器。 直方图计算 使用VLIB 的库来从 8 位无符号整数数组计算直方图。使用时,直接包含“VLIB_histogram_1D_U8.h”文件 即可。 API 接口 VLIB_histogram_1D_U8(const uint8_t *restrict X, const int32_t numX,const int32_t numBins,const uint16_t binWeight,const uint8_t *restrict histArray,uint16_t *restrict H1,uint16_t *restrict H2,uint16_t *restrict H3,uint16_t *restrict H); 程序使用VLIB 的库来进行灰度直方图统计,调用的程序源码和使用说明可以安装VLIB后查看。调用的直方图统计函数中,第一个参数是输入图像的数组,第二个参数是输入图像数组的元素个数。第三个参数是直方图的区间数。第四个参数是直方图中该区域的像素增量。第五个参数是指向内部使用的缓冲器。第六~第八个参数是指向内部使用的数组。第九个参数是用来保存直方图计算结果的数组。 三、操作现象实验设备 本实验使用的硬件接口为LCD,所需硬件为实验板、仿真器、LCD和电源。 硬件连接 (1)连接仿真器和电脑的USB接口, (2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。 软件操作 导入工程,选择Demo文件夹下的对应工程 编译工程,生成可执行文件 将CCS连接实验箱并加载程序 程序加载完成后点击运行程序 运行程序后,CCS的Console窗口会打印相关信息,同时LCD会显示标题。 稍等片刻后,图像处理完成,LCD会显示直方图的统计结果。 实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验板的连接,最后实验箱断电即可。
  • 热度 2
    2023-11-22 14:51
    727 次阅读|
    0 个评论
    一、实验目的 了解信号抽样的基本内容,学习AD7606采集波形的实现,实现外部信号的抽样与恢复并在LCD上显示结果。 二、实验原理抽样定理 抽样定理,又称采样定理,香农采样定理,奈奎斯特采样定理,只要采样频率大于或等于有效信号最高频率的两倍,采样值就可以包含原始信号的所有信息,被采样的信号就可以不失真地还原成原始信号。抽样定理是通信理论中的一个重要定理,是模拟信号数字化的理论依据。时域采样定理: (1)频带为F的连续信号f(t)可用一系列离散的采样值f(t1),f(t1±Δt),f(t1±2Δt),...来表示,只要这些采样点的时间间隔Δt≤F/2,便可根据各采样值完全恢复原来的信号f(t)。 (2)当时间信号函数f(t)的最高频率分量为f_M时,f(t)的值可由一系列采样间隔小于或等于f_M/2的采样值来确定,即采样点的重复频率f≥2f_M。 对连续时间正弦信号考虑下面的表达式: 可以按抽样频率f_s=1/T_s对x(t)抽样来获得离散时间信号: 如果不能满足抽样定理,抽样后信号的频率就会重叠,即高于采样频率一半的频率成分将被重建成低于采样频率一半的信号。这种频谱的重叠导致的失真称为混叠,就不能恢复成原始信号。以下两种措施可避免混叠的发生: (1)提高采样频率,使之达到最高信号频率的两倍以上(本实验使用的方法); (2)引入低通滤波器或提高低通滤波器的参数;该低通滤波器通常称为抗混叠滤波器,抗混叠滤波器可限制信号的带宽,使之满足采样定理的条件。 外部输入信号 本实验中,外部输入信号的抽样实现是通过实验板上的波形发生器AD9833输出正弦波连续信号, AD7606 采集波形后得到对应的离散信号数据,最后DSP对采集到的离散信号进行处理,比如FFT运算,最后LCD显示。 AD9833特性 (1)AD9833是一款低功耗、可编程波形发生器,能够产生正弦波、三角波和方波输出,输出频率和相位可通过软件进行编程,调整简单。 (2)AD9833通过一个三线式串行接口写入数据。该串行接口能够以最高40MHz的时钟速率工作,并且与DSP和微控制器标准兼容。 AD7606特性 (1)8 路16bit采样通道。 (2)支持串行和并行读取方式。 (3)支持全部通道 200K 采样率并行采集和转换。 (4)支持真正±10V 或±5V 的双极性信号输入。 AD7606上8个通道的数据是同时采集,轮流转换的。 模数转换模块的处理过程如下: (1)模数转换模块接到启动转换信号后,按照排序器的设置,开始转换第一个通道的数据; (2)经过一个采样时间的延迟后,将采样结果放入转换结果寄存器保存; (3)按顺序进行下一个通道的转换; (4)如果为连续转换方式则从新开始转换过程; (5)否则等待下一个启动信号。 程序流程设计 设计中首先要进行LCD初始化,例如外设使能配置、LCD管脚复用配置、中断配置、显示初始化等。然后初始化AD7606并启动转换,接着初始化AD9833并输出正弦波信号,AD7606对信号进行抽样转换,抽样后将信号转为复数模式,接着对抽样信号进行FFT变换,并在在LCD上显示抽样的结果。最后进行触摸检测,控制AD采样的暂停和启动。 函数源码 FFT运算函数 使用 DSPLIB 的库来进行FFT运算。使用时,直接包含“DSPF_sp_fftSPxSP.h”文件 即可。 API接口 void DSPF_sp_fftSPxSP(int N, float *ptr_x, float *ptr_w, float *ptr_y, unsigned char *brev, int n_min, int offset, int n_max); 程序使用 DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的FFT函数中,第一个参数是样本中 FFT 的长度,第二个参数是指向数据输入的指针。第三个参数是指向复杂旋转因子的指针。第四个参数是指向复杂输出数据的指针。第五个参数是指向包含 64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则 第六个参数是 2 。第七个参数是从主FFT开始的样本中的子 FFT偏移索引 。 第八个参数是样本中主FFT的大小。 FFT逆变换函数 使用 DSPLIB 的库来进行FFT逆变换。使用时,直接包含“DSPF_sp_ifftSPxSP.h”文件 即可。 API接口 void DSPF_sp_ifftSPxSP (int N, float *ptr_x, float *ptr_w, float *ptr_y, unsigned char *brev, int n_min, int offset, int n_max); 程序使用 DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IFFT函数中,第一个参数是样本中 FFT 的长度。第二个参数是指向数据输入的指针。第三个参数是指向复杂旋转因子的指针。第四个参数是指向复杂输出数据的指针。第五个参数是指向包含 64 个条目的位反转表的指针 。如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是2 。第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 。第八个参数是样本中主FFT的大小。 三、操作现象 实验设备:本实验使用的硬件接口为LCD,所需硬件为实验板、仿真器、公头对公头 SMA 连接线、LCD和电源。 硬件连接 (1)使用公头对公头SMA连接线连接波形发生器和ADC输入的V1通道。 (2)连接仿真器和电脑的USB接口。 (3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。 软件操作 导入工程,选择Demo文件夹下的对应工程 编译工程,生成可执行文件 将CCS连接实验箱并加载程序 程序加载完成后点击运行程序 运行程序后,LCD会显示抽样的离散信号波形,上半幅图为离散抽样信号,横坐标X为时间,采样点的时间间隔为1ms。下半幅图为离散抽样信号的频谱图,频谱近似等于AD9833产生的连续信号频谱 100。 实验结束后,先点击左上角的黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验板的连接,最后实验箱断电即可。
  • 热度 4
    2023-11-16 15:07
    619 次阅读|
    0 个评论
    一、实验目的 了解IIR滤波器的特点,掌握Matlab辅助设计滤波器系数的方法,并实现IIR滤波器滤除高频信号,并在LCD上显示结果。 二、实验原理IIR滤波器 IIR无限冲激响应数字滤波器(infinite impulse response digital filter)是对单位冲激的输入信号的响应为无限长序列的数字滤波器。可分为一维、二维或多维无限冲激响应数字滤波器。它的输出y(n)由当前的和过去的输入信号x(n)及过去的输出信号共同决定。IIR的幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上。 对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。其系统函数如下: IIR滤波器的一种结构和差分方程可见图示,由IIR的系统函数出发,可视作两个系统的级联,并且合并了公共的延时支路。 IIR滤波器特性 无限冲激响应数字滤波器具有以下特性: (1)系统函数可以写成封闭函数的形式。 (2)采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。 (3)在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。 (4)相位特性不好控制,对相位要求较高时,需加相位校准网络。 IIR滤波器的设计 设计IIR数字滤波器实质上就是找到一个使其频率响应H(Z)满足给定的通带截止频率、通带衰减系数、阻带截止频率及阻带衰减系数的可以在物理上实现的系统函数H(Z)。 根据所要设计滤波器的参数去确定一个模拟滤波器的传输函数,然后再根据这个传输函数,通过双线性变换、或脉冲响应不变法来进行数字滤波器的设计。它的设计比较复杂,复杂在于它的模拟滤波器传输函数H(s)的确定。这一点可以让软件来实现。具体实现步骤: (1)先确定需要一个什么样的滤波器,巴特沃斯型,切比雪夫型,还是其它什么型的滤波器。 (2)当选定一个型号后,就可以根据设计参数和这个滤波器的计算公式来确定其阶数、传输函数的表达式。通常这个过程中还存在预扭曲的问题(这只是双线性变换法所需要注意的问题,脉冲响应不变法不存在这种问题)。 (3)确定H(S)后,就可以通过双线性变换得到其数字域的差分方程。 MATLAB FIR 滤波器辅助设计,生成滤波器系数。 打开Matlab 软件,并打开"Filter Designed&Analaysis Tool"工具,在弹出的界面中按照所需滤波器修改以下参数: (1)滤波器类型:低通Lowpass; (2)滤波方式:巴特沃斯IIR(Butterworth); (3)滤波器阶数:Specify order(4+1阶); (4)采样频率:1000Hz; (5)通带截止频率:150Hz; 程序流程设计 设计中首先要进行外设使能配置,然后进行LCD管脚复用配置和LCD中断配置,接着进行LCD显示和触摸的初始化。最后产生带有噪声的原始信号并进行IIR滤波和FFT运算,将结果显示在LCD屏幕上,在循环中进行触摸检测,根据标志位判断显示时域或者频域波形。 程序功能:使用MATLAB 辅助设计滤波器系数实现IIR滤波,并在LCD上显示结果。 数字信号处理库 DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多。使用DSPLIB可以缩短应用程序开发时间。 DSPLIB 3_4_0_0包括适用于 C64x+ 或 C66x 或 C674x 处理器的 Windows 或 Linux 安装可执行文件。 每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。 TMS320C6748处理器使用的是dsplib_c674x_3_4_0_0。 函数源码 程序使用DSPLIB 的库来进行IIR滤波,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IIR滤波函数中, 第一个参数是延迟元素值。 第二个参数是指向输入数组的指针。 第三个参数是指向输出数组的指针。 第四个参数是自回归滤波器系数。 第五个参数是动态平均滤波器系数。 第六个参数是输出样本数。 程序使用DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的FFT函数中, 第一个参数是样本中FFT 的长度, 第二个参数是指向数据输入的指针。 第三个参数是指向复杂旋转因子的指针。 第四个参数是指向复杂输出数据的指针。 第五个参数是指向包含64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂, 第六个参数是4,否则第六个参数是2 。 第七个参数是从主FFT开始的样本中的子 FFT偏移索引 。 第八个参数是样本中主FFT的大小。 程序使用DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IFFT函数中, 第一个参数是样本中FFT 的长度。 第二个参数是指向数据输入的指针。 第三个参数是指向复杂旋转因子的指针。 第四个参数是指向复杂输出数据的指针。 第五个参数是指向包含64 个条目的位反转表的指针 。如果样本的FFT长度可以表示为 4 的幂, 第六个参数是4,否则第六个参数是 2 。 第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 。 第八个参数是样本中主FFT的大小。 三、操作现象硬件连接 (1)连接仿真器和电脑的USB接口。 (2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。 操作现象 导入工程,选择Demo文件夹下的对应工程 编译工程,生成可执行文件 将CCS连接实验箱并加载程序 程序加载完成后点击运行程序 运行程序后,LCD会显示IIR滤波前后的时域波形,上方为100Hz信号与450Hz噪声组成的混合信号,下方为滤波后得到的结果(保留100Hz信号)。 点击一下LCD屏幕,会切换频域波形,上方显示原始频域信号+噪声,下方显示滤波后的频域波形,输入波形为一个低频率的正弦波与一个高频的正弦波叠加而成,通过观察频域图可知输入波形中的低频波形通过了滤波器,而高频部分被滤除。 实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验板的连接,最后实验箱断电即可。
  • 热度 1
    2023-11-8 15:17
    432 次阅读|
    0 个评论
    一、实验目的 了解FIR滤波器的特点,掌握程序算法生成滤波器系数的方法,并实现FIR滤波器滤除高频信号,并在LCD上显示结果。 二、实验原理FIR滤波器 FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。 有限脉冲响应(FIR)滤波器(N-1阶),不存在输出对输入的反馈支路,其单位脉冲h(n)是有限长。对于一个FIR滤波器系统,它的冲激响应总是有限长的,其系统函数可记为: 其中,N-1为FIR的滤波器的阶数。 带有常系数的FIR滤波器是一种LTI(线性时不变)数字滤波器。冲激响应是有限的意味着在滤波器中没有发反馈。长度为N的FIR输出对应于输入时间序列x(n)的关系由一种有限卷积和的形式给出,最基本的具体形式如下: FIR滤波器特性 有限长单位冲激响应(FIR)滤波器有以下特点: (1)系统的单位冲激响应h (n)在有限个n值处不为零。 0处收敛,极点全部在z = 0处(因果系统)。 (3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。设FIR滤波器的单位冲激响应h (n)为一个N点序列,0 ≤ n ≤N -1,则滤波器的系统函数为:H(z)=∑h(n)* z^(-n),就是说,它有(N-1)阶极点在z = 0处,有(N-1)个零点位于有限z平面的任何位置。 FIR滤波器的设计 FIR滤波器的设计比较简单,就是要设计一个数字滤波器去逼近一个理想的低通滤波器。通常这个理想的低通滤波器在频域上是一个矩形窗。 在数字信号处理中,傅里叶变换用来求取时域信号的频率成分。因此,通过对特定频率幅度和相位的响应,求取傅里叶变换的逆变换(IDFT),就可以求出满足要求的数字滤波器。 设计FIR滤波器需要提供的参数: (1)滤波器的类型:低通、高通、带通、带阻 (2)滤波器的采样频率 (3)滤波器的系数个数 (4)阻带衰减(dB) (5)通带纹波(dB) (6)过渡带带宽(Hz) 算法生成FIR滤波系数 本实验利用Kaiser窗设计一个FIR低通滤波器,有用信号为100Hz,需要滤掉的信号为450Hz。 Kaiser窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来控制窗函数旁瓣的大小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状。与其他窗相比,Kaiser窗最大的特点是可以同时调整主瓣和旁瓣宽度。 Kaiser窗的定义如下: 其中n=1,2,⋯,N-1 ,N 表示窗函数的总长度, I_0是第一类贝瑟尔函数。β是一个可调参数,可以通过改变β的值来调整窗函数的形状,从而达到不同的阻带衰减要求。 void filter_coefficient(int n, int band, float fs, float fln, float fhn, float wn, float beta, float h[]) n:滤波器阶数(偶数) band:滤波器类型,1=低通,2=高通,3=带通,4=带阻 Fs:采样频率 fln:通带上边界频率(低通) 、通带下边界频率(高通、带通、带阻) fhn:无意义(低通、高通)、通带上边界频率(带通、带阻) wn:滤波器窗体,1=retangular,2=tapered rectangular,3=triangular,4=Hanning,5=Hamming,6=Blackman,7=Kaiser beta:Kaiser窗口的β参数(3< β <10) h:滤波器系数 程序流程设计: 设计中首先要进行外设使能配置,然后进行LCD管脚复用配置和LCD中断配置,接着进行LCD显示和触摸的初始化。然后通过FIR滤波器系数算法生成滤波因子,最后产生带有噪声的原始信号并进行FIR滤波和FFT运算,将结果显示在LCD屏幕上,在循环中进行触摸检测,根据标志位判断显示时域或者频域波形。 数字信号处理库 DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多。使用DSPLIB可以缩短应用程序开发时间。 DSPLIB 3_4_0_0包括适用于 C64x+ 或 C66x 或 C674x 处理器的 Windows 或 Linux 安装可执行文件。 每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。 TMS320C6748处理器使用的是dsplib_c674x_3_4_0_0。 函数源码 FIR滤波函数 使用DSPLIB 的库来进行FIR滤波。使用时,直接包含“DSPF_sp_fir_r2.h”文件 即可。 API接口 void DSPF_sp_fir_r2(const float * x, const float * h,float *restrict r, const int nh, const int nr); 程序使用DSPLIB 的库来进行FIR滤波,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的FIR滤波函数中: 第一个参数是指向大小为nr+nh-1 的输入数组的指针。 第二个参数是指向大小为nh 的系数数组的指针。 第三个参数是指向大小为nr 的输出数组的指针。 第四个参数是系数个数。 第五个参数是输出样本数 FFT运算函数 使用DSPLIB 的库来进行FFT运算。使用时,直接包含“DSPF_sp_fftSPxSP.h”文件 即可。 API接口 void DSPF_sp_fftSPxSP(int N, float *ptr_x, float *ptr_w, float *ptr_y, unsigned char *brev, int n_min, int offset, int n_max); 程序使用DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的FFT函数中: 第一个参数是样本中FFT 的长度, 第二个参数是指向数据输入的指针。 第三个参数是指向复杂旋转因子的指针。 第四个参数是指向复杂输出数据的指针。 第五个参数是指向包含64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂, 第六个参数是4,否则 第六个参数是 2 。 第七个参数是从主FFT开始的样本中的子 FFT偏移索引 。 第八个参数是样本中主FFT的大小。 FFT逆变换函数 使用DSPLIB 的库来进行FFT逆变换。使用时,直接包含“DSPF_sp_ifftSPxSP.h”文件 即可。 API接口 void DSPF_sp_ifftSPxSP (int N, float *ptr_x, float *ptr_w, float *ptr_y, unsigned char *brev, int n_min, int offset, int n_max); 程序使用DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IFFT函数中: 第一个参数是样本中FFT 的长度。 第二个参数是指向数据输入的指针。 第三个参数是指向复杂旋转因子的指针。 第四个参数是指向复杂输出数据的指针。 第五个参数是指向包含64 个条目的位反转表的指针 。如果样本的FFT长度可以表示为 4 的幂, 第六个参数是4,否则第六个参数是2 。 第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 。 第八个参数是样本中主FFT的大小。 三、操作现象实验设备 硬件连接 (1)连接仿真器和电脑的USB接口。 (2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。 软件操作 导入工程,选择Demo文件夹下的对应工程 编译工程,生成可执行文件 将CCS连接实验箱并加载程序 程序加载完成后点击运行程序 运行程序后,LCD会显示FIR滤波前后的时域波形,上方为100Hz信号与450Hz噪声组成的混合信号,下方为滤波后得到的结果(保留100Hz信号)。 点击一下LCD屏幕,会切换频域波形,上方显示原始频域信号+噪声,下方显示滤波后的频域波形,输入波形为一个低频率的正弦波与一个高频的正弦波叠加而成,通过观察频域图可知输入波形中的低频波形通过了滤波器,而高频部分被滤除。 实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验板的连接,最后实验箱断电即可。
  • 热度 2
    2023-10-25 14:45
    1116 次阅读|
    0 个评论
    一、实验目的 学习McASP管脚的使用方法,掌握音频采集播放的原理和过程,并实现音频的采集与播放。 二、实验原理1、原理图 (1) 音频接口采用的是24.576MHz(读兆赫兹)晶振。 (2)实验板上共有3个音频端口,分别是LINE IN、MIC IN和LINE OUT。 (3)音频数据是通过I2C总线进行读写的。 (4)McASP(字母)的时钟来自于晶振时钟,分频后可得到帧同步信号和位同步信号。 2、功能框图 (1)数据精度支持 16/20/24/32 bit 。 (2)支持速率 8kHz ~ 96kHz 。即采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,单位时间的点越多声音的信息也就越完善,当然也就更接近于真实。 (3)控制总线可选为 SPI 或 I2C。 (4)音频串行数据总线支持4种协议格式: I2S, 左对齐格式,右对齐格式,DSP格式。 (5)有可编程PLL 可以灵活产生时钟。 3、音频芯片功能框图 (1)在框图底部分别是供电部分、时钟产生部分、SPI或I2C串行总线控制部分。 (2)芯片通过左右声道采集输入的音频模拟信号。 (3)经过ADC采样后得到数字化的音频数据。 (4)数字化音频数据通过音频串行总线接口传输到DSP。 (5)DSP处理之后的数字化音频从DSP通过音频串行总线接口再传输到DAC。 (6)音频经过DAC还原为可输出的模拟信号。 (7)最后,通过耳机或者音箱输出音频模拟信号。 通过框图的讲解,我们可以总结出音频芯片的工作流程。音频模拟信号通过左右声道分别采样,经过ADC转换为数字信号后通过McASP传输到DSP,在DSP处理完成后再通过McASP传输到DAC,最后经过DAC转换为模拟信号后,分左右声道输出。 4、McASP(Multichannel Audio Serial Port) 通用音频串行端口 (1)McASP包括发送和接收部分,它们之间可以同步运行,也可以完全独立地使用各自的主时钟,位时钟和帧同步信号,并且可以使用具有不同位流格式的传输模式。 (2)McASP模块包括16个串行器,可以单独激活来进行发送或接收。另外, 所有的McASP引脚都可以被配置为通用输入输出(GPIO)引脚。 (3)McASP 传输模式 :突发传输模式 、时分复用TDM传输模式 和数字音频接口DIT传输模式。 5、McASP传输模式--时分复用模式 TDM就是时分复用模式。时分复用是指一种通过不同信道或时隙中的交叉位脉冲,同时在同一个通信媒体上传输多个数字化数据、语音和视频信号等的技术。 使用这种技术,就允许两个以上的信号或者数据流在同一条通信线路上传输。每个信号 或数据流轮流占用物理通道。 (1) TDM 格式可以用于DSP芯片与一个或多个模-数转换器(ADC),数-模转换器(DAC)之间的数据传输。 (2) TDM格式包括三部分:时钟、数据和帧同步信号。 (3)一帧包括多个通道。每一个TDM帧是由帧同步信号来定义的(AFSX或AFSR)。 (4)数据传输是连续的,在单元之间没有延迟。 (5)系统中发送端和接收端每个单元的位数要一致,因为单元边界不是由帧同步信号决定的 McASP 发送器和接收器支持多通道传输,通过TDM传输模式可以使用符合时分复用(TDM)格式的数据流。在这种传输模式下,兼容I2S协议的设备。I2S协议主要用于音频数据的传输。数据的最高位与声道选择信号之间会有1个bit的延迟。一帧数据里包含两个数据单位,分别传输左声道和右声道的数据。 访问McASP的途径有两种,第一种是使能FIFO,第二种是禁用FIFO。两种途径都需要配置DMA总线和外配总线。 6、程序流程 程序流程设计中首先要进行I2C和McASP的管脚复用配置,接着使能EDMA3的PSC并初始化DSP中断,然后进行音频芯片的初始化,并将McASP初始化为EDMA方式。最后进行音频数据的接收交换处理并不断输出音频数据。 6、源码管脚复用源码 基于StarterWare控制外设时可调用对应的API接口,无需配置复杂的寄存器。I2C和McASP管脚复用配置的函数源码可以分别查看I2C.c和McASP.c。 DMA(Direct Memory Access)直接内存存取 (1)CPU把数据传送的源、目的、数据个数等信息交给DMA,让DMA控制数据传输,在此期间,CPU可以运行其他程序,等到DMA控制的数据传输完成,发送中断告诉CPU数据传输完成了,让CPU处理数据,因而提高了算法的速度。 (2)TI公司为TMS320C6748量身设计了增强版直接存储器访问控制器EDMA3。 EDMA3一共有32个通道,通道的优先级可选,可以实现数据传输的无缝链接,利用EDMA,可以实现片内存储器、片内外设以及外部存储器之间的数据传输。 (3)增强型内存直接访问控制器(EDMA3)是一种高性能,多通道,多线程 DMA 控制器,允许用户编程传输一维和多维大量数据 ,能够不依赖CPU 进行数据的搬移。 三、操作现象1、实验设备 本实验使用的硬件接口为LINE IN和LINE OUT接口,所需硬件为实验板、仿真器、电源、音频线、耳机和音乐播放器。本次操作是使用手机来播放音乐。 2、软件操作 导入工程,选择Demo文件夹下的对应工程 编译工程,生成可执行文件 将CCS连接开发板并加载程序 点击运行程序 通过耳机即可听到手机播放的音乐。 实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验板的连接,最后实验箱断电即可。