利用MATLAB仿真多普勒效应.doc_第1页
利用MATLAB仿真多普勒效应.doc_第2页
利用MATLAB仿真多普勒效应.doc_第3页
利用MATLAB仿真多普勒效应.doc_第4页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用MATLAB仿真多普勒效应 某某某摘 要:分析多普勒效应特性,建立数学模型,利用MATLAB软件对其进行仿真试验,进行定量分析,根据仿真试验结果绘制出听者接收到的信号的频率变化曲线以及用信号处理工具箱函数spectrogram绘制的时间频率图,并生成相应的声音。关键词:Doppler effect MATLAB/ Simulink0 研究背景多普勒效应是由生在德国的奥地利物理学家多普勒(Johann Doppler 1802一1853)发现的。1845年,荷兰气象学家巴依斯巴洛(h.d.Buys Ballot)测得了声音的多普勒效应。一辆汽车在我们身旁急驰而过,车上喇叭的音调有一个从高到低的突然变化;站在铁路旁边听火车的汽笛声也能够发现,火车迅速迎面而来时音调较静止时为高,而火车迅速离去时则音调较静止时为低。这是日常生活中的一个多普勒效应的例子。在天文、通信等领域还有众多的例子。当波源或观察者相对于媒质运动时,或者说波源和观察者有相对运动时,观察者接受到的震动频率与波源震动频率不同的现象,称为多普勒效应。对于多普勒效应的讨论,一般仅限于声源和听者在同一直线上运动的情况。当声源和听者不在同一直线上运动时,接收频率变化比较复杂,听者接收到的信号波形方程也难以用解析式表示。MATLA具有强大的数值计算和仿真功能以及图形技术。本文试图从MATLAB编程的角度出发,应用MATLAB的Simulink仿真试验方法,建立仿真的试验环境,对声源和听者不在同一直线上运动的情况下产生的多普勒效应特性进行分析,产生极好的模拟,实现多普勒效应的验证,绘制出听者接收到的信号的频率变化曲线以及用信号处理工具箱函数spectrogram绘制的时间频率图,并生成相应的声音。1 基本原理以下公式描述了多普勒效应现象的各个物理量之间的定量关系: (1-1)其中, f0是声源发出的声音的频率; v是听者与声源的相对运动速度;为速度矢量与声源和听者的连线夹角;vs为声音在空气中传播的速度,f是听者听到的声音频率。 2 理论模型多普勒效应-设声源距离听者的水平距离为,以v的速度沿水平方向向听者直线驶来,其轨迹与听者的最小距离为垂直距离y ,声源的频率为f0,试求听者接受到的信号的频率变化曲线以及用信号处理工具箱函数spectrogram绘制的时间频率图,并生成相应的声音。3 仿真试验下面是一段用MATLAB的M文件依据公式(1-1)原理编写的程序(1-1)。它会产生一个名为dopp.wav的表现多普勒效应的声音文件,描述火车向一个距离铁路30米(垂直距离)、距火车150(水平距离)的听者开来时他听到的声音。将u1送入图3-1所示的Simulink仿真系统,再一次听到该声音,并且看到用频谱仪表现的声音频率随时间的变化的情况。表3-1和表3-2给出了仿真系统中两个模块的主要参数设置。表3-1 From Multimedia File(波形文件)的主要参数 模块名称 From Multimedia File 位置 DSP System toolbox / Signal Processing Sources参 数 名 称参 数 值File name(文件名)Dopp.wavSamples per output frame(输出每帧中的样值数)1024表3-2 To Audio Device(扬声器)的主要参数 模块名称 To Audio Device 位置DSP System toolbox / Signal Processing Sinks参 数 名 称参 数 值 DeviceDefaultQueue duration(seconds)(队列延迟时间)1Automatically determine Buffer size(自动确定缓冲区长度)选中图3-1 显示声音信号(多普勒效应)的仿真系统模型 程序1-1% 多普勒效应程序x0=150; %mv=50; %车速m/sy0=30; %mc=330; %声音在空气中的速度m/sf0=2000; %声音的频率Hzfs=8000; %采样频率t=0:1/fs:6; %规定t的范围和步进x_t=-x0+v.*t; %火车与观察者的水平距离y=y0; %火车与观察者的垂直距离r=sqrt(x_t.2+y.2); %火车与观察者间距离costheta=x_t./r; %声速矢量与火车和听者间连线夹角的余弦f=f0./(1+v.*costheta./c); %听者接收到的频率fmin=min(f); fmax=max(f);voltage=(f-fmin)./(fmax-fmin)*2-1; %归一化调频电压在 -1 +1之间 1signal=0.5*vco(voltage,fmin fmax,fs); %压控震荡器,由输入电压控制输出信号频率u=sin(2*pi*f0*t); %声源发出的信号sound(u,fs); %播放声源发出的信号 2pause(5); %暂停 3sound(signal,fs); %播放听者接收到的信号 4wavwrite(signal,fs,dopp.wav); %音频数据存盘 5figure(1);plot(t,f);xlabel(Time/s);ylabel(Freq/Hz); %做出听者接收到的信号的频率变化曲线figure(2);spectrogram(signal,kaiser(256,5),220,512,fs,yaxis); %做出时间频率图 6axis(0 6,1000,spectro3000) 程序难点分析1 在计算机中所能存储的数字序列,也即模拟信号必须通过取样和量化后,变成相应的数字信号,才能被计算机存储和处理。对音频信号来说,实现模拟音频信号与数字音频信号之间的转化模块就是声卡,MATLAB可以方便地对声卡进行诸如采样频率等输入/输出参数的配置。2 播放火车静止时的汽笛声。使用命令“sound”将数字序列以设定的采样速率输出到声卡,通过声卡转化为模拟音频信号。“sound”用法是: sound(y,Fs); 其中:y为取值范围必须在-1,,1区间的n行1列的数字序列(单声道输出)。Fs为设定的采用速率,一般声卡支持5000Hz到441000Hz。3 此处暂停必不可少,且时间要足够,以便再打开声音系统,这个量与计算机硬件有关。4 播放静止的听者听到运动的火车的汽笛声。5 MATLAB可以记录的音频信号直接保存为“*.wav”格式。利用命令“wavwrite(y,Fs,Filename);”就可以将向量y存储为取样频率为Fs的wav音频 文件。6 另一个函数发生器是压控振荡器(VCO),它由输入向量来决定某个震荡频率的信号。此处,绘制生成信号的光谱图。 频域测量仪器(频谱仪Spectrum Scope)计算机仿真中的频谱仪应用的是数字信号处理中的快速傅里叶变换(FFT)技术,它能完成数据流从时域到频域的变换。将时域的数据流取出一段,即FFT size(快速傅里叶变换的长度)确定为N,通常要求N是2的幂次方。同时需要设置相应长度的Buffer Size(缓存器)。N的大小(即时窗的长短)决定了频谱仪的分辨率,N越大,频率的分辨率就越高,但相应的计算时间也愈长。希望所研究的谱线内容出现在频谱仪显示窗的中间部分,能看到在频率轴上谱线的低端和高端的情况,以便于观察和分析。要做到这一点,将输入信号的采样频率取为期望的频率显示窗最大值的两倍即可。注意,频谱仪的采样频率与被测信号的采样频率要一致。4 仿真结果及分析(1)仿真结果图4-1所示:M文件程序运行结束时绘出的听者接收到信号的频率变化曲线。图4-2所示:用信号处理工具箱函数spectrogram绘制的时间频率图。图4-3所示:某个时刻仿真系统中的频谱仪上显示的功率谱。图4-1 听者接收到的信号的频率变化曲线 图4-2 时间频率图(Swept-Frequency Waveforms)T=0s T=3s T=6s 图4-3 频谱仪显示结果分析 傅里叶变换是把各种形式的信号用正弦信号表示,因此非正弦信号进行傅里叶变换,会得到与原信号频率不同的成分都是原信号频率的整数倍。这些高频信号是用来修饰频率与原信号相同的正弦信号,使之趋近于原信号的。所以说,频谱上频率最低的一个峰(往往是幅度上最高的),就是原信号频率。由上可知,听者接收到的信号的频率先高于原来的汽笛声,后低于原来的汽笛声。5 结束语在MATLAB/Simulink下,从数学模型到计算机仿真模型的转换非常容易。本文利用Simulink结合M文件编程的方法,使其同时具备图形界面的直观性和字符界面的强大功能。事实上,所有Simulink的模块以及系统构建、仿真参数等均可通过编程语句实现。针对声源和听者不在同一直线上运动情况,利用MATLAB/Simulink软件对其进行了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论