基于MATLAB的声源定位系统

合集下载

五元十字麦克风阵列matlab仿真计算tdoa算法

五元十字麦克风阵列matlab仿真计算tdoa算法

文章标题:深度解析五元十字麦克风阵列Matlab仿真计算TDOA算法在当今数字信号处理技术日益成熟的背景下,五元十字麦克风阵列成为无线通信和声音定位领域中的重要技术手段。

本文将深入探讨五元十字麦克风阵列在Matlab仿真计算TDOA(Time Difference of Arrival)算法中的应用,旨在帮助读者深入理解这一技术,并掌握其实际操作方法。

一、技术背景和原理介绍五元十字麦克风阵列是一种利用多个麦克风单元进行声音采集和定位的技术。

通过对声音波形的采集和处理,可以实现对声源的准确定位和声音信号的增强。

在Matlab中,可以通过仿真计算TDOA算法来模拟五元十字麦克风阵列的定位效果,从而验证算法的准确性和可靠性。

二、Matlab仿真计算TDOA算法的实现在进行仿真计算时,首先需要采集五元十字麦克风阵列接收到的声音信号,并对其进行预处理和特征提取。

利用TDOA算法计算不同麦克风单元之间声音到达的时间差,进而确定声源的位置。

在Matlab中,可以通过编写相应的算法程序来实现TDOA的计算和声源定位的仿真计算。

三、实际应用与技术难点五元十字麦克风阵列在语音识别、智能音箱、无人驾驶等领域具有广泛的应用前景。

然而,其在实际应用中还存在一些技术难点,如多路径干扰、信噪比低等问题,需要通过算法优化和系统设计来解决。

在Matlab中进行仿真计算时,也需要考虑到这些实际问题,从而提高仿真结果的准确性和可靠性。

结语通过本文的深度探讨,相信读者对五元十字麦克风阵列在Matlab仿真计算TDOA算法的应用有了更深入的了解。

我个人认为在未来的发展中,该技术将在各个领域发挥越来越重要的作用,为我们的生活和工作带来更多便利和可能性。

文末附上了对该技术的详细实际操作步骤和算法代码实现,希望能够帮助读者更具体地理解和应用这一技术。

以上就是本次文章的全部内容,希望能够对您有所帮助。

五元十字麦克风阵列是一种应用十字形排列的五个麦克风单元进行声音采集和定位的技术。

用matlab虚源法声场计算浅海声场的方法(一)

用matlab虚源法声场计算浅海声场的方法(一)

用matlab虚源法声场计算浅海声场的方法(一)用MATLAB虚源法声场计算浅海声场引言浅海声场计算是海洋声学中的一项重要任务。

在该任务中,研究者会使用MATLAB等工具来进行声场模拟和分析。

本文将介绍使用MATLAB中的虚源法进行浅海声场计算的方法。

理论背景虚源法概述虚源法是一种常用的浅海声场计算方法。

该方法基于以下假设:1. 浅海中的声场可以抽象为一系列点源的叠加。

2. 点源的声压和相位可以通过远场观测点的实际声压和相位来确定。

点源的声压和相位计算点源的声压和相位可以通过数值计算来获得。

常见的计算方法包括:1. 全波求解方法全波求解方法是一种常用的声场计算方法。

该方法基于声学波动方程的数值求解,可以精确地计算点源的声压和相位。

然而,这种方法在计算复杂场景时比较耗时。

2. 近场拟合法近场拟合法是一种近似计算点源声压和相位的方法。

该方法基于波动方程的近似解,可以在更短的时间内得到结果。

然而,由于近场拟合法是一种近似计算方法,其结果可能会存在一定的误差。

虚源法声场计算步骤使用虚源法进行浅海声场计算的步骤如下:1.定义虚源点的位置和数量。

2.利用全波求解或近场拟合法计算虚源点的声压和相位。

3.将虚源点的声压和相位叠加得到总声场的声压和相位。

4.通过远场观测点对总声场的声压和相位进行采样。

MATLAB实现定义虚源点在MATLAB中可以通过定义虚源点的坐标数组来表示虚源点的位置。

例如:source_points = [x1, y1, z1; x2, y2, z2; ...];计算虚源点的声压和相位根据虚源点的位置数组,可以使用全波求解方法或近场拟合法计算声压和相位。

具体的实现方法可以是:% 使用全波求解方法for i = 1:size(source_points, 1)[pressure(i), phase(i)] = full_wave_solver(source_po ints(i, :));end% 使用近场拟合法for i = 1:size(source_points, 1)[pressure(i), phase(i)] = near_field_approximation(s ource_points(i, :));end声场叠加和采样在计算完虚源点的声压和相位后,可以将其叠加得到总声场的声压和相位。

基于Matlab的语音识别系统的设计本科毕业设计

基于Matlab的语音识别系统的设计本科毕业设计

摘要语音识别主要是让机器听懂人说的话,即在各种情况下,准确地识别出语音的内容,从而根据其信息执行人的各种意图。

语音识别技术既是国际竞争的一项重要技术,也是每一个国家经济发展不可缺少的重要技术支撑。

本文基于语音信号产生的数学模型,从时域、频域出发对语音信号进行分析,论述了语音识别的基本理论。

在此基础上讨论了语音识别的五种算法:动态时间伸缩算法(Dynamic Time Warping,DTW)、基于规则的人工智能方法、人工神经网络(Artificial Neural Network,ANN)方法、隐马尔可夫(Hidden Markov Model,HMM)方法、HMM和ANN的混合模型。

重点是从理论上研究隐马尔可夫(HMM)模型算法,对经典的HMM模型算法进行改进。

语音识别算法有多种实现方案,本文采取的方法是利用Matlab强大的数学运算能力,实现孤立语音信号的识别。

Matlab 是一款功能强大的数学软件,它附带大量的信号处理工具箱为信号分析研究,特别是文中主要探讨的声波分析研究带来极大便利。

本文应用隐马尔科夫模型(HMM) 为识别算法,采用MFCC(MEL频率倒谱系数)为主要语音特征参数,建立了一个汉语数字语音识别系统,其中包括语音信号的预处理、特征参数的提取、识别模板的训练、识别匹配算法;同时,提出利用Matlab图形用户界面开发环境设计语音识别系统界面,设计简单,使用方便,系统界面友好。

经过统计,识别效果明显达到了预期目标。

关键词:语音识别算法;HMM模型;Matlab;GUIABSTRACTSpeech Recognition is designed to allow machines to understand what people say,and accurately identify the contents of voice to execute the intent of people.Speech recognition technology is not only an important internationally competed technology,but also an indispensable foundational technology for the national economic development.Based on the mathematical model from the speech signal,this paper analyze audio signal from the time domain,frequency domain proceeding,and discussed the basic theory of speech recognition technology.Five algorithm are discussed:Dynamic Time Warping(DTW)、Rule-based Artificial Intelligence,Artificial Neural Network(ANN),Hidden Markov Model(HMM),HMM combined with ANN.The focus is put in the theoretical studies of Hidden Markov(HMM) model algorithm,and the classical HMM algorithm is improved.Speech recognition algorithm is realized in various programs,this article taking the method is to use Matlab powerful mathematical operation ability to realize the recognition of speech signal isolation. Matlab is a powerful mathematic software with a mass of toolboxes dealing with signal processing. It gives a terrific shortcut to the research of signal processing,especially the wave analysis. We can characterize the sound with key parameters such as intensity, frequency etc. In this paper, hidden Markov model (HMM) recognition algorithm using MFCC (MELfrequency cepstral coefficients) as the main voice characteristic parameters, the establishment of a Chinese digital speech recognition system, including the preprocessing of the speech signal,the extraction of characteristic parameters the training of the recognition template,identifying matching algorithm;the same time,the use of Matlab graphical user interface development environment designed speech recognition system interface,is designed to be simple,easy to use,friendly interface. Besides,to have a simple exploration of the voice recognition is another target.After statistics,recognition result obviously is made out as the expected goal.Key words:Speech recognition algorithm;HMM model;Matlab;GUI目录一、前言 (1)1.1语音识别的发展历史 (1)1.2语音识别研究现状 (1)1.3语音识别系统的分类 (2)1.4语音识别系统的基本构成 (3)1.5语音识别技术难点 (3)1.6语音识别发展前景 (4)二、语音信号分析 (4)2.1语音学知识 (4)2.1.1音素和音节 (5)2.1.2汉语的声调 (5)2.1.3语音信号产生模型 (6)2.2语音信号数字化和预处理 (7)2.2.1数字化 (7)2.2.2预加重处理 (7)2.2.3防混叠滤波 (8)2.2.4加窗处理 (8)2.3语音信号的时域分析 (9)2.3.1短时能量分析 (9)2.3.2短时平均过零率 (11)2.3.3短时自相关函数和短时平均幅度差函数 (12)2.3.4语音端点检测 (13)2.4语音信号的频域分析 (14)2.4.1滤波器组法 (14)2.4.2傅立叶频谱分析 (14)2.5特征参数提取 (15)2.5.1 LPCC倒谱系数 (15)2.5.2 Mel频率倒谱系数 (16)三、语音识别主要算法 (17)3.1动态时间伸缩算法 (17)3.2基于规则的人工智能方法 (18)3.3人工神经网络方法 (19)3.4隐马尔可夫方法 (20)3.5 HMM和ANN的混合模型 (21)四、隐含马尔可夫模型算法 (23)4.1 HMM的基本理论和数学描述 (23)4.2 HMM的三个基本问题及解决算法 (24)4.3 HMM算法的改进 (31)4.4 HMM的结构和类型 (33)4.5 HMM算法实现的问题 (34)五、基于Matlab环境下的语音识别算法实现 (35)5.1识别系统平台介绍 (35)5.2在Matlab中HMM算法的实现 (36)5.2.1端点检测 (36)5.2.2特征参数提取 (36)5.2.3训练和识别 (37)5.3实验结论分析 (38)六、结束语 (39)6.1回顾 (39)6.2展望 (39)七、致谢 (40)参考文献 (40)一、前言1.1语音识别的发展历史作为智能计算机研究的主导方向和人机语音通信的关键技术,语音识别技术一直受到各国科学界的广泛关注。

声源定位matlab程序

声源定位matlab程序

声源定位matlab程序在MATLAB中进行声源定位的程序通常涉及到信号处理和声学定位技术。

声源定位的目标是确定声音的方向,通常使用麦克风阵列来实现。

以下是一个简单的MATLAB程序示例,用于声源定位:matlab.% 定义麦克风阵列参数。

numMics = 4; % 麦克风数量。

micSpacing = 0.1; % 麦克风间距(以米为单位)。

% 模拟接收到的声音信号。

fs = 44100; % 采样率。

t = (0:1/fs:1-1/fs)'; % 时间向量。

f1 = 1000; % 第一个声源的频率。

f2 = 2000; % 第二个声源的频率。

signal1 = sin(2pif1t); % 第一个声源的信号。

signal2 = sin(2pif2t); % 第二个声源的信号。

% 模拟麦克风接收到的声音。

micSignals = zeros(length(t), numMics);for i = 1:numMics.distance = (i-1) micSpacing; % 麦克风到声源的距离。

delay = distance/340; % 延迟(声音传播速度为340m/s)。

micSignals(:,i) = [zeros(round(delayfs),1);signal1(1:end-round(delayfs))] + [zeros(round(delayfs),1); signal2(1:end-round(delayfs))];end.% 声源定位。

[azimuth,elevation] =locateSource(micSignals,fs,micSpacing);% 显示结果。

disp(['声源方位角: ', num2str(azimuth), '°']);disp(['声源俯仰角: ', num2str(elevation), '°']);需要注意的是,以上代码中的`locateSource`函数是一个虚构的函数,实际上需要根据具体的声源定位算法来实现。

Matlab中的声音处理与音频分析技术

Matlab中的声音处理与音频分析技术

Matlab中的声音处理与音频分析技术引言在当今数字化的时代,声音处理及音频分析技术的应用越来越广泛。

Matlab作为一款功能强大的科学计算软件,在声音处理和音频分析领域也扮演着重要的角色。

本文将介绍一些在Matlab中常用的声音处理与音频分析技术,包括声音的采集与播放、音频文件的读取与处理、音频特征提取与分析等内容。

一、声音的采集与播放声音的采集与播放是声音处理的基础步骤。

Matlab提供了一些函数用于声音的采集与播放操作。

最常用的函数是`audiorecorder`和`audioplayer`,前者用于采集声音,后者用于播放声音。

通过这两个函数,我们可以方便地进行声音的录制和回放操作。

此外,Matlab还提供了一些其他的声音采集与播放函数,如`audiodevinfo`用于查看系统中的音频设备信息,`getaudiodata`用于获取录制的音频数据等。

二、音频文件的读取与处理除了实时采集声音,我们还可以在Matlab中直接读取音频文件进行处理。

Matlab支持常见的音频文件格式,如.wav、.mp3等。

通过`audioread`函数,我们可以将音频文件读取为Matlab中的矩阵形式,方便后续的处理。

读取后的音频数据可以进行各种处理操作,如滤波、降噪、混音等。

1. 滤波滤波是音频处理中常用的技术之一。

Matlab提供了丰富的滤波函数,如`filter`、`fir1`、`butter`等。

通过这些函数,我们可以进行低通滤波、高通滤波、带通滤波等各种滤波操作。

滤波可以去除噪声、调整音频频谱等。

2. 降噪降噪是音频处理中的重要任务之一。

在实际应用中,常常需要去除音频信号中的噪声。

Matlab提供了多种降噪算法,如均值滤波、中值滤波、小波降噪等。

这些算法可以根据不同的噪声类型和噪声强度进行选择和调整,以获得更好的降噪效果。

3. 混音混音是指将多个音频信号叠加在一起的操作。

Matlab提供了`audiowrite`函数,可以将多个音频文件混合成一个音频文件。

tdoa定位算法matlab代码

tdoa定位算法matlab代码

TDOA定位算法是一种基于时间差测量的定位方法,通过测量信号在不同接收节点的到达时间差来确定信号源的位置。

在实际应用中,TDOA定位算法可以用于无线定位、声纳定位等领域,具有广泛的应用前景。

为了实现TDOA定位算法,我们可以使用MATLAB编程语言进行算法实现。

下面将介绍如何利用MATLAB编写TDOA定位算法的代码,并给出具体的实现步骤。

一、获取信号到达时间差数据1.1 收集接收节点之间的信号到达时间差数据,包括信号源到各个接收节点的时间差信息。

1.2 对采集到的时间差数据进行预处理,包括去除异常值、滤波处理等,以确保数据的准确性和可靠性。

二、计算信号源位置2.1 构建TDOA定位算法的数学模型,根据信号到达时间差数据和接收节点的位置信息,建立定位问题的数学表达式。

2.2 利用MATLAB编程语言实现TDOA定位算法的数学模型,包括距离函数的定义、误差函数的构建等。

2.3 运用数值计算方法,如最小二乘法、非线性优化等,对定位问题进行求解,得到信号源的位置信息。

三、算法性能评估3.1 设计实验方案,生成合成数据或利用实际数据进行仿真实验。

3.2 对TDOA定位算法的性能进行评估,包括定位精度、计算速度、鲁棒性等方面的指标。

3.3 对算法的评估结果进行分析和讨论,找出算法的优点和不足之处,并提出改进方向。

通过以上步骤,我们可以实现TDOA定位算法的MATLAB代码,并对算法的性能进行评估和改进,从而更好地应用于实际系统中。

需要注意的是,在实际应用中,TDOA定位算法还需要考虑到信号传播模型、多径效应、多普勒效应等因素,进一步提高定位算法的准确性和鲁棒性。

也可以结合其他定位方法,如AOA定位、TOA定位等,进行多模式融合,提高定位系统的整体性能。

TDOA定位算法是一种基于时间差测量的定位方法,具有广泛的应用前景。

通过MATLAB编程实现TDOA定位算法的代码,并对算法的性能进行评估和改进,可以更好地应用于无线定位、声纳定位等实际系统中。

用matlab虚源法声场计算浅海声场的方法

用matlab虚源法声场计算浅海声场的方法

用matlab虚源法声场计算浅海声场的方法虚源法是一种常用于计算浅海声场的数值模拟方法。

它通过假设在水深H以上的水层对声波是平坦的,将真实声源放置在海床上方H/2的位置上,并在该位置上引入一个虚拟声源,将问题转化为一个在“虚源平坦”介质中的理想化问题。

本文将介绍如何使用Matlab进行虚源法声场计算的方法。

1.建立声场模型首先,需要根据实际情况定义声场的几何模型。

模型应包括声源、接收器和海底的位置、水层深度H以及声速剖面等。

根据实际需求,可以使用网格化方法或其他方法对声场进行离散化处理。

2.计算声速剖面声速剖面是声场模拟的重要参数之一,它描述了声波在水中传播时声速随深度的变化规律。

可以通过观测数据、声速剖面模型或其他方法获得声速剖面数据。

在Matlab中,可以使用插值或拟合方法对声速剖面进行处理和生成离散化数据。

3.计算声场传播根据声速剖面和声源接收器位置,可以利用Matlab中的声场传播模型,如Ray tracing(射线追踪)或Pekeris模型等,计算声场在海底以上水层中的传播规律。

这些模型利用声速剖面的信息和几何模型,通过给定的传播方程和初值条件进行数值迭代,计算声场在各个位置的声压场值。

4.引入虚源利用虚源法计算声场时,需要在声场起伏的介质中引入虚拟声源。

虚拟声源通常被放置在海床上方H/2的位置上。

可以将真实声源的声压波源当作虚拟声源,也可以使用与真实声源有相同辐射效果的虚拟声源。

虚源法利用由虚拟声源发出的声波进行传播计算,以获得声场的分布。

5.计算声场传播通过利用虚拟声源进行声场传播计算,可以得到声场各个位置的声压值。

在Matlab中,可以利用声压公式进行计算,例如亥姆霍兹方程、Kirchhoff-Helmholtz积分公式等。

6.分析和可视化结果计算完成后,可以对声场进行分析和可视化。

可以通过绘制等值线图、三维图像、截面图等方式展示声场分布,并进行相关分析。

Matlab提供了各种绘图和数据处理的函数,可以方便地对结果进行可视化和进一步分析。

如何使用Matlab进行卫星导航与定位

如何使用Matlab进行卫星导航与定位

如何使用Matlab进行卫星导航与定位卫星导航与定位是一门广泛应用于航空、航海、地理信息系统等领域的技术。

在这个时代,人们越来越依赖全球定位系统(GPS)来获取准确的位置信息。

而Matlab作为一种功能强大的数学软件工具,可以帮助我们进行卫星导航与定位的模拟和算法设计。

本文将介绍如何使用Matlab进行卫星导航与定位的相关内容。

在开始之前,我们需要明确一些基础知识。

首先,我们需要了解GPS工作的原理。

GPS系统主要由卫星、地面控制站和接收器三部分组成。

卫星发送信号,接收器接收并计算信号传播的时间差来确定位置。

其次,我们需要了解GPS的信号类型。

GPS信号包括C/A码和P码两种类型,其中C/A码用于民用接收器,P码用于军用接收器。

最后,我们需要了解GPS的误差来源。

GPS的定位误差主要来自多普勒效应、大气延迟、钟差等因素。

使用Matlab进行卫星导航与定位需要用到一些特定的工具和函数。

首先,我们需要导入相应的工具箱。

Matlab提供了GPS工具箱和导航工具箱,可以帮助我们进行相关的计算和模拟。

在导入工具箱之后,我们可以使用相关函数进行卫星导航与定位的模拟和计算。

例如,可以使用gpscoordinates函数来计算卫星的位置信息,使用gps2utc函数来进行时间转换等。

在进行卫星导航与定位的模拟和计算之前,我们需要准备相关的数据。

首先,我们需要获取卫星的星历数据。

星历数据包括卫星的位置、速度和加速度等信息,可以帮助我们计算卫星的轨道和位置。

其次,我们需要获取接收器的观测数据。

观测数据包括接收器接收到的信号的时间和信号的强度等信息,可以帮助我们计算信号传播的时间差和定位误差。

最后,我们需要获取地球的几何形状数据。

地球的几何形状数据包括地球的椭球体参数和地球的地理坐标系等信息,可以帮助我们进行地球坐标和地理位置的转换。

在得到所需的数据之后,我们就可以开始使用Matlab进行卫星导航与定位的模拟和计算了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB的声源定位系统摘要确定一个声源在空间中的位置是一项有广阔应用前景的有趣研究,将来可以广泛的应用于社会生产、生活的各个方面。

声源定位是通过测量物体发出的声音对物体定位,与使用声纳、雷达、无线通讯的定位方法不同,前者信源是普通的声音,是宽带信号,而后者信源是窄带信号。

根据声音信号特点,人们提出了不同的声源定位算法,但由于信号质量、噪声和混响的存在,使得现有声源定位算法的定位精度较低。

此外,已有的声源定位方法的运算量较大,难以实时处理。

关键词:传声器阵列;声源定位;Matlab目录第一章绪论 (1)第二章声源定位系统的结构 (2)第三章基于到达时间差的声源定位原理 (3)第四章串口通信 (5)第五章实验电路图设计 (8)第六章总结 (16)第七章参考文献 (17)第一章绪论1.1基于传声器阵列的定位方法简述在无噪声、无混响的情况下,距离声源很近的高性能、高方向性的单传声器可以获得高质量的声源信号。

但是,这要求声源和传声器之间的位置相对固定,如果声源位置改变,就必须人为地移动传声器。

若声源在传声器的选择方向之外,则会引入大量的噪声,导致拾取信号的质量下降。

而且,当传声器距离声源很远,或者存在一定程度的混响及干扰的情况下,也会使拾取信号的质量严重下降。

为了解决单传声器系统的这些局限性,人们提出了用传声器阵列进行声音处理的方法。

传声器阵列是指由一定的几何结构排列而成的若干个传声器组成的阵列。

相对于单个传声器而言具有更多优势,它能以电子瞄准的方式从所需要的声源方向提供高质量的声音信号,同时抑制其他的声音和环境噪声,具有很强的空间选择性,无须移动传声器就可对声源信号自动监测、定位和跟踪,如果算法设计精简得当,则系统可实现高速的实时跟踪定位。

传声器阵列的声音信号处理与传统的阵列信号处理主要有以下几种不同:(1)传统的阵列信号处理技术处理的信号一般为平稳或准平稳信号,相关函数可以通过时间相关来准确获得,而传声器阵列要处理的信号通常为短时平稳的声音信号,用时间平均来求得准确的相关函数比较困难。

(2)传统的阵列信号处理一般采用远场模型,而传声器阵列信号处理要根据不同的情况选择远场模型还是使用近场模型。

近场模型和远场模型最主要的区别在于是否考虑传声器阵列各阵元因接收信号幅度衰减的不同所带来的影响,对于远场模型,信源到各阵元的距离差与整个传播距离相比非常小,可忽略不计,对于近场模型,信源到各阵元的距离差与整个传播距离相比较大,必须考虑各阵元接收信号的幅度差。

(3)在传统的阵列信号处理中,噪声一般为高斯噪声(包括白、色噪声),与信源无关,在传声器阵列信号处理中噪声既有高斯噪声,也有非高斯噪声,这些噪声可能和信源无关,也可能相关。

由于上述阵列信号处理间的区别,给传声器阵列信号处理带来了极大的挑战。

声波在传播过程中要发生幅度衰减,其幅度衰减因子与传播距离成正比,信源到传声器阵列各阵元的距离是不同的,因此声波波前到达各阵元时,幅度也是不同的。

另外,当声音信号在传播时,由于反射、衍射等原因,使到达传声器的声音信号的路径除了直达路径外还存在着多条其它路径,从而产生接收信号的幅度衰减、音质变差等不利影响,这种现象称为混响(Reverberation)。

混响效应的存在产生了很多不利影响,如所获取的声音质量下降、声源定位的精度严重降低等。

1.2 MATLAB 软件的介绍MATLAB 是矩阵实验室(Matrix Laboratory)的简称,它的基本数据单位是矩阵,用MATLAB 解算问题要比用其他语言完成相同的事情简捷得多,MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

本设计是关于平面声源定位的方针与建模,根据实验要求,我们使用了MATLAB 软件,在这次设计中我们通过Neural Network Toolbox(神经网络工具箱)来解决声源定位建模与仿真的实验,计算声源的距离和角度。

第二章声源定位系统的结构一个完整的声源定位系统由硬件部分和软件部分构成。

具体结构如下所述。

硬件结构完整的声源定位系统的硬件结构如图1.2所示:由一定数目按特定位置摆放的传声器阵列,信号预处理系统,同步数据采集系统和数据处理系统组成。

图1.2 声源定位系统硬件结构框图在系统工作时,声音信号经传声器转换为电信号,然后经信号预处理系统处理后把信号调整到数据采集系统的输入信号电压范围,再经过采集系统采集后传输到数据处理系统,由数据处理系统中的软件系统处理后可得出声源的位置。

声音信号分析声源体发生振动会引起四周空气振荡,那种振荡方式就是声波。

声波借助空气向四面八方传播。

在开阔空间的空气中那种传播方式像逐渐被吹大的肥皂泡,是一种球形的阵面波。

除了空气,水、金属、木头等也都能够传递声波,它们都是声波的良好介质。

在真空状态中声波就不能传播了。

声音在不同的介质中的传播速度不同。

声音的速度受温度影响,温度越高,速度越快。

在15℃时,声音在空气中的传播速度为340m/s,25℃时为346m/s。

它和温度的关系可以用以下公式来表示:C =331.45 +0.61T(m/s) (2.1)在使用时,如果温度变化不大,则可认为声速是基本不变的。

声波传输距离首先和大气的吸收性有关,其次是温度、湿度、气压等。

第三章基于到达时间差的声源定位原理人对声源的定位主要用到了声音幅度这个物理量,而机器却可以精确的测量声音的相位。

由于声波在空气中以一定速度传播,到达设置于不同位置的传声器的相位不同,根据这些传声器对同一声音采集时的相位差别,我们可以计算出同一声音到达每对传声器的时间差值(又叫时延值)。

图2.1是到达时间差t的示意图。

如果我们得到了某个声源发出的声音到达一对传声器的时延值,则这个声源就处于以这对传声器所处的位置为焦点,到达时延所对应的声音传输距离为参数的双曲面上。

使用多对传声器得到多个时延值,也就得到了多个双曲面,声源位置就处于这些双曲面的相交点。

合适的安排传声器的位置,可以使得双曲面的交点只有一个,这点就是我们要的声源位置。

大多数声源定位是基于时延的方法,提高对时延估计的准确程度是这种方法的关键,而要得到准确的时延估计必须要确保有高效的信号采集能力。

图2.1到达时间差t的示意图传声器阵列几何模型与分析在声源定位的研究过程中,双传声器只能确定声源在以一定角度为顶角的双曲面上,不能确定声源的具体位置。

所以,想要探测出声源的位置,必须摆放两组甚至多组传声器,从而组成传声器阵列。

同时,定位的准确程度也取决于传声器的数量,在经过一定位置的摆放后,传声器的数量越多定位的精度也就越高。

图3.3就是一种由四个传声器组成的典型传声器摆放方法。

图3.3 四个传声器的定位摆放示意图可见,定位系统的成功与否与传声器的摆放有很大关系,传声器的数量会影响定位的精确程度。

几何定位方法本文使用4个传声器组成的传声器阵列来实现声源定位的仿真,传声器的分布如图3.3所示。

其中,假定声源S的坐标为(x0,y0),A1和A2摆放在X轴上,坐标为(-a,0)和(a,0);B1和B2摆放在Y轴上,坐标为(0,a)和(0,-a),声源S到各传声器的距离分别为d1,d2,d3,d4。

可见,4个传声器覆盖了整个平面空间,等距的分布在原点、X轴和Y轴上,这样的布局方式,一方面严密而一致,可以充分的接收声源信号;另一方面呈几何对称关系的各传声器的摆放,减少了很大部分的运算量,更高效的实现了对各个量之间的关系求解过程。

将四个传声器A1,A2,B1,B2放置于原点的平面直角坐标系中,两两分布在X和Y上,与原点的距离为a,a可以根据实际需要取值。

声源发出的声音信号以不同的时间传达至各传声器,由于声速c一定,所以根据传声器阵列所获得的时间差可以计算出声源至各传声器的距离差。

将采集得到的数据以数组的形式保存,继而进行下一步的运算与分析。

但是,由于本文只涉及到用计算机实现定位仿真,所以必须预先假定声源坐标,通过对假定坐标的运算得到声源S到各传声器间的距离差,此距离差将作为“已知的测量值”进行接下来的定位仿真,其过程举例如下:传声器至原点的间距a=20,声源S坐标x0=50,y0=-200,即S=(50,-200)。

声音信号的处理对声音信号的处理过程分为三个环节,首先通过几何方法计算声源到各传声器间的距离差,然后通过已得的距离差对声源位置进行计算,最后通过Matlab编程实现声源定位的仿真。

第四章串口通信串口是计算机上一种非常通用设备通信的协议。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

单片机将收集到的时间差通过发送数据线TxD和接收数据线RxD发送给PC机。

单片机与PC机通过RS-232C串行接口实现通信。

第五章实验电路图设计当超声波接收器接收到信号时,输出端输出一个脉冲,通过四组接收电路产生四个脉冲,每两个脉冲产生一个时差脉冲。

产生的脉冲信号A1和A2通过2个JK触发器,2个与门和1个或门产生出时差脉冲,脉冲的脉宽就是声源分别到接收器A1和A2的时间差时差脉冲放大图总原理图产生的2个时差脉冲分别通过单片机外部中断口INT0和INT1输入单片机,计时器启动工作方式0,当时差脉冲上升沿时,计数器启动计数;当时差脉冲下降沿时,计数器停止计数。

在Matlab程序编写时,可以使用cumsum函数实现d12的运算。

以此类推,可以得到声源S到各传声器的距离差d23,d24,d52,d13,d62,d27。

但是,由于声源发出的声波在传播过程中受到外界环境中噪音、混音等多方面因素影响,所以声源到个传声器的实际距离差与计算值之间有一定程度上的偏差。

为了解决这个问题,在d23,d24,d52,d13,d62,d27的计算值的基础上加上一个量“b”,b 的值为一个标准差为k的数乘以一百个随机正态分布样本,可以用randn函数实现这一过程。

图显示了声源S估计值。

第六章总结实现一个可仿真的声源定位系统是本论文的目的。

在算法研究比较充分的基础上,设计系统结构,实现声源定位。

本文对传声器阵列声源定位系统进行了系统的研究,主要工作如下:(1)介绍了声源定位方法,总结归纳了基于传声器阵列的定位方法的优缺点。

(2)设计并实现了可仿真的声源定位系统。

详细介绍了系统结构,给出了实验结果。

本文详细地论述了基于传声器阵列的定位技术。

着重介绍了基于时间差的定位方法。

讨论了以上定位方法的几何模型、数据采集、算法生成和定位仿真。

相关文档
最新文档