关于DBT阵列信号处理工具箱在新版Matlab中的移植

DBT是一个用于阵列信号处理的Matlab工具箱,有很多的函数和例子,对于常见的MUSIC、ESPRIT等阵列信号处理的方法都有很好的实现,是雷达工作者的极好帮手,不过由于开发年代久远(网上能找到的最新版是2.20),所以在新版Matlab上无法使用,突出的问题就是其代码大量使用了C语言编写的函数库,实现于matvar.c文件中,里面很多函数都已经被新版的Matlab抛弃或更换,造成无法编译出所需的matvar.mexw32文件。这几天试验了很久,查了不少资料,终于成功地将matvar.c在Matlab R2013a下进行了编译移植。其步骤如下:

首先打开Matlab,切换到D:\MATLAB\R2013a\toolbox\radar\dbtR2-20\recvarR3-7目录下(如果你的Matlab安装目录和DBT目录不是上述路径,请自行修改,下同)。

使用mex -setup命令设置好C编译器配置,我用的是Visual Studio 2010。

将D:\MATLAB\R2013a\toolbox\radar\dbtR2-20\按子目录添加的方式添加到Matlab路径中,但是请删除D:\MATLAB\R2013a\toolbox\radar\dbtR2-20\recvarR3-7\matlab4目录,且确保D:\MATLAB\R2013a\toolbox\radar\dbtR2-20\recvarR3-7\matlab5目录的次序在其他所有工具箱之前,这主要是由于DBT内部使用的一些自有函数如getm、setm等,与Matlab的地图工具箱中的函数存在重名,需要提前声明。

接下来是修改matvar.c:

1.因为Matlab已经将Matrix结构更换为mxArray,所以在100行左右的地方,需要添加声明:
typedef mxArray     Matrix;
2.mxIsString函数已经废弃不用,将所有的mxIsString函数调用更换为mxIsChar;
3.mxCreateFull函数已经废弃不用,将所有的mxCreateFull函数调用更换为mxCreateDoubleMatrix;
4.所有的REAL常量更换为mxREAL;
5.所有的COMPLEX常量更换为mxCOMPLEX;
6.mxSetDispMode已经被Matlab废弃且没有替代函数,所以让setMatlabMatrixDisplayMode函数为空,也就是清除其中对mxSetDispMode函数的调用,据测试并不影响使用DBT;
6.mxGetName函数已经废弃不用,将所有的mxGetName函数更换为mxGetClassName函数;

完成上述修改后,键入mex matvar.c,可以生成matvar.mexw32文件,用tmatvar命令测试成功即可,以下是dbtex1范例的运行结果:

不过DBT工具箱似乎已经多年不曾更新,加上最新版的Matlab已经为雷达、声呐等应用领域开发了功能强大的官方版的相控阵工具箱(Phased Array System Toolbox),所以DBT工具箱的作用可能已经不如十年前那么大了,不过仍然是极具参考价值的。

肯塔基大学分布式音频阵列工具箱matlab源码 麦克风阵列是空间分布的麦克风系统,其在感兴趣的区域上相干地收集声学数据。主要应用包括: 声源位置 检测并定位声源,例如说话的人,机器嗡嗡声和来自风障的湍流点。 信噪比增强 通过所有通道上的延迟和求和将所有麦克风聚焦在房间的特定兴趣点上,从而在感兴趣点处产生相长干涉,并在其他空间产生破坏性(或至少很少建设性)的干扰。位置。 在过去的半个世纪,已经为阵列处理开发了许多有趣的工作和想法。此工具箱(仍在开发)是Matlab函数的集合,可用于模拟和处理音频阵列系统收集的数据。这些课程是在肯塔基大学的音频系统实验室开发的。工具箱程序的贡献者包括: Phil Townsend,ArulKumaran Muthukumarasamy,Satoru Tagawa和Jens Hannemann。 在阵列系统,相对于麦克风和源的空间几何形状处理信号。因此,除了音频源和接收器的典型时间和频率特征之外,还必须知道位置和空间路径并将其合并到处理。此工具箱Matlab函数具有提供位置信息的矢量和矩阵的标准约定。围绕这些约定开发的函数允许有效地重用,兼容和修改工具箱函数。 以下矩阵和向量约定适用于所有适用的工具箱函数: 与阵列相关联的信号的集合(例如,来自麦克风的数据)以列方式存储在矩阵,并且行索引对应于随时间采集的样本。较大的行索引对应于更近的时间样本(行索引1是记录的第一个和最旧的样本)。 数组元素(麦克风),源和其他元素在空间的位置用列向量表示或在矩阵用列表示,其每列对应于空间的对象位置,行对应于x,y和z坐标的位置。如果仅给出2个维度(2行),则算法将在平面(2D)工作。如果给出一个维度,则算法将沿着一条线工作,这可能适用于诸如端射阵列的校准程序或声音测量速度的应用。 视场(FOV)定义分析或成像的空间限制。FOV限于矩形/立方体尺寸,并且是表示相对角点的坐标的2列矩阵。阵列元素和FOV的坐标必须相对于相同的空间参照系。 上述约定简化了工具箱功能的编程和使用,几乎没有限制。请注意,对数组元素的数量或数组元素的几何形状没有限制。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值