数字信号处理实验8音频频谱分析仪设计与实现Word文件下载.docx
- 文档编号:17625564
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:30
- 大小:523.04KB
数字信号处理实验8音频频谱分析仪设计与实现Word文件下载.docx
《数字信号处理实验8音频频谱分析仪设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验8音频频谱分析仪设计与实现Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
其中tin表示第n个过零点,yi为第i个采样点的值,Fs为采样频率。
2、数字信号统计量估计
(1)峰值P的估计
在样本数据x中找出最大值与最小值,其差值为双峰值,双峰值的一半即为峰值。
P=0.5[max(yi)-min(yi)]
(2)均值估计
式中,N为样本容量,下同。
(3)均方值估计
(4)方差估计
2、频谱分析原理
时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。
(1)DFT与FFT
对于给定的时域信号y,可以通过Fourier变换得到频域信息Y。
Y可按下式计算
式中,N为样本容量,Δt=1/Fs为采样间隔。
采样信号的频谱是一个连续的频谱,不可能计算出所有的点的值,故采用离散Fourier变换(DFT),即
式中,Δf=Fs/N。
但上式的计算效率很低,因为有大量的指数(等价于三角函数)运算,故实际中多采用快速Fourier变换(FFT)。
其原理即是将重复的三角函数算计的中间结果保存起来,以减少重复三角函数计算带来的时间浪费。
由于三角函数计算的重复量相当大,故FFT能极大地提高运算效率。
(2)频率、周期的估计
对于Y(kΔf),如果当kΔf=时,Y(kΔf)取最大值,则为频率的估计值,由于采样间隔的误差,也存在误差,其误差最大为Δf/2。
周期T=1/f。
从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期,这个将在下一章做出验证
3、频谱图
为了直观地表示信号的频率特性,工程上常常将Fourier变换的结果用图形的方式表示,即频谱图。
以频率f为横坐标,|Y(f)|为纵坐标,可以得到幅值谱;
以频率f为横坐标,argY(f)为纵坐标,可以得到相位谱;
以频率f为横坐标,ReY(f)为纵坐标,可以得到实频谱;
以频率f为横坐标,ImY(f)为纵坐标,可以得到虚频谱。
根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即Fourier变换的结果中频率大于Fs/2的部分是不正确的部分,故不在频谱图中显示。
即横坐标f∈[0,Fs/2]
4、模块划分
模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。
根据人类解决一般问题的经验,如果一个问题由两个问题组合而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和,也就是说把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。
这就是模块化的根据。
在模块划分时应遵循如下规则:
改进软件结构提高模块独立性;
模块规模应该适中;
深度、宽度、扇出和扇入都应适当;
模块的作用域应该在控制域之内;
力争降低模块接口的复杂程度;
设计单入口单出口的模块;
模块功能应该可以预测。
3、实验要求:
参考以上原理,查阅相关资料,构建交互界面,设计一个音频频谱分析仪,实现一下功能:
(1)音频信号信号输入,从声卡输入、从WAV文件输入、从标准信号发生器输入;
(2)信号波形分析,包括幅值、频率、周期、相位的估计,以及统计量峰值、均值、均方值和方差的计算;
(3)信号频谱分析,频率、周期的估计,图形显示幅值谱、相位谱、实频谱、虚频谱和功率谱的曲线。
4、实验界面及程序
程序:
functionvarargout=yinpin(varargin)
%YINPINM-fileforyinpin.fig
%YINPIN,byitself,createsanewYINPINorraisestheexisting
%singleton*.
%
%H=YINPINreturnsthehandletoanewYINPINorthehandleto
%theexistingsingleton*.
%YINPIN('
CALLBACK'
hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinYINPIN.Mwiththegiveninputarguments.
Property'
'
Value'
...)createsanewYINPINorraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforeyinpin_OpeningFunctiongetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtoyinpin_OpeningFcnviavarargin.
%*SeeGUIOptionsonGUIDE'
sToolsmenu.Choose"
GUIallowsonlyone
%instancetorun(singleton)"
.
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Edittheabovetexttomodifytheresponsetohelpyinpin
%LastModifiedbyGUIDEv2.507-Nov-201217:
08:
53
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('
gui_Name'
mfilename,...
'
gui_Singleton'
gui_Singleton,...
gui_OpeningFcn'
@yinpin_OpeningFcn,...
gui_OutputFcn'
@yinpin_OutputFcn,...
gui_LayoutFcn'
[],...
gui_Callback'
[]);
ifnargin&
&
ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
%Endinitializationcode-DONOTEDIT
%---Executesjustbeforeyinpinismadevisible.
functionyinpin_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%varargincommandlineargumentstoyinpin(seeVARARGIN)
%Choosedefaultcommandlineoutputforyinpin
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%UIWAITmakesyinpinwaitforuserresponse(seeUIRESUME)
%uiwait(handles.figure1);
%---Outputsfromthisfunctionarereturnedtothecommandline.
functionvarargout=yinpin_OutputFcn(hObject,eventdata,handles)
%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);
%Getdefaultcommandlineoutputfromhandlesstructure
varargout{1}=handles.output;
%---Executesduringobjectcreation,aftersettingallproperties.
functionedit1_CreateFcn(hObject,eventdata,handles)
%hObjecthandletoedit1(seeGCBO)
%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled
%Hint:
editcontrolsusuallyhaveawhitebackgroundonWindows.
%SeeISPCandCOMPUTER.
ifispc&
isequal(get(hObject,'
BackgroundColor'
),get(0,'
defaultUicontrolBackgroundColor'
))
set(hObject,'
white'
);
functioncaiyangpinlv_CreateFcn(hObject,eventdata,handles)
%hObjecthandletocaiyangpinlv(seeGCBO)
functioncaiyangdianshu_CreateFcn(hObject,eventdata,handles)
%hObjecthandletocaiyangdianshu(seeGCBO)
%---Executesonbuttonpressinluyin.
functionluyin_Callback(hObject,eventdata,handles)
%hObjecthandletoluyin(seeGCBO)
get(hObject,'
)returnstogglestateofluyin
set(handles.luyin,'
value'
1);
set(handles.wavfile,'
0);
set(handles.xinhaofasheng,'
h=findobj('
Tag'
recordtime'
set(h,'
enable'
on'
kaishiluyin'
wavname'
off'
liulan'
inwave'
infudu'
infre'
inphase'
mix'
shengchengboxing'
%---Executesonbuttonpressinwavfile.
functionwavfile_Callback(hObject,eventdata,handles)
%hObjecthandletowavfile(seeGCBO)
)returnstogglestateofwavfile
%---Executesonbuttonpressinxinhaofasheng.
functionxinhaofasheng_Callback(hObject,eventdata,handles)
%hObjecthandletoxinhaofasheng(seeGCBO)
)returnstogglestateofxinhaofasheng
functionrecordtime_CreateFcn(hObject,eventdata,handles)
%hObjecthandletorecordtime(seeGCBO)
%---Executesonbuttonpressin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 音频 频谱 分析 设计 实现