实验八:音频频谱分析仪设计与实现

上传人:第*** 文档编号:32638429 上传时间:2018-02-12 格式:DOC 页数:28 大小:1.01MB
返回 下载 相关 举报
实验八:音频频谱分析仪设计与实现_第1页
第1页 / 共28页
实验八:音频频谱分析仪设计与实现_第2页
第2页 / 共28页
实验八:音频频谱分析仪设计与实现_第3页
第3页 / 共28页
实验八:音频频谱分析仪设计与实现_第4页
第4页 / 共28页
实验八:音频频谱分析仪设计与实现_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《实验八:音频频谱分析仪设计与实现》由会员分享,可在线阅读,更多相关《实验八:音频频谱分析仪设计与实现(28页珍藏版)》请在金锄头文库上搜索。

1、实验八:音频频谱分析仪设计与实现一、实验原理:MATLAB 是一个数据分析和处理功能十分强大的工程实用软件,其数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令。本实验要求基于声卡与 MATLAB 实现音频信号频谱分析仪的设计原理与实现,功能包括:(1)音频信号输入,从声卡输入,从 WAV 文件输入,从标准信号发生器输入;(2)信号波形分析,包括幅值,频率,周期,相位的估计,以及统计量峰值,均值,均方值和方差的计算;(3)信号频谱分析,频率,周期的估计,图形显示幅值谱,相位谱,实频谱,虚频谱和功率谱的曲线。1.频率(周期)检测对周期信号来说,可以用时域波形分析来确定信号的周期,也就

2、是计算相邻的两个信号波峰的时间差,或过零点的时间差。这里采用过零点(t)的时间差 T(周期) 。频率即为频率即为 f=1/T,由于能够求得多个 T 值,故采用他们的平均值作为周期的估计值。2.幅值检测在一个周期内,求出信号最大值 与最小值 的差得一半记为 A,同样得到多个 A 值,maxyminy但第一个 A 值对应的 和 不是在一个周期内搜索得到的,故以除第一个以外的 A 值axin的平均作为幅值的估计值。3.相位检测采用过零法,即通过判断与同频零相位信号过零点时刻,计算其时间差,然后换成相应的相位差。 ,同样以 的平均值作为相位的估计值。) ( T/ti-124.数字信号统计量估计(1)峰

3、值 P 的估计在样本数据 x 中找出最大值与最小值,其差为双峰值,双峰值的一半即为峰值。P=0.5max(y)-min(y)(2)均值估计N 为样本容量。 1)y(E(3)均方值估计 22)((4)方差估计 2)(E-N1)y(Dy5.频谱分析原理时域分析只能反映信号的幅值随时间的变化情况,除但频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。(1)DFT 与 FFT对于给定的时域信号 y,可以通过 Fourier 变换得到频域信息 Y。Y 可按下式计算式中,N 为样本容量,t = 1/Fs 为采样间隔。采样信号的频谱是一个连续的频谱,不可能计算出

4、所有的点的值,故采用离散 Fourier 变换(DFT),即式中,f = Fs/N。但上式的计算效率很低,因为有大量的指数(等价于三角函数) 运算,故实际中多采用快速 Fourier 变换(FFT)。其原理即是将重复的三角函数算计的中间结果保存起来,以减少重复三角函数计算带来的时间浪费。由于三角函数计算的重复量相当大,故FFT 能极大地提高运算效率。(2)频率、周期的估计对于 Y(kf),如果当 kf = 时,Y(k f)取最大值,则 为频率的估计值,由于采样间隔 f的误差, 也存在误差,其误差最大为 f / 2,周期 T=1/f。f从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够

5、精确地估计出原标准信号的频率和周期。(3)频谱图为了直观地表示信号的频率特性,工程上常常将 Fourier 变换的结果用图形的方式表示,即频谱图。以频率 f 为横坐标,|Y(f)|为纵坐标,可以得到幅值谱;以频率 f 为横坐标,arg Y(f)为纵坐标,可以得到相位谱;以频率 f 为横坐标,Re Y(f)为纵坐标,可以得到实频谱;以频率 f 为横坐标,Im Y(f)为纵坐标,可以得到虚频谱。根据采样定理,只有频率不超过 Fs/2 的信号才能被正确采集,即 Fourier 变换的结果中频率大于 Fs/2 的部分是不正确的部分,故不在频谱图中显示。即横坐标 f 0, Fs/2(4)模块划分模块化就

6、是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成制定的功能,满足用户需求。在模块分化时应遵循如下原则:改进软件结构提高模块独立性;模块规模应该适中;深度、宽度、扇出和扇入都应适当;模块的作用域应该在控制域之内;力争降低模块接口的复杂程度;设计单入口单出口的模块;模块功能应该可以预测。二、实验内容:参考给定的代码,构建交互界面,设计一个音频频谱分析仪,实现相应的功能。程序文本:function varargout = GGfig(varargin)% GGFIG M-file for GGfig.fig% GGFIG, by itself

7、, creates a new GGFIG or raises the existing% singleton*.% H = GGFIG returns the handle to a new GGFIG or the handle to% the existing singleton*.% GGFIG(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in GGFIG.M with the given input arguments.% GGFIG(Property,Value,.)

8、creates a new GGFIG or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before GGfig_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to GGfig_OpeningFcn via varar

9、gin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help GGfig% Last Modified by GUIDE v2.5 26-Dec-2014 21:19:45% Begin initialization code - DO NOT EDITgui_Singleto

10、n = 1;gui_State = struct(gui_Name, mfilename, .gui_Singleton, gui_Singleton, .gui_OpeningFcn, GGfig_OpeningFcn, .gui_OutputFcn, GGfig_OutputFcn, .gui_LayoutFcn, , .gui_Callback, );if nargin & ischar(varargin1)gui_State.gui_Callback = str2func(varargin1);endif nargoutvarargout1:nargout = gui_mainfcn(

11、gui_State, varargin:);elsegui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before GGfig is made visible.function GGfig_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata

12、 reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to GGfig (see VARARGIN)% Choose default command line output for GGfighandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIW

13、AIT makes zhaiqi wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = GGfig_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figur

14、e% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;% - Executes on button press in inputradiobutton.function inputradiobutton_Callback(hObje

15、ct, eventdata, handles)% hObject handle to inputradiobutton (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,Value) returns toggle state of inputradiobuttonfunction filename_Callback(hObject, eventdata, handles)% hObject handle to filename (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,String) returns contents of filename as text

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号