资源描述:
《音频频谱分析仪仿真实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、音频频谱分析仪仿真实验摘要:频谱分析仪是一种用来对被测信号进行频率及频谱分析的重要测量仪器,广泛应用于电声测量、音频制作、信号分析乃至振动测试等领域。本设计介绍了MATLAB仿真环境,之后对数字仿真进行了探讨,最后重点介绍了音频频谱分析仪仿真实验的详细设计方法,实验过程和结果,并对实验结果进行了分析。 关键词:MATLAB数字仿真频谱分析仪FFT变换音频 :TM935.21:A:1007-9416(2010)08-0113-02 1概述 本文在MATLAB仿真环境下,对音频频谱分析仪进行了仿真。它首先通过打开文件对话框选择任何一个.ain.m %
2、File:main.m %AUDIOSPECTRUMANALYSER %Author:LiuSiZhuo %Date:5/2/2004 clear; clc; %清除工作区 globalxtdtfsc1c2H_oscH2 %示波器 %打开对话框输入文件 [fname,pname]=uigetfile('*.e,fname]; %文件名称和路径 %读入声音文件(*.,n]=size(x); file=[file'fs='int2str(fs)'Hz,'int2str(nbits)'bits']; ifn==2 file=[file'
3、,stero']; x=x(:);%若是双声道,将数据合并为一列 %x=x(:,1);%取左声道数据 %x=x(:,2);%取右声道数据 end; %增加菜单项(Zoom,Play,Spectrum),生成信号波形,回应(Callback)分别调用 %函数audspec('Zoom'),audspec('Play')和audspec('Spectrum')。 H_osc=figure('Name',['OscilloScope'blanks(6)file],... 'NumberTitle','off','Position',[10786404
4、80]); uimenu('Label','&Zoom','Callback','audspec(''Zoom'');'); uimenu('Label','&Play','Callback','audspec(''Play'');'); uimenu('Label','&Spectrum','Callback','audspec(''Spectrum'');'); c1='r';c2='b'; dt=1/fs;%dt=1/fs,fs是采样速率(Hz) N=length(x); t=(0:N-1)*dt; T=N*dt; ss='s'; i
5、fT<1 t=t*1000; ss='ms'; elseifT<1e-03 t=t*1e+06; ss='us'; end; plot(t,x,c1);%画左右声道信号波形 set(gca,'FontName','Arial','FontSize',10); %gca是返回当前轴的句柄并设置 title(['画左右声道声音波形']); xlabel(['T('ss')']); n1=1; n2=N; H2=-1; 程序2:audspec.m functiony=audspec(action); %File:audspec.m
6、 %Callbackforthemainp(action,'Play')%播放声音文件 v=axis;%返回当前轴坐标的设置 del=t(2)-t(1); del=del*.5;%v(1)和v(2)是X轴坐标的设置 n1=find(abs(t-v(1))7、(H_osc,'xon');%只能X轴放大 elseifstrcmp(action,'Spectrum')%频谱分析仪 v=axis;%返回当前轴坐标的设置 del=t(2)-t(1); del=del*.5;%v(1)和v(2)是X轴坐标的设置 n1=find(abs(t-v(1))8、re('Name','Spectrum