- 2024-08-01
-
发表了主题帖:
专科、本科、研究生是按照什么分类的?
高等教育按照阶段主要分为以下几类
一、专业学位教育
特点:职业导向
专业学位教育是针对特定职业领域的专业培训,如医学、法律、工程等,旨在使学生具备从事相关职业所需的专业知识和实践技能。
实践性
专业学位教育注重实践教学和职业技能的培养,通过实习、实训等方式提高学生的实践能力和职业素养。
学历与证书
学生完成学业并达到要求后,可获得相应的专业学位证书,这些证书在相关职业领域内具有较高的认可度。
综上,高等教育每个阶段都有其独特的教育目标和特点,共同构成了高等教育体系的重要组成部分。
二、本科教育
特点:基础性与通识性
本科教育是高等教育的基础阶段,强调基础知识和专业技能的培养,以及通识教育的普及,使学生具备宽广的知识面和扎实的理论基础。
学制与学位
学制为四年(部分专业如医学、建筑学等为五年),学生完成学业并达到要求后,可获得学士学位。
教育形式
全日制本科教育为主,同时也有非全日制本科教育(如自考本科、成人高考等),为不同需求的学生提供灵活的学习路径。
三、研究生教育
研究生教育分为硕士研究生教育和博士研究生教育。
硕士研究生教育
特点:专业性
硕士研究生教育更侧重于某一学科领域的深入研究,培养学生在该领域的专业能力和科研素养。
学制与学位
学制一般为两到三年,学生完成学业并达到要求后,可获得硕士学位。
分类
包括学术型硕士和专业型硕士两种。学术型硕士侧重于科研和教学能力的培养,而专业型硕士则更侧重于职业技能和实践能力的提升。
博士研究生教育
特点:高端性与创新性
博士研究生教育是高等教育的最高层次,旨在培养能够独立从事科学研究工作的专门人才,强调创新能力和科研水平的培养。
学制与学位
学制一般为三到六年,学生需完成严格的课程学习、科研实践和学位论文撰写等工作,通过严格的评审和答辩程序后,方可获得博士学位。
挑战性
博士研究生教育具有较高的挑战性,要求学生具备深厚的学术功底、敏锐的科研洞察力和扎实的实践能力。
- 2024-07-25
-
发表了主题帖:
DSP教学实验箱_数字图像处理操作_案例分享:5-13 灰度图像二值化
一、实验目的
学习灰度图像二值化的原理,掌握图像的读取方法,并实现在LCD上显示二值化前后的图像。
二、实验原理
图像二值化
图像的二值化处理就是将图像上的点的灰度置为 0 或 255,也就是将整个图像呈现出明显的黑白效果。即将 256 个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为 0 或 255 的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。
为了得到理想的二值图像,一般采用封闭、连通的边界定义不交叠的区域。所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为 255 表示,否则这些像素点被排除在物体区域以外,灰度值为 0,表示背景或者例外的物体区域。如果某特定物体在内部有均匀一致的灰度值,并且其处在一个具有其他等级灰度值的均匀背景下,使用阈值法就可以得到比较的分割效果。如果物体同背景的差别表现不在灰度值上(比如纹理不同),可以将这个差别特征转换为灰度的差别,然后利用阈值选取技术来分割该图像。动态调节阈值实现图像的二值化可动态观察其分割图像的具体结果。
常用的二值化方法有3种,第一种方法是取阈值为128(相当于0~255的中数(0+255)/2=128),让灰度值小于等于128的变为0(黑色),灰度值大于128的变为255(白色)。
优点:计算量小且速度快。
缺点: 因为这个阈值在不同的图片中均为127,但是不同的图片,他们的颜色分布差别很大,所以用127做阈值,效果肯定是不好的。
第二种方法是计算像素点矩阵中的所有像素点的灰度值的平均值avg(像素点1灰度值+...+像素点n灰度值)/ n = 像素点平均值avg,然后让每一个像素点与avg一 一比较,小于等于avg的像素点就为0(黑色),大于avg的 像素点为255(白色)。
第三种方法是使用直方图方法(也叫双峰法)来寻找二值化阈值,直方图是图像的重要特质。直方图方法认为图像由前景和背景组成,在灰度直方图上,前景和背景都形成高峰,在双峰之间的最低谷处就是阈值所在。取到阀值之后再一一比较就可以了。
程序流程
程序流程设计中首先读取工程目录下的BMP图像,接着进行二值化处理,最后保存图像。
三、操作现象
实验设备
本实验所需硬件为实验板、仿真器、LCD和电源。
先来了解一下DSP的开发流程,开发过程中,首先选择CCS的工作区,接着导入、编译工程,完成软件开发后进行硬件连接,再配置仿真器文件,加载GEL文件,最后将CCS连接实验箱,加载并运行程序。
硬件连接
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,CCS的Console窗口会打印相关信息。
稍等片刻后,图像处理完成,程序执行完成后会在断点处停下。
可以通过 CCS 的图像显示窗口查看处理前后的图片对比。
点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的 in.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。
txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 in.txt 文件的设置参数。
再次点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的out.txt 配置文件,选择后等待图片加载,加载完成后显示二值化后的图片。
在 Properties 属性可看到out.txt 文件的设置参数。
同时,可在工程的Image 目录下直接查看转换后的图片 Out.bmp。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-07-19
-
发表了主题帖:
基于DSP C6000教学实验箱_数字图像处理教程:5-9 图像反色实验案例分享
一、实验目的
学习图像反色的原理,掌握图像的读取方法,并实现图像反色。
二、实验原理
图像反色
反色的实际含义是将R、G、B值反转。若颜色的量化级别是256,则新图的R、G、B值为255减去原图的R、G、B值。这里针对的是所有图,包括真彩图、带调色板的彩色图(又称为伪彩色图)、和灰度图。真彩图不带调色板,每个象素用3个字节,表示R、G、B三个分量。所以处理很简单,把反转后的R、G、B值写入新图即可,比如一个点的颜色为(0,0,0),反色后为(255,255,255)。带调色板的彩色图,其位图中的数据只是对应调色板中的一个索引值,我们只需要将调色板中的颜色反转,形成新调色板,而位图数据不用动,就能够实现反转。
图像缩放
设输入图像为(R,G,B) ,那么图像反色的公式为:
(R,G,B) => (255-R,255-G,255-B)
程序流程设计
程序流程设计中首先要读取工程目录下的BMP图像,接着进行反色处理,最后保存图像。
三、操作现象
本实验所需硬件为实验板、仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,CCS的Console窗口会打印相关信息。
稍等片刻后,图像处理完成,程序执行完成后会在断点处停下。
可以通过 CCS 的图像显示窗口查看处理前后的图片对比。
点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的 in.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。
txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 in.txt 文件的设置参数。
再次点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的out.txt 配置文件,选择后等待图片加载,加载完成后显示反色后的图片。
在 Properties 属性可看到out.txt 文件的设置参数。
同时,可在工程的Image 目录下直接查看转换后的图片 Out.bmp。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-07-12
-
发表了主题帖:
DSP国产教学实验箱_嵌入式教程:5-7 直方图均衡化
一、实验目的
学习直方图均衡化的原理,掌握图像的读取方法,并实现直方图均衡化,增强图片效果。
二、实验原理
直方图均衡化
图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法。直方图拉伸是通过对比度拉伸对直方图进行调整,从而“扩大”前景和背景灰度的差别,以达到增强对比度的目的,这种方法可以利用线性或非线性的方法来实现;直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。
直方图均衡化(Histogram Equalization)又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。
直方图可以表示数字图像中每一灰度出现频率的统计关系。直方图能给出图像灰度范围、每个灰度的频度和灰度的分布、整幅图像的平均明暗和对比度等概貌性描述。灰度直方图是灰度级的函数,反映的是图像中具有该灰度级像素的个数,其横坐标是灰度级 r,纵坐标是该灰度级出现的频率(即像素的个数) pr( r),整个坐标系描述的是图像灰度级的分布情况,由此可以看出图像的灰度分布特性,即若大部分像素集中在低灰度区域,图像呈现暗的特性;若像素集中在高灰度区域,图像呈现亮的特性。
直方图均衡化,即将随机分布的图像直方图修改成均匀分布的直方图。
基本思想是对原始图像的像素灰度做某种映射变换,使变换后图像灰度的概率密度呈均匀分布。这就意味着图像灰度的动态范围得到了增加,提高了图像的对比度。
设变量 r 代表图像中像素灰度级。对灰度级进行归一化处理,则 0≤r≤1, 其中 r= 0 表示黑,r= 1 表示白。
对于一幅给定的图像来说,每个像素值在[ 0,1] 的灰度级是随机的。用概率密度函数来P _r(r)表示图像灰度级的分布。为了有利于数字图像处理,引入离散形式。在离散形式下,用r^k代表离散灰度级,用P _r(r^k)代表 P _r(r),并且下式成立:
其中,0≤r^k≤1,k=0,1,2,…,n-1。式中n^k为图像中出现r^k这种灰度的像素数,
n 是图像中的像素总数,而n^k/n就是概率论中的频数。
图像进行直方图均衡化的函数表达式为:
式中,k 为灰度级数。相应的反变换为:
程序流程设计
程序流程设计中首先要读取工程目录下的BMP图像,接着进行直方图均衡化处理,最后保存图像。
三、操作现象
本实验所需硬件为实验板、仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
运行程序后,CCS的Console窗口会打印相关信息。
稍等片刻后,图像处理完成,程序执行完成后会在断点处停下。
可以通过CCS 的图像显示窗口查看处理前后的图片对比。
点击工具,选择图像分析工具。在弹出的Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的 in.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。
txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 in.txt 文件的设置参数。
再次点击工具,选择图像分析工具。在弹出的Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的out.txt 配置文件,选择后等待图片加载,加载完成后显示转换后的图片。
在Properties 属性可看到out.txt 文件的设置参数。
同时,可在工程的Image 目录下直接查看转换后的图片 Out.bmp。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-06-28
-
发表了主题帖:
国产Cortex-A55人工智能教学实验箱_基于Python机械臂跳舞实验案例分享
一、实验目的
本实验通过TL3568-PlusTEB教学实验箱修改机械臂不同舵机的角度,增加延迟时间,从而做到机械臂跳舞的效果。
二、实验原理
ROS(机器人操作系统)
ROS(机器人操作系统),是专为机器人软件开发所设计出来的一套电脑操作系统架构。
ROS是一个开源的元级操作系统(后操作系统),提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。
机械臂通过ROS机器人操控系统,简化了6自由度串行总线舵机复杂运动控制,可实现机械臂正解、反解、运动规划、机械碰撞检测、夹取分拣等功能。
虚拟机(Virtual Machine)
机械臂由虚拟机生成控制决策,STM32控制器驱动机械臂。
虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。
每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
机械臂自由度
机械手自由度,是指传送机构机械手的运动灵活性。通常把传送机构的运动称为传送机构的自由度。
人从手指到肩部共有27个自由度。而如将机械手的手臂也制成这样多的自由度,既困难又不必要。
从力学的角度分析,物件在空间只有6个自由度。因此为抓取和传送在空间不同位置和方位物件,传送机构也应具有6个自由度。
实验程序流程
1、创建机械臂对象
2、机械臂循环跳舞:让舵机复位归中
三、操作现象
如视频所示
- 2024-06-25
-
发表了主题帖:
DSP教学实验箱操作教程_数字图像处理:5-5 灰度图像直方图
一、实验目的
学习直方图统计的原理,掌握图像的读取方法,并实现灰度图像的直方图统计结果。
二、实验原理
灰度直方图
灰度直方图是关于灰度级分布的函数,是对图像中灰度级分布的统计。它是将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。因此灰度直方图是灰度
级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。
直方图是用来整理计量值的观测数据,分析其分布状态的统计方法,用于对总体的分布特征进行推断。直方图的作用如下:
(1)检验数据分布的类型,分析数据是否服从正态分布,判断数据有无异常;
(2)与产品规格界限做比较,可直观地判断分布中心是否偏离规格中心,以确定是否需要调整并求出其调整量;还可判断数据分布的散差(分布范围)是否满足规格范围的要求,以确定是否采取缩小散差的技术性措施;
(3)用于进行过程能力调查和不合格品率估计;
(4)客观地反映操作者的技术水平和主观努力程度。
从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分。也可以直接从代表每种灰度的象素数目的直方图来观察。
灰度直方图的计算是很简单的,依据定义,若图象具有L(通常 L=256,即 8 位灰度级)
级灰度,则大小为MxN 的灰度图象 f(x,y)的灰度直方图 hist[0…L-1]可用如下计算获得:
(1)初始化 hist[k]=0 ; k=0,…,L-1
(2)统计 hist[f(x,y)]++ ; x, y =0,…,M-1, 0,…,N-1
(3)标准化 hist[f(x,y)]/=M*N
程序设计
程序流程设计中首先要读取工程目录下的BMP图像,接着进行直方图统计,最后保存统计结果。
视频分析与视觉库
VLIB 是一个TI 的软件库,可加速视频分析开发并将性能提高多达 10 倍。VLIB 是针对 C6x DSP 内核优化的可扩展库。包括的40 多个内核的集合可以实现背景建模与减法、对象特征提取、追踪与识别和低级像素处理。
包括适用于C64x+、C674x 和 C66x 处理器的 Windows 和 Linux 安装可执行文件。每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。
TMS320C6748处理器使用的是vlib_c674x_3_3_2_0。
本实验中的直方图统计算法是基于TI提供的视频分析与视觉库完成的。 VLIB 包含可以实现背景建模与减法、对象特征提取、追踪与识别和低级像素处理的40多个内核。 调用这些例程可加速视频分析开发并将性能提高多达 10 倍。实验中使用的是vlib_c674x_3_3_2_0。
将VLIB安装到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后查看。调用的直方图统计函数中,第一个参数是输入图像的数组,第二个参数是输入图像数组的元素个数。第三个参数是直方图的区间数。第四个参数是直方图中该区域的像素增量。第五个参数是指向内部使用的缓冲器。第六~第八个参数是指向内部使用的数组。第九个参数是用来保存直方图计算结果的数组。
三、操作现象
本实验所需硬件为实验板、仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,CCS的Console窗口会打印相关信息。
稍等片刻后,处理完成,程序执行完成后会在断点处停下。
可以通过CCS 的图像显示窗口查看原始灰度图像。
点击工具,选择图像分析工具。在弹出的Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的HIST.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。
txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 HIST.txt 文件的设置参数。
点击CCS 菜单"Tools->Graph->Single Time",在弹出的界面中设置相关参数,可查看直方图计算的结果。
点击"Window->Show View->Expressions",输入 H 变量,可观察 H 变量的数值。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-06-20
-
发表了主题帖:
DSP C6000教学实验箱操作教程_数字图像处理:5-3 图像缩放
一、实验目的
学习图像缩放的原理,掌握图像的读取方法,并实现图像缩放。
二、实验原理
图像缩放
在计算机图像处理和计算机图形学中,图像缩放是指对数字图像的大小进行调整的过程。图像缩放是一种非平滑的过程,需要在处理效率以及结果的平滑度和清晰度上做一个权衡。当一个图像的大小增加之后,组成图像的像素的可见度将会变得更高,从而使得图像表现得“软”。相反地,缩小一个图像将会增强它的平滑度和清晰度。
图像缩放包含图像缩小和图像放大。常用的图像缩放算法有:最邻近插值、双线性内插值和双三次插值法。
最邻近插值法
在 DSP 平台上,有限的高速存储资源限制了这些算法效率的直接发挥,需要针对算法及 DSP 平台的性能结构特点进行高效的数据调度。最邻近插值是最为简单的插值方法,就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色。在图像中最小的单位就是单个像素,但是在旋转个缩放的过程中如果出现了小数,那么就对这个浮点坐标进行简单的取整,得到一个整数型坐标,这个整数型坐标对应的像素值就是目标像素的像素值。取整的方式就是:取浮点坐标最邻近的左上角的整数点。
优点:简单且直观,速度也最快,计算简单,硬件实现所需资源少。
缺点:得到的图像质量低,特别是放大低质量的图像可能产生明显锯齿。
最邻近插值的的思想很简单,就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色。
将一个图像放大 N 倍,假设目标图像中(x,y)坐标对应的源图像坐标为(x_0,y_0)。
则可得到以下公式:
例如:将一个 33 的图像放大为 44 的图像,就相当于放大了 4/3 倍,则目标图像中
(1,3)坐标对应的源图像坐标为(1,2)。
程序流程设计
程序流程设计中首先要读取工程目录下的BMP图像,接着进行缩放处理,最后保存缩放处理后的图像。
三、操作现象
本实验所需硬件为实验板、仿真器、LCD和电源。
硬件连接
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,CCS的Console窗口会打印相关信息。
稍等片刻后,图像处理完成,程序执行完成后会在断点处停下。
可以通过 CCS 的图像显示窗口查看处理前后的图片对比。
点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的 in.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。
txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 in.txt 文件的设置参数。原图的尺寸为640*380。
再次点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的out.txt 配置文件,选择后等待图片加载,加载完成后显示缩放后的图片。
在 Properties 属性可看到out.txt 文件的设置参数。放大后的图片尺寸为960*570。
同时,可在工程的Image 目录下直接查看转换后的图片 Out.bmp。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-06-07
-
发表了主题帖:
怎么建设高性能多核DSP+FPGA实验室?一起来河北工程大学看看
河北工程大学是河北省重点骨干大学,河北省人民政府与水利部共建高校,河北省重点支持的国内一流大学建设高校,河北省文明单位,坐落在中国历史文化名城、“成语典故之都”邯郸市。
学校现有工学、理学、管理学、农学、医学、文学、经济学、法学、艺术学、教育学、历史学11个学科门类。招生专业72个,其中工程类专业47个,占比达65.2%。拥有河北省唯一的服务国家特殊需求博士人才培养项目—水资源水环境调控及综合管理,拥有河北省唯一的水利工程博士后科研流动站。工程学学科进入ESI排名全球前1%。拥有水利工程、地质资源与地质工程、机械工程、管理科学与工程等17个硕士学位授权一级学科
机械与装备工程学院是河北工程大学办学历史最悠久的学院之一,学院设有6个教学系,建设有机械设计制造及其自动化、车辆工程、材料成型及控制工程、机器人工程、测控技术与仪器、机械电子工程(3+4)等6个本科专业。建设有1个国家级一流本科专业“机械设计制造及其自动化”,1个省级一流本科专业“车辆工程”,1个新工科专业“机器人工程”,“测控技术与仪器”专业已经通过工程教育认证申请。
实验室状态
创龙教仪联合河北工程大学共同建设高性能DSP+FPGA教学平台,在机械与装备工程学院-精密测量实验室,针对DSP+FPGA课程,探讨了该课程的应用方向,制定学生课程学习的培养计划。
参与交流的黄老师,孙老师等和学生们对TL6678F-TEB相关实验案例表现出十足的热情,并对创龙教仪专业的技术能力与认真的工作态度表示了肯定。
面对日新月异的技术发展,创龙教仪在不断学习与探索新技术与高校新需求之间的联系,并通过与高校间的交流学习助力高校培养能够适应新社会生产需求的高级人才,以响应国家 二十大 **“产教融合”**的方针!
特色案例
实验名称:
CameraLink工业相机实时检测与处理综合实验
实验目的:
(1)了解TI C66x DSP和Xilinx FPGA平台的优势和应用。
(2)了解CameraLink工业相机和MJPEG。
(3)学习基于TI C6678 DSP和Xilinx FPGA实现CameraLink工业相机实时检测与处理。
实验原理:
CameraLink工业相机简介
CameraLink工业相机是指具有CameraLink接口满足工业要求的相机。CameraLink接口是由AIA协会推出的数字图像信号串行通讯接口协议,是在ChannelLink技术基础上发展而来的。CameraLink标准支持的最高数据传输率可达680MB/s。
FPGA端作为SRIO Initiator,DSP端作为SRIO Target。FPGA端通过SRIO SWRITE和乒乓方式,将数据传输至DSP端的0x90000000和0x90500000的DDR地址空间。
DSP端project目录下包括两个工程,分别为主核工程与从核工程。主核工程编译后默认生成的可执行文件适用于DSP ETH1网口,如需重新生成适用于DSP ETH0网口的可执行文件,请参考关键代码小节进行源码修改。从核工程编译后生成的可执行文件为srio_image_processing_slave.out。
工程解析
Image_processing_master任务调用mc_process_init函数,初始化和打开对应消息队列,用于传输消息。
默认使用DHCP模式自动获取DSP ETH1网口IP地址。如需修改为静态IP地址,或修改为使用DSP ETH0网口,可参考如下说明进行配置。
本案例使用Serial RapidIO Gen2 IP核实现SRIO Initiator,使用HELLO(Header Encoded Logical Layer Optimized)格式,支持NREAD、NWRITE、NWRITE_R、NWRITE_R、DOORBELL、MESSG等Response Packet操作。
实验设备
硬件:TL6678F-TEB,CameraLink黑白相机(型号:RS-A5241-CM107-S00),CameraLink视频采集模块(型号:TLCameraLinkF),路由器(动态IP需要,如采用静态IP方式可不需要)。
软件:Vivado2017.4,CCS5.5,Windows7以上操作系统。
硬件连接
(1)用Micro USB串口线将PC端连接实验主板调试串口。
(2)连接好实验箱的电源和仿真器。
(3)将FPGA下载器连接开发板FPGA端JTAG接口(CON10)到PC端。
(4)打开设备管理器查看Enhanced COM port口的COM口号、查看仿真器和下载器连接是否正常。
(5)打开并设置串口调试软件,波特率为115200。
(6)将TLCameraLinkF模块连接至评估板FPGA FMC2接口,评估板J1跳线帽选择2.5V档位,以配置FMC IO的BANK电压为2.5V。请将CameraLink相机的CL0通过数据线连接至TLCameraLinkF模块的CON1接口,将CameraLink相机的CL1通过数据线连接至TLCameraLinkF模块的CON2接口。
(7)用网线连接实验主板和路由器,实验主板默认ETH1口,要保证开发板与PC端保持在同一网段下。
(8)拨码开关拨到NO BOOT模式:000XX(备注:XX为1或0均可)。
(9)实验箱上电。
实验现象
在PC机浏览器输入评估板IP地址打开网页界面,在网页界面中选择处理核心数量为Eight cores,选择本案例所使用相机的最高处理帧率为107fps。
点击"Program Item",网页将显示经DSP端进行Sobel(边缘检测)算法处理后的图像。
同时,DSP端串口调试终端将会打印处理信息。
- 2024-06-06
-
发表了主题帖:
DSP教学实验箱操作教程:4-12 多路信号混频实验(自定义输入信号)
一、实验目的
了解数字信号混叠,实现信号的混频处理并使用FFT算法对混频信号进行处理并分析频谱。
二、实验原理
信号混频
混频信号:两路信号进行相加,并对结果的幅度进行限制,从而产生混合后的输出波形。
(1)输入信号的产生:外部信号输入和自定义信号输入。在本实验中采用的是自定义信号输入,自定义两路输入信号分别为:f1(t) = 4sin (20πt − π/3)和f2(t) = sin (200πt )。
(2)混频信号的频谱分析:对混频后的信号利用 FFT 算法进行快速傅里叶变换,得到混频信号的频谱图。经过信号频谱的分析,可知,混频后的信号频谱与原信号频谱的关系为:混频信号的频谱为原信号在频谱上的叠加。
程序流程设计
设计中首先在程序中自定义生成两路信号,接着将两路信号混频相加,最后将混频信号转为复数模式,并对混频信号进行FFT变换。
dsplib_c674x_3_4_0_0
将DSPLIB安装到CCS5.5 的安装路径,安装完成后会有相应的文件夹出现。源码所在路径:\dsplib_c674x_3_4_0_0\packages\ti\dsplib\src
函数源码
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连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,程序执行完成后会在断点处停下,可以通过CCS的图形显示工具查看波形。
首先查看两路输入波形,点击工具,选择图像显示,选择双曲线图显示;点击Import,选择导入工程配置好的属性,可以看到图像的属性配置,点击确认后可看到两路输入波形。
接着查看两路输入波形的幅度频谱,点击工具,选择图像显示,选择FFT幅度;点击Import,选择导入工程配置好的属性,可以看到图像的属性配置,点击确认后可看到一路输入波形的幅度频谱。再次点击工具,选择图像显示,选择FFT幅度;点击Import,选择导入工程配置好的属性,可以看到图像的属性配置,点击确认后可看到另外一路输入波形的幅度频谱。
最后查看混频后的波形和幅度频谱,点击工具,选择图像显示,选择双曲线图显示;点击Import,选择导入工程配置好的属性,可以看到图像的属性配置,点击确认后可看到混频波形及频谱。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-05-22
-
发表了主题帖:
DSP嵌入式教学实验箱操作教程:4-5 无限冲激响应滤波器(IIR)算法(MATLAB 辅助
本帖最后由 创龙教仪 于 2024-6-6 14:05 编辑
一、实验目的
本节视频的目的是了解IIR滤波器的特点,掌握Matlab辅助设计滤波器系数的方法,并实现IIR滤波器滤除高频信号。
二、实验原理
IIR滤波器
IIR无限冲激响应数字滤波器(infinite impulse response digital filter)是对单位冲激的输入信号的响应为无限长序列的数字滤波器。可分为一维、二维或多维无限冲激响应数字滤波器。它的输出y(n)由当前的和过去的输入信号x(n)及过去的输出信号共同决定。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;
滤波器设计分析工具
设置好参数后,转换为单精度再导出生成包含滤波器系数的.h头文件,将该头文件的数据复制,即可用于IIR函数。
程序流程设计
设计中首先产生带有噪声的原始信号,接着进行IIR滤波,最后截取滤波后有用的信号输出。
数字信号处理库
DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多。使用DSPLIB可以缩短应用程序开发时间。
DSPLIB 3_4_0_0包括适用于 C64x+ 或 C66x 或 C674x 处理器的 Windows 或 Linux 安装可执行文件。 每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。
TMS320C6748处理器使用的是dsplib_c674x_3_4_0_0。
dsplib_c674x_3_4_0_0
将DSPLIB安装到CCS5.5 的安装路径,安装完成后会有相应的文件夹出现。源码所在路径:\dsplib_c674x_3_4_0_0\packages\ti\dsplib\src
函数源码
IIR滤波函数
使用 DSPLIB 的库来进行FIR滤波。使用时,直接调用“DSPF_sp_iir.h”文件即可。
API接口
void DSPF_sp_iir (float* restrict y1, const float* x, float* restrict y2, const float* hb, const float* ha, int nr);
程序使用 DSPLIB 的库来进行IIR滤波,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IIR滤波函数中,第一个参数是延迟元素值。第二个参数是指向输入数组的指针。 第三个参数是指向输出数组的指针。第四个参数是自回归滤波器系数。第五个参数是动态平均滤波器系数。第六个参数是输出样本数。
三、操作现象
本实验所需硬件为实验板、仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口。
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,程序执行完成后会在断点处停下。
接下来通过CCS的图形窗口查看FIR的滤波结果。
先点击 CCS 菜单"Tools->Graph->Single Time",在弹出的界面中设置相关参数,查看原始时域信号+噪声波形。
再次点击 CCS 菜单"Tools->Graph->Single Time",在弹出的界面中设置相关参数,可查看滤波后时域信号波形。
然后点击CCS菜单"Tools->Graph->FFT Magnitude",在弹出的界面中设置相关参数,查看原始频域信号+噪声波形。
再次点击CCS菜单"Tools->Graph->FFT Magnitude",在弹出的界面中设置相关参数,查看滤波后频域信号波形。
对比滤波前后的波形,可知,输入波形中的低频波形通过了滤波器,而高频部分被滤除。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-05-16
-
发表了主题帖:
DSP教学实验箱_DSP算法实验_嵌入式教程:4-3 有限冲激响应滤波器(FIR)算法(CCS...
一、实验目的
了解FIR滤波器的特点,掌握程序算法生成滤波器系数的方法,并实现FIR滤波器滤除高频信号
二、实验原理
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值处不为零。
(2)系统函数H(z)在|z|>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 滤波器软件实现方法有两种,一种是借助Matlab工具生成滤波器,另外一种是纯算法生成滤波器。本实验中是通过FIR滤波器系数算法生成滤波因子。
算法生成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:滤波器系数
程序流程设计
设计中首先生成FIR滤波器系数,然后产生带有噪声的原始信号,接着进行FIR滤波,最后截取滤波后有用的信号输出。
数字信号处理库
DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多。使用DSPLIB可以缩短应用程序开发时间。
DSPLIB 3_4_0_0包括适用于 C64x+ 或 C66x 或 C674x 处理器的 Windows 或 Linux 安装可执行文件。 每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。
TMS320C6748处理器使用的是dsplib_c674x_3_4_0_0。
dsplib_c674x_3_4_0_0
将DSPLIB安装到CCS5.5 的安装路径,安装完成后会有相应的文件夹出现。源码所在路径:\dsplib_c674x_3_4_0_0\packages\ti\dsplib\src
函数源码
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);
三、操作现象
实验设备
本实验所需硬件为实验板、仿真器和电源。
操作现象
硬件连接
(1)连接仿真器和电脑的USB接口。
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,程序执行完成后会在断点处停下。
接下来通过CCS的图形窗口查看FIR的滤波结果。
先点击 CCS 菜单"Tools->Graph->Single Time",在弹出的界面中设置相关参数,查看原始时域信号+噪声波形。
再次点击 CCS 菜单"Tools->Graph->Single Time",在弹出的界面中设置相关参数,可查看滤波后时域信号波形。
然后点击CCS菜单"Tools->Graph->FFT Magnitude",在弹出的界面中设置相关参数,查看原始频域信号+噪声波形。
再次点击CCS菜单"Tools->Graph->FFT Magnitude",在弹出的界面中设置相关参数,查看滤波后频域信号波形。
对比滤波前后的波形,可知,输入波形中的低频波形通过了滤波器,而高频部分被滤除。
实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-05-10
-
发表了主题帖:
DSP ARM FPGA 实验箱_音频处理_滤波操作教程:3-9 音频信号的滤波实验
一、实验目的
掌握Matlab辅助设计滤波器系数的方法,并实现音频混噪及IIR滤波器滤除,并在LCD上显示音频信号的FFT计算结果。
二、实验原理
音频接口采用的是24.576MHz(读兆赫兹)晶振,实验板上共有3个音频端口,分别是LINE IN、MIC IN和LINE OUT,音频数据是通过I2C总线进行读写的,McASP(字母)的时钟来自于晶振时钟,分频后可得到帧同步信号和位同步信号。
TLV320AIC3106音频芯片
(1)数据精度支持 16/20/24/32 bit 。
(2)支持速率 8kHz ~ 96kHz 采样率。
(3)控制总线可选为 SPI 或 I2C。
(4)音频串行数据总线支持4种协议格式: I2S, 左对齐格式,右对齐格式,DSP格式。
(5)有可编程PLL 可以灵活产生时钟。
音频芯片功能框图
(1)在框图底部分别是供电部分、(点击鼠标)时钟产生部分、(点击鼠标)SPI或I2C串行总线控制部分。
(2)芯片通过左右声道采集输入的音频模拟信号。
(3)经过ADC采样后得到数字化的音频数据。
(4)数字化音频数据通过音频串行总线接口传输到DSP。
(5)DSP处理之后的数字化音频从DSP通过音频串行总线接口再传输到DAC。
(6)音频经过DAC还原为可输出的模拟信号。
(7)最后,通过耳机或者音箱输出音频模拟信号。
音频芯片的工作流程。音频模拟信号通过左右声道分别采样,经过ADC转换为数字信号后通过McASP传输到DSP,在DSP处理完成后再通过McASP传输到DAC,最后经过DAC转换为模拟信号后,分左右声道输出。
IIR滤波器
IIR无限冲激响应数字滤波器(infinite impulse response digital filter)是对单位冲激的输入信号的响应为无限长序列的数字滤波器。可分为一维、二维或多维无限冲激响应数字滤波器。它的输出y(n)由当前的和过去的输入信号x(n)及过去的输出信号共同决定。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)滤波器类型:高通Highpass;
(2)滤波方式:切比雪夫Ⅱ型IIR(Chebyshev Type II);
(3)滤波器阶数:Minimum order;
(4)采样频率:8000Hz;
(5)阻带截止频率:100Hz
(6)通带截止频率:3400Hz;
设置好参数后,转换为单精度再导出生成包含滤波器系数的.h头文件,将该头文件的数据拆分复制,即可用于IIR函数。
程序流程设计
设计中首先要首先要进行I2C和McASP的管脚复用配置,接着使能EDMA3的PSC和配置GPIO模块,然后初始化DSP中断和配置按键中断,进行音频芯片的初始化,并将McASP初始化为EDMA方式,初始化LCD,自定义生成一段噪声备用,最后进行按键检测,如果USER0按键按下,进行音频数据的混合噪声或IIR滤波或者是恢复原声,如果是USER1按键按下,则在LCD上显示计算的音频数据FFT结果。
数字信号处理库
DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多。使用DSPLIB可以缩短应用程序开发时间。
DSPLIB 3_4_0_0包括适用于 C64x+ 或 C66x 或 C674x 处理器的 Windows 或 Linux 安装可执行文件。 每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。
TMS320C6748处理器使用的是dsplib_c674x_3_4_0_0。
dsplib_c674x_3_4_0_0
函数源码
FFT运算函数
程序使用DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的FFT函数中,第一个参数是样本中 FFT 的长度,第二个参数是指向数据输入的指针。第三个参数是指向复杂旋转因子的指针。第四个参数是指向复杂输出数据的指针。第五个参数是指向包含 64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是2 。第七个参数是从主FFT开始的样本中的子 FFT偏移索引 。 第八个参数是样本中主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);
FFT逆变换函数
程序使用DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IFFT函数中,第一个参数是样本中 FFT 的长度。第二个参数是指向数据输入的指针。第三个参数是指向复杂旋转因子的指针。第四个参数是指向复杂输出数据的指针。第五个参数是指向包含 64 个条目的位反转表的指针 。如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是 2 。第七个参数是从主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);
三、操作现象
实验设备
本实验使用的硬件接口为LINE IN和LINE OUT接口,所需硬件为实验板、仿真器、电源、音频线、耳机和音乐播放器。本次操作是使用手机来播放音乐。
硬件连接
(1)使用音频线连接LINE IN(停顿一下) CON10音频接口和手机,手机播放音乐,
(2)在LINE OUT (停顿一下)CON11接口插上耳机或者音箱。
(3)连接仿真器和电脑的USB接口,
(4)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,按下USER0,通过耳机可以听到播放的音乐混合了噪声。
再次按下USER0,可以听到滤波后的音乐,滤波后的音乐和原声几乎一致。
再按下一次USER0按键,耳机会输出原声。
按下USER1按键,在LCD屏上会显示音频信号的频谱图。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-04-24
-
发表了主题帖:
数字信号处理操作教程_音频解码:3-8 G711A音频解码实验
一、实验目的
学习G711音频的格式和G711A音频解码的原理,并实现将BIT格式解码为PCM格式。
二、实验原理
G711
G711是国际电信联盟订定出来的一套语音压缩标准,主要用于电话。它主要用脉冲编码调制对音频采样,采样率为8k每秒。它利用一个 64Kbps 未压缩通道传输语音讯号。起压缩率为1:2,即把16位数据压缩成8位。G711是主流的波形声音编解码器。
PCM是对模拟的连续信号进行抽样,G711则是对PCM数据进行再一次的抽样。G711主要是对16bit的PCM进行抽样,取到PCM的高位数据,去掉低位的数据,并且只保留8位。这样压缩的比率就达到了2:1,是有损压缩。
G711 标准下主要有两种压缩算法。一种是µ-law algorithm (又称often u-law, ulaw, mu-law),主要运用于北美和日本;另一种是A-law algorithm,主要运用于欧洲和世界其他地区。其中,后者是特别设计用来方便计算机处理的。这两种算法都使用一个采样率为8kHz的输入来创建64Kbps的数字输出。G711采用一种称为分组丢失隐藏(PLC)的技术来减少丢包带来的实际影响。有效的信号带宽在静默期间通过语音活动检测(VAD)这一过程被减小。
G711编码的声音清晰度好,语音自然度高,但压缩效率低,数据量大常在32Kbps以上。常用于电话语音(推荐使用64Kbps)。
G711A
a-law也叫G711A,输入的是13位(其实是S16的高13位),使用在欧洲和其他地区,这种格式是经过特别设计的,便于数字设备进行快速运算。
G711A的解码过程如下:
拿到8位的g711a编码数据后;
与0x55亦或,还原偶数位,并取强度位;
取得样本位;
根据强度位+还原样本,放大还原;
通过符号位的值取反得到pcm数据的正负。
程序流程设计
程序流程设计中首先要打开/创建输入和输出的文件,接着进行G711解码并将解码后的数据保存到pcm文件,最后关闭文件即可。
三、操作现象
实验设备
本实验所需硬件为实验板,仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口。
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件部分操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
点击运行程序
运行程序后,console窗口打印提升信息。
解码过程大约需要5分钟。解码结束后,会打印出提示信息。
此时可看到debug目录下由speech.bit文件解码生成的speech.pcm文件。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
最后可通过专门的工具播放PCM 文件和 BIT 格式文件,
打开软件,点击“文件->导入->原始数据”。
先导入工程目录下的 speech.bit 文件,点击绿色剪头播放音频数据。
再导入工程目录下的 speech.pcm 文件,点击绿色剪头播放音频数据。
对比后可发现 PCM 文件与 BIT 文件播放内容一致
- 2024-04-18
-
发表了主题帖:
C6000教学实验箱_嵌入式操作教程_音频编码:3-7 G711A音频编码实验
一、实验目的
学习G711音频的格式和G711A音频编码的原理,并实现将PCM格式编码为BIT格式。
二、实验原理
G711
G711是国际电信联盟订定出来的一套语音压缩标准,主要用于电话。它主要用脉冲编码调制对音频采样,采样率为8k每秒。它利用一个 64Kbps 未压缩通道传输语音讯号。起压缩率为1:2,即把16位数据压缩成8位。G711是主流的波形声音编解码器。
PCM是对模拟的连续信号进行抽样,G711则是对PCM数据进行再一次的抽样。G711主要是对16bit的PCM进行抽样,取到PCM的高位数据,去掉低位的数据,并且只保留8位。这样压缩的比率就达到了2:1,是有损压缩。
G711 标准下主要有两种压缩算法。一种是µ-law algorithm (又称often u-law, ulaw, mu-law),主要运用于北美和日本;另一种是A-law algorithm,主要运用于欧洲和世界其他地区。其中,后者是特别设计用来方便计算机处理的。这两种算法都使用一个采样率为8kHz的输入来创建64Kbps的数字输出。G711采用一种称为分组丢失隐藏(PLC)的技术来减少丢包带来的实际影响。有效的信号带宽在静默期间通过语音活动检测(VAD)这一过程被减小。
G711编码的声音清晰度好,语音自然度高,但压缩效率低,数据量大,常在32Kbps以上。常用于电话语音(推荐使用64Kbps)。
G711A
a-law也叫G711A,输入的是13位(其实是S16的高13位),使用在欧洲和其他地区,这种格式是经过特别设计的,便于数字设备进行快速运算。
运算过程如下:
取符号位并取反得到s;
获取强度位eee;
获取高位样本位wxyz;
组合为seeewxyz,将seeewxyz逢偶数为取补数,编码完毕,即最终经过编码以后就变成了:s(取反)+3位强度位+4位样本位总共8位数据。
示例运算
输入pcm数据为3210,二进制对应为(0000 1100 1000 1010)
二进制变换下排列组合方式(0 0001 1001 0001010)
(1)获取符号位最高位为0,取反,s=1
(2)获取强度位0001,查表,编码制应该是eee=100
(3)获取高位样本wxyz=1001
(4)组合为11001001,逢偶数位取反为10011100
编码完毕。
程序流程设计
程序流程设计中首先要打开/创建输入和输出的文件,接着进行G711编码并将编码后的数据保存到bit文件,最后关闭文件即可。
三、操作现象
实验设备
本实验所需硬件为实验板,仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口。
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
点击运行程序
运行程序后,console窗口打印提升信息。
编码过程大约需要 6 分钟。编码结束后,会打印出提示信息。
此时可看到debug目录下由speech.pcm文件编码生成的speech.bit文件,对比编码前后文件大小,可发现BIT格式较PCM格式少了一半,可减少存储空间。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
实验结果
最后可通过专门的工具播放PCM 文件和 BIT 格式文件,
打开软件,点击“文件->导入->原始数据”。
先导入工程目录下的 speech.bit 文件,点击绿色剪头播放音频数据。
再导入工程目录下的 speech.pcm 文件,点击绿色剪头播放音频数据。
对比后可发现 PCM 文件与 BIT 文件播放内容一致
- 2024-04-11
-
发表了主题帖:
嵌入式操作教程_数字信号处理_音频编解码:3-6 AAC音频解码实验
一、实验目的
了解AAC音频格式,掌握AAC音频解码的原理,并实现将AAC格式的音频解码为PCM
二、实验原理
音频编解码的主要对象是音乐和语音,音频的编解码格式可分为无压缩的格式、无损压缩格式、有损音乐压缩格式、有损语音压缩格式和合成算法。本实验中使用的AAC格式属于有损音乐压缩格式。音频编解码的目的是减少传输的信息量和减少储存的信息。
音频的编解码的格式分类
无压缩的格式(PCM,WAV…)
无损压缩格式(APE,FLAC,LPAC,WMA_LS…)
有损音乐压缩格式(AAC,AACPlus,AC3,DTS,ATRAC,MP3,WMA,OGG,RA…)
有损语音压缩格式(AMR, GSM, LPC, SPEEX, CELP, G.7XX, ADPCM,…)
合成算法(MIDI,TTS)
AAC高级音频编解码(Advanced Audio Coding)
最初是基于MPEG-2的音频编码技术,目的是取代MP3格式。2000年,MPEG-4标准出台,AAC重新集成了其它技术(PS,SBR),为区别于传统的MPEG-2 AAC,故含有SBR或PS特性的AAC又称为MPEG-4 AAC。
AAC是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如PS,SBR等),衍生出了LC-AAC,HE-AAC,HE-AACv2三种主要的编码。其中LC-AAC就是比较传统的AAC,相对而言,主要用于中高码率(>=80Kbps),HE-AAC(相当于AAC+SBR)主要用于中低码(<=80Kbps),而新近推出的HE-AACv2(相当于AAC+SBR+PS)主要用于低码率(<=48Kbps)。事实上大部分编码器设成<=48Kbps自动启用PS技术,而>48Kbps就不加PS,就相当于普通的HE-AAC。
HE:“High Efficiency”(高效性)。HE-AAC v1(又称AACPlusV1,SBR),用容器的方法实现了AAC(LC)+SBR技术。SBR其实代表的是Spectral Band Replication(频段复制)。
音乐的主要频谱集中在低频段,高频段幅度很小,但很重要,决定了音质。如果对整个频段编码,若是为了保护高频就会造成低频段编码过细以致文件巨大;若是保存了低频的主要成分而失去高频成分就会丧失音质。
SBR把频谱切割开来,低频单独编码保存主要成分,高频单独放大编码保存音质,“统筹兼顾”了,在减少文件大小的情况下还保存了音质,完美的化解这一矛盾。
HEv2:用容器的方法包含了HE-AAC v1和PS技术。PS指“parametric stereo”(参数立体声)。原来的立体声文件文件大小是一个声道的两倍。但是两个声道的声音存在某种相似性,根据香农信息熵编码定理,相关性应该被去掉才能减小文件大小。所以PS技术存储了一个声道的全部信息,然后,花很少的字节用参数描述另一个声道和它不同的地方。
AAC编解码特点
(1)AAC是一种高压缩比的音频压缩算法,但它的压缩比要远超过较老的音频压缩算法,如AC-3、MP3等。并且其质量可以同未压缩的CD音质相媲美。
(2)同其他类似的音频编码算法一样,AAC也是采用了变换编码算法,但AAC使用了分辨率更高的滤波器组,因此它可以达到更高的压缩比。
(3)AAC使用了临时噪声重整、后向自适应线性预测、联合立体声技术和量化哈夫曼编码等最新技术,这些新技术的使用都使压缩比得到进一步的提高。
(4)AAC支持更多种采样率和比特率、支持1个到48个音轨、支持多达15个低频音轨、具有多种语言的兼容能力、还有多达15个内嵌数据流。
(5)AAC支持更宽的声音频率范围,最高可达到96kHz,最低可达8KHz,远宽于MP3的16KHz-48kHz的范围。
(6)不同于MP3及WMA,AAC几乎不损失声音频率中的甚高、甚低频率成分,并且比WMA在频谱结构上更接近于原始音频,因而声音的保真度更好。专业评测中表明,AAC比WMA声音更清晰,而且更接近原音。
(7)AAC采用优化的算法达到了更高的解码效率,解码时只需较少的处理能力。
MPEG-4 AACLC解码器的基本框图
在主控模块开始运行后,主控模块将AAC比特流的一部分放入输入缓冲区,通过查找同步字得到一帧的起始。
找到后,开始进行无噪解码,无噪解码实际上就是哈夫曼解码,它的作用在于进一步减少尺度因子和量化后频谱的冗余,即将尺度因子和量化后的频谱信息进行哈夫曼编码。
通过反量化、
联合立体声、
知觉噪声替换、
瞬时噪声整形、
反离散余弦变换、
频段复制,这几个模块之后,
得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。
程序流程
程序流程设计中首先要打开/创建输入和输出的文件,接着进行aac解码并将解码后的数据保存到pcm文件,最后关闭文件即可。
三、操作现象
实验设备
本实验所需硬件为实验板、仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口。
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
点击运行程序
运行程序后,Console 窗口会打印信息。
大概等待5分钟,编码完成。
可看到工程目录下的song.aac文件解码生成的song.pcm文件。
可播放song.pcm,具体操作步骤如下:
(1)打开软件后,点击“文件->导入->原始数据”,
(2)选择工程目录下的song.pcm文件,数据配置如图,
(3)导入数据后,点击绿色剪头即可播放音频数据。
(4)对比后可发现其效果与AAC原文件播放内容一致。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-04-03
-
发表了主题帖:
数字信号处理实验操作教程:3-3 mp3音频编码实验(AD7606采集)
一、实验目的
学习AD7606采集音频数据的方法并掌握MP3音频编码的原理,并实现AD7606采集音频数据进行MP3编码并保存到SD卡。
二、实验原理
AD7606原理图
硬件原理图,找到AD采集,可查看相关控制引脚,同时可看到ADC输入的V1V8通道分别对应CON29CON36口。
A/D转换
A/D转换,即模数转换,是指将一个输入电压信号转换为一个输出的数字信号。一般分为四个步骤进行:取样、保持、量化和编码。前两个步骤在取样-保持电路中完成,后两步骤则在ADC中完成。
AD7606
TL6748-PlusTEB实验箱上的AD采集是基于 ADI AD7606 芯片进行设计的,具体特性如下:
八通道;
16bit采样;
支持串行和并行读取方式;
支持全部通道 200K 采样率并行采集和转换;
支持真正±10V 或±5V 的双极性信号输入。
模数转换工作过程
AD7606上8个通道的数据是同时采集,轮流转换的。
模数转换模块接到启动转换信号后,按照排序器的设置,开始转换第一个通道的数据;经过一个采样时间的延迟后,将采样结果放入转换结果寄存器保存;按顺序进行下一个通道的转换;如果为连续转换方式则从新开始转换过程;否则等待下一个启动信号。
音频编解码的主要对象是音乐和语音,音频的编解码格式可分为无压缩的格式、无损压缩格式、有损音乐压缩格式、有损语音压缩格式和合成算法。本实验中使用的MP3格式属于有损音乐压缩格式。音频编解码的目的是减少传输的信息量和减少储存的信息。
MP3音频格式
MP3是一个数据压缩格式,它丢弃掉脉冲编码调制(PCM)音频数据中对人类听觉不重要的数据(类似于JPEG是一个有损图像压缩),从而达到了小得多的文件大小。
MP3音频可以按照不同的位速进行压缩,提供了在数据大小和声音质量之间进行权衡的一个范围,MP3格式使用了混合的转换机制将时域信号转换成频域信号。
特点:
(1)音质还原较好,压缩比比较高:10:1~12:1。
(2)软硬件支持好,应用领域广泛:随声听、MP3。
(3)文件体积较小,有利网络传输:网络主流音频格式。
(4)多次编辑后,音质会急剧下降。
(5)实现片内存储器、片内外设以及外部存储器之间的数据传输。
MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III),简称为MP3。它被设计用来大幅度地降低音频数据量。利用 MPEG Audio Layer 3 的技术,将音乐以1:10 甚至 1:12 的压缩率,压缩成容量较小的文件,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。
从信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据=信息+数据冗余。音频信号在时域和频域上具有相关性,也即存在数据冗余。将音频作为一个信源,音频编码的实质是减少音频中的冗余。
自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字信号。
PCM文件格式
PCM文件:模拟音频信号经模数转换(A/D变换)直接形成的二进制序列,该文件没有附加的文件头和文件结束标志。最常见的方式是通过脉冲编码调制PCM(Pulse Code Modulation) 。
PCM脉冲编码调制是Pulse Code Modulation的缩写。脉冲编码调制是数字通信的编码方式之一。主要过程是将话音、图像等模拟信号每隔一定时间进行取样,使其离散化,同时将抽样值按分层单位四舍五入取整量化,同时将抽样值按一组二进制码来表示抽样脉冲的幅值。
MP3编码参数
(1)采样率(sampleRate):采样率越高声音的还原度越好。
(2)比特率(bitrate):每秒钟的数据量,越高音质越好。
(3)声道数(channels):声道的数量,通常只有单声道和双声道,双声道即所谓的立体声。
(4)比特率控制模式:
CBR:constant bitrate,固定比特率,压缩出来的体积会很大,音质最好。
VBR:Variable Bitrate,动态比特率,压缩时根据音频数据即时确定使用什么比特率,兼顾了音质和体积大小,以质量为前提兼顾文件大小。
ABR:Average Bitrate,平均比特率,是VBR的一种插值参数,做为 VBR和CBR的一种折衷选择。
libmp3lame库
MP3编码一般会使用libmp3lame库,这是一个开源的MP3编码库。适合嵌入式移植和开发。通过lame库实现MP3编码的流程是初始化编码参数、设置编码参数、初始化编码器、编码PCM数据、结束编码,最后销毁编码器。
编码参数设置接口
第一个是设置设置被输入编码器的原始数据的采样率
第二个是设置最终MP3编码输出的声音的采样率,如果不设置则和输入采样率一样
第三个是设置被输入编码器的原始数据的声道数
第四个是设置最终MP3编码输出的声道模式,如果不设置则和输入声道数一样。
第五个是设置比特率控制模式,默认是CBR,但是通常我们都会设置VBR
第六个是设置CBR的比特率,只有在CBR模式下才生效
第七个是设置VBR的比特率,只有在VBR模式下才生效
接着看一下初始化编码器的接口,根据设置好的参数建立编码器
然后调用接口将PCM数据送入编码器,获取编码出的MP3数据。本实验中的双声道数据是交错在一起输入的,所以使用lame_encode_buffer_interleaved接口。
编码结束前需要刷新编码器缓冲,获取残留在编码器缓冲里的数据。
最后,编码结束后要销毁编码器释放资源。
SYS/BIOS 操作系统
SYS/BIOS 是一个可扩展的实时的操作系统(可拓展的实时内核)。
(1)具有非常快速的响应时间(在中断和任务切换时达到较短的延迟),响应时间的确定性。
(2)SYS/BIOS提供了抢占式多线程,硬件抽象,实时分析和配置工具。
(3)优化的内存分配和堆栈管理(尽量少的消耗和碎片)。
(4)SYS/BIOS的设计是为了最大限度地减少对内存和CPU的要求.
能够实现系统的模块化并可裁剪。
(5)用于实时调度和同步的应用程序或实时的设备。
TASK任务
TASK任务模块是操作系统中最基本的模块,每个任务是一个单独的线程,各个线程(任务)具有各自的优先级。SYS/BIOS任务对象是被任务模块管理的线程。
(1)任务模块动态调度和抢占任务是基于任务的优先级和任务当前执行的状态的。这确保了处理器总是给予最高优先级的线程准备运行。
(2)SYS/BIOS的系统组件可以动态及静态创建任务,可以通过调用Task_create()动态创建Task对象,也可以在配置中静态创建Task对象。
(3)动态和静态创建任务的主要区别是:动态创建的线程可以在运行时删除,而静态创建的任务占用更少的内存资源。
cfg Script脚本语言。
点击“app.cfg->Open With-> XDCscript Editor”,可修改配置。
var Task = xdc.useModule('ti.sysbios.knl.Task');
var task0Params = new Task.Params();
task0Params.instance.name = "task0";
Program.global.task0= Task.create("&taskMain", task0Params);
程序流程设计
程序流程设计中首先要进行外设使能,接着初始化AD7606,进行管脚复用配置,初始化EMIFA,然后配置AD7606,接着进行按键中断检测,当按键按下时开始采集音频信号,进行MP3编码并将数据保存到SD卡上,编码完成后指示灯亮起即可。
三、操作现象
实验设备
本实验使用的硬件接口为AD接口和SD卡座,所需硬件为实验板,音频线,SMA转音频母口线,手机或电脑,SD卡,读卡器,仿真器和电源。
硬件连接
(1)使用SMA转音频母口线连接ADC的V1通道和音频线的一头,音频线的另一头连接手机或电脑,并播放音乐,采集时建议音乐音量放到最大,如果音量太低采集后播放可能会听不到音乐。
(2)将SD卡插入实验板的SD卡槽。
(3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
点击运行程序
运行程序后,LED此时是熄灭状态,按下USER0,开始采集音频数据,同时 LED2闪烁,标记正在采集数据和编码。
编码过程大约需要 1 分钟。编码结束后,LED2常亮。
实验箱断电后,取下 SD 卡。
通过读卡器将SD卡插入电脑可查看 SD 卡目录下的内容,可查看保存的 song.mp3 文件。
打开并播放 MP3 文件.
- 2024-03-22
-
发表了主题帖:
创龙教仪基于瑞芯微3568的ARM Cortex A-55教学实验箱 适用于人工智能 传感器 物联网
适用课程
Cortex-A55 ARM嵌入式实验箱主要用于《ARM 系统开发》、《ARM 应用开发》《物联网通信技术》、《嵌入式系统设计》、《移动互联网技术》、《无线传感器网络》、《物联网设计方法与应用》、《人工智能》等课程。
适用专业
Cortex-A55 ARM嵌入式实验箱主要面向电子信息工程专业方向,同时也可适用于通信工程、电子科学与技术、光电信息工程、计算机科学与技术、自动化、人工智能等相关专业教学。Cortex-A55系列的ARM可以满足自动化、通信等领域的应用需求,可应用于工控,电力,通讯,医疗,媒体,安防,车载,金融,消费电子等领域。
预期目标
ARM嵌入式实验室建设拟达成的预期教学培养目标如下:
学生理解嵌入式ARM系统的基本原理;
学生了解嵌入式ARM微处理器的结构和组成;
学生掌握嵌入式ARM系统开发的过程和基本方法;
学生掌握学会Linux开发的基本知识、程序架构、开发流程;
培养学生嵌入式系统设计能力、实践动手能力、嵌入式系统分析与调试能力。
Cortex-A55 国产化ARM教学平台
产品特点
TL3568-PlusTEB是创龙教仪基于瑞芯微 RK3568J处理器设计的四核 ARM Cortex-A55 国产嵌入式教学实验箱,提供了丰富的教学实验,适合高校以及研究所等实验机构。
其中,SOM-TL3568 是一款基于瑞芯微 RK3568J处理器设计的四核 ARM Cortex-A55 全国产工业核心板,主频高达 1.8GHz。核心板 CPU、ROM、RAM、电源、晶振、连接器等所有器件均采用国产工业级方案,国产化率 100%。RK3568J是一款采用ARM架构的通用型SoC,主要应用于智能硬件和工业应用。CPU采用四核A55架构处理器,集成Mali G52图形处理器和独立的人工智能NPU处理器。RK3568J支持三屏异显,支持CAN、UART、SPI、IIC、IIS.SATA等接口,适合工控类应用,支持鸿蒙OS、安卓、Linux、Ubuntu、 Debian等操作系统,非常适合二次开发。
TL3568-PlusTEB的产品特点如下:
基于瑞芯微 RK3568J,四核 ARM Cortex-A55处理器,主频1.8GHz。
实验箱含实验板、7寸触摸屏、7寸全键盘,可选多种拓展模块。
实验箱支持:音频输入输出接口、摄像头接口、4G、NVMe接口、ADC、波形发生器、Ethernet、RS232、RTC、LCD、HDMI、USB HOST、USB OTG、SPI、IIC、GPIO、PWM、SD等外设与接口。
实验箱支持翼辉操作系统显示界面。
适用于嵌入式系统、物联网、无线传感器、人工智能等教学领域。
实验板硬件参数
配套模块
软件资源
- 2024-03-19
-
发表了主题帖:
嵌入式DSP教学实验箱操作教程:2-20 数模转换实验(模拟SPI总线输出电压值)
一、实验目的
掌握GPIO模拟SPI总线的使用,了解AD5724的芯片特性和使用,并实现基于AD5724输出电压值。
二、实验原理
StarterWare
StarterWare是一个免费的软件开发包,它包含了示例应用程序。StarterWare提供了一套完整的GPIO寄存器配置接口,简化了开发步骤,程序开发时只需要调用相应接口即可。
安装StarterWare后,可在安装目录下找到C6748所有通用库函数和对应的源码和库函数使用方法。
硬件原理图,找到DAC,可查看DAC的相关控制引脚
SPI是串行外设接口(Serial Peripheral Interface),是一种高速、全双工、同步的通信总线,在芯片的引脚上占用三根线(一对一通信)、四根线或五根线。一般是四线。
MOSI:主设备数据输出,从设备数据输入;
MISO:主设备数据输入,从设备数据输出;
SCLK:时钟信号,由主设备产生;
CS:从设备片选信号,由主设备控制;
EN:使能信号。
SPI 通常用于器件与外部设备之间的通信. 典型应用包括通过外部 I/O 或外设扩展移位寄存器,显示驱动器以及模拟-数字转换器等。
SPI的功能框图,左侧连接外部设备,右侧连接CPU。
SPI接口实际上是两个简单的移位寄存器,在主器件产生的使能信号和移位脉冲下,按位传输。上升沿发送,下降沿接收。或下降沿发送,上升沿接收。
D/A转换
D/A转换,即数模转换,是指将输入的二进制数字量转换成模拟量,以直流电压或直流电流的形式输出。D/A转换器实质上是一个译码器(解码器)。D/A转换器一般是由数码缓冲寄存器、模拟电子开关、参考电压和求和电路等组成。
AD5724芯片
TL6748-PlusTEB实验箱上的DA输出是基于 ADI AD5724 芯片进行设计的,具体特性如下:
12 位;
4 通道;
SPI 串行读取方式;
软件可调输出范围:0+5V、0+10V、0~+10.8V、±5V、±10V、±10.8V。
AD5724功能框图
左侧连接CPU,右侧是DA的四通道输出。
程序流程设计
程序流程设计中首先要进行外设使能配置,接着初始化UART2串口,然后进行GPIO管脚复用,配置GPIO管脚为输出,最后配置DAC各通道的输出电压值,并在UART2串口终端显示各个通道的输出电压。
源码
方向配置源码
管脚方向配置。
使用StarterWare 库函数将 GPIO 口配置为输出模式。相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIODirModeSet(SOC_GPIO_0_REGS, 1, GPIO_DIR_OUTPUT);
将GPIO配置为输出的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数时GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的方向。
数据配置源码
数据寄存器配置。
使用StarterWare 库函数设置GPIO输出值。
相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIOPinWrite(SOC_GPIO_0_REGS, 3, GPIO_PIN_LOW);
配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。
三、操作现象
本实验使用的硬件接口为DAC接口和UART2 RS232接口,所需硬件为实验板、仿真器、电源、RS232 交叉串口母母线、USB转RS232串口线和万用表。
硬件连接
(1)使用RS232交叉串口母母线和USB转RS232串口线连接实验板的UART2和电脑的USB口。
(2)连接仿真器和电脑的USB接口,
(3)将拨码开关拨到DEBUG模式01111,
(4)连接实验箱电源,拨动电源开关上电。
软件操作
串口调试
(1)先在设备管理器查看串口的端口号;
(2)再设置串口调试工具,波特率设置为115200。
CCS相关操作
导入工程,选择Demo文件夹下的对应工程
编译工程
将CCS连接实验箱并加载程序
点击运行程序
串口调试终端会打印从 TL5724 模块相应的输出寄存器回读数据。
经过转换运算,可得出:通道A电压=3V;通道B电压=5V;通道C电压=7V;通道D电压=10V。
TDAC四个通道输出恒定电压,相应的LED被点亮,输出电压越高LED的亮度越亮。
将万用表的测试头正极接触DAC的各个通道依次测量电压值,地接触实验板上的GND测试点。可以看到使用万用表读出的数据与计算值在误差允许范围内是一致的。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
最后我们来看下DAC电压的计算方法。
由于TL5724为4通道12位DAC,所以采用以上数据的前3位。
在这里以通道A为例,通道A取前三位,即为0x4cc,转换为十进制数值为1228。
再经过转换公式计算可得出通道A的输出电压为3V,和程序设置的输出电压一致。
- 2024-03-14
-
发表了主题帖:
嵌入式教学实验箱_操作教程:2-26 交通灯控制实验
一、实验目的
掌握GPIO引脚配置方法和定时器控制LED的原理,并实现交通灯的闪烁控制。
二、实验原理
StarterWare
StarterWare是一个免费的软件开发包,它包含了示例应用程序。StarterWare提供了一套完整的GPIO寄存器配置接口,简化了开发步骤,程序开发时只需要调用相应接口即可。
安装StarterWare 后,可在安装目录下找到 C6748 所有通用库函数和对应的源码(StarterWare的 drivers 目录下,部分位于其他相关目录下),同时可在安装目录docs 文件夹内找到所有库函数的使用方法。
硬件原理图
找到TRAFFIC LIGHT,可看到控制交通灯的GPIO管脚。当GPIO输出为高电平时,LED会点亮,输出低电平时,LED会熄灭。同时可以查看数码管的原理图,数码管会显示30秒倒计时。
数码管
数码管分为共阴极和共阳极两种类型,TL6748-PlusTEB实验箱使用的5461数码管为共阴极,是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
程序流程设计
程序流程设计中首先要进行外设使能和GPIO管脚复用,配置GPIO管脚为输出,然后进行定时器和DSP中断的初始化,最后设置交通灯的闪烁,同时数码管末两位显示30秒倒计时。
源码
方向配置源码
管脚方向配置。
使用StarterWare 库函数将 GPIO 口配置为输出模式。相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIODirModeSet(SOC_GPIO_0_REGS, 1, GPIO_DIR_OUTPUT);
将GPIO配置为输出的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数时GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的方向。
数据配置源码
数据寄存器配置。
使用StarterWare 库函数设置GPIO输出值。
相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIOPinWrite(SOC_GPIO_0_REGS, 3, GPIO_PIN_LOW);
配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。
数据配置源码
数据寄存器配置。
使用StarterWare 库函数设置GPIO输出值。
相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIOPinWrite(SOC_GPIO_0_REGS, 3, GPIO_PIN_LOW);
配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。
三、操作现象
实验设备
本实验使用的硬件接口为交通灯和数码管,所需硬件为实验板、仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,
(3)连接实验箱电源,拨动电源开关上电。
软件操作
导入工程
编译工程
将CCS连接开发板并加载程序
点击运行程序
可以看到交通灯亮起(南北方向绿灯亮,东西方向红灯亮),同时数码管末两位开始30秒倒计时。设定南北方向为主干道方向,东西方向为支干道,当主干道绿灯亮时,支干道开始亮红灯,红灯持续亮30秒,主干道绿灯亮25秒,然后转为亮黄灯,持续5秒后,主干道转为亮红灯。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
- 2024-03-06
-
发表了主题帖:
国产嵌入式DSP教学实验箱_操作教程:22-AD采集DA输出实验(采集输出正弦波)
一、实验目的
掌握EMIFA、SPI的使用,了解AD7606、AD5724的芯片特性和使用,并实现基于AD7606采集、AD5724输出正弦波。
二、实验原理
StarterWare
StarterWare是一个免费的软件开发包,它包含了示例应用程序。StarterWare提供了一套完整的GPIO寄存器配置接口,简化了开发步骤,程序开发时只需要调用相应接口即可。
安装StarterWare 后,可在安装目录下找到 C6748 所有通用库函数和对应的源码(StarterWare的 drivers 目录下,部分位于其他相关目录下),同时可在安装目录docs 文件夹内找到所有库函数的使用方法。
硬件原理图
找到波形发生器、AD采集和DA输出,可查看相关控制引脚。
AD9833
AD7606
AD5724
波形发生器
TL6748-PlusTEB实验箱采用板载波形信号发生器,波形信号发生器采用的芯片是AD9833。
AD9833是一款低功耗、可编程波形发生器,能够产生正弦波、三角波和方波输出。
各种类型的检测、信号激励和时域反射应用都需要波形发生器。输出频率和相位可通过软件进行编程,调整简单。AD9833的输出电源范围是38mV~650mV。
AD9833
AD9833具有一个标准串行接口,使得该器件可以直接与数个微处理器接口。该器件采用外部串行时钟来向器件中写入数据或控制信息。通过该串行接口DSP可使用程序控制AD9833产生正弦波、三角波和方波输出。
A/D转换
A/D转换,即模数转换,是指将一个输入电压信号转换为一个输出的数字信号。一般分为四个步骤进行:取样、保持、量化和编码。前两个步骤在取样-保持电路中完成,后两步骤则在ADC中完成。
AD7606
TL6748-PlusTEB实验箱上的AD采集是基于 ADI AD7606 芯片进行设计的,具体特性如下:
八通道;
16bit采样;
支持串行和并行读取方式;
支持全部通道 200K 采样率并行采集和转换;
支持真正±10V 或±5V 的双极性信号输入。
模数转换工作过程
AD7606上8个通道的数据是同时采集,轮流转换的。
模数转换模块接到启动转换信号后,按照排序器的设置,开始转换第一个通道的数据;经过一个采样时间的延迟后,将采样结果放入转换结果寄存器保存;按顺序进行下一个通道的转换;如果为连续转换方式则从新开始转换过程;否则等待下一个启动信号。
D/A转换
D/A转换,即数模转换,是指将输入的二进制数字量转换成模拟量,以直流电压或直流电流的形式输出。D/A转换器实质上是一个译码器(解码器)。D/A转换器一般是由数码缓冲寄存器、模拟电子开关、参考电压和求和电路等组成。
AD5724芯片
TL6748-PlusTEB实验箱上的DA输出是基于 ADI AD5724 芯片进行设计的,具体特性如下:
12 位;
4 通道;
SPI 串行读取方式;
软件可调输出范围:0+5V、0+10V、0~+10.8V、±5V、±10V、±10.8V。
程序流程设计
程序流程设计中首先要进行外设使能配置和DSP中断初始化,接着初始化LCD的显示与触摸,然后初始化AD7606,初始化SPI和AD5724,接着初始化AD9833并输出波形,启动AD7606采集并将采集的波形显示到LCD上。最后进行触摸检测,控制AD7606启动和暂停,同时把采集到的数据通过AD5724进行同步输出。
源码
方向配置源码
管脚方向配置。
使用StarterWare 库函数将 GPIO 口配置为输出模式。相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIODirModeSet(SOC_GPIO_0_REGS, 1, GPIO_DIR_OUTPUT);
数据配置源码
数据寄存器配置。
使用StarterWare 库函数设置GPIO输出值。
相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIOPinWrite(SOC_GPIO_0_REGS, 3, GPIO_PIN_LOW);
三、操作现象
实验设备
本实验使用的硬件接口为波形发生器接口、ADC输入和DAC输出,所需硬件为实验板、仿真器、LCD、公头对公头SMA数据线、BNC公头转SMA公头转接线、示波器和电源。
硬件连接
(1)使用公头对公头SMA数据线连接波形发生器和ADC输入的V1通道
(2)通过BNC公头转SMA公头转接线连接实验板DAC输出的任一通道至示波器,测试过程中可切换测量通道
(3)连接仿真器和电脑的USB接口,
(4)将拨码开关拨到DEBUG模式01111,
(5)连接实验箱电源,拨动电源开关上电。
软件操作
导入工程
编译工程
将CCS连接开发板并加载程序
点击运行程序
LCD屏幕会显示采集的正弦波,同时示波器也会显示测量的DA输出波形
点击一下LCD屏,采集将停止,再次点击恢复采集。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。