




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、 实验原理1、频率(周期)检测对周期信号来说,可以用时域波形分析来确定信号的周期,也就是计算相邻的两个信号波峰的时间差或过零点的时间差。这里采用过零点(ti)的时间差T(周期)。频率即为f=1/T,由于能够求得多个T的值(ti有多个),故采用它们的平均值作为周期的估计值。2、幅值检测在一个周期内,求出信号最大值ymax与最小值ymin的差的一半,即A=(ymax-ymin)/2,同样,也会求出多个A值,但第一个A值对应的ymax和ymin不是在一个周期内搜索得到的,故以除以第一个以外的A值的平均作为幅值的估计值。3、相位检测采用过零法,即通过判断与同频零相位信号过零点时刻,计算其时间差,然后换成相应的相位差。=2(),同样,以的平均值作为相位的估计值。频率、幅值和相位估计的流程图见实验讲义64页图3.13。4、数字信号统计量估计(1)峰值p的估计 在样本数据x中找出最大值与最小值,其差值为双峰值,双峰值的一半即为峰值。(2)均值估计(3)均方值估计(4) 差估估计5、频谱分析原理 时域分析只能反映信号的幅值随时间的变化情况,除单频谱分量的简单波形外,很难明确提示信号的频率组成的各频率分量的大小,而频域分析能很好的解决此问题。(1) DFT与FFT 对于给定的时域信号y,可以通过Fourier变换得到频域信息Y。采样信号是一个不连续的频谱,不能算出所有点的值,所以采用离散Fourier变换DFT,但其计算效率较低,故实际中常用快速傅立叶变换。(2) 频率、周期的估计对于Y(kf),如果当kf=f时,Y(kf)取最大值,则f为频率的估计值,由于采样间隔的误差,f也存在误差,其误差最大为f/2。周期T=1/f,从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期。(3) 频谱图为了直观地表示信号的频率特性,常常将傅立叶变换的结果用图形的方式表示,及频谱图。以频率f为横坐标,|Y(f)|为纵坐标,可以得到幅值谱;以频率f为横坐标,argY(f)为纵坐标,可以得到相位谱;以频率f为横坐标,ReY(f)为纵坐标,可以得到实频谱;以频率f为横坐标,ImY(f)为纵坐标,可以得到虚频谱。根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即傅立叶变换结果中频率大于Fs/2的部分是不正确的 ,故不在频谱中显示。(4) 模块划分模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。模块划分时应遵循如下规则:改进软件结构提高模块独立性;模块规模应该适中;深度,宽度,扇出都应适当;模块的作用域应该在控制域之内;力争降低接口的复杂程度;设计单入单出的模块口德模块;模块功能可以预测。对软件进行如讲义66页3.14图所示的模块划分。 参考代码如下:(1) 声卡输入:“开始录音”按钮的回调函数如下%首先获得设定的Fs值 Fs=str2double(get(findobj(Tag,samplerate),String); %根据设定的录音实诚进行录音,将其存入handles.y中handles.y=wavrecord(str2double(get(findobj(Tag,recordtime),String)*Fs,Fs,double);handles.inputtype=1;%保存handles结构体,使得handle.y在别的函数中也能使用guidata(hObject,handles);%在波形显示区绘出波形plot(handles.time,handles.y);title(WAVE);%将所采到的点的数量输出在“采样点数中”ysize=size(handles.y)set(handles.samplenum,String,num2str(ysize(1);(2) WAV文件输入:“打开文件”按钮的回调函数的部分内容%从WAVw文件中读取的声音信息并临时存放到temp变量中temp=wavread(get(findobj(Tag,filename),String);%获得所选的声道channel=str2double(get(handles.channel,String);%将指定的声道的信息存放到handles.y中handles.y=temp(:,channel);handles.inputtype=2;guidata(hObject,handles);plot(handles.time,handles.y);title(WAVE);ysize=size(handles.y)set(handles,samplenum,String,num2str(ysize(1);(3) 信号发生器Fs=str2double(get(findobj(Tag,samplerate),String);N=str2double(get(findobj(Tag,samplenum),String);x=linspace(0,N/Fs,N);soundtype=get(handles.wavetype,Value);frequency=str2double(get(handles.freq,String);amp=str2double(get(handles.amp,String);phase=str2double(get(handles.phase,String);switch soundtype case 1 %标准正弦波 y=amp*sin(2*pi*x*frequency+phase); case 2 %方波 y=amp*sign(sin(2*pi*x*frequency+phase); case 3 %三角波 y=amp*sawtooth(2*pi*x*frequency+phase,0.5); case 4 %锯齿波 y=amp*sawtooth(2*pi*x*frequency+phase);case 5 %白噪声 y=amp*(2*rand(size(x)-1); otherwise errordlg(Illegal wave type,Choose error);endif get(handles.add,Value)=0.0handles.y=y; %若没有勾选上“混叠”,则将生成的波形赋给handles.yelse handles.y=handles.y+y; %否则将生成的波形与原有的波形叠加endhandles.inputtype=3;guidata(hObject,handles);plot(handles.time,handles.y);title(WAVE);axis(0 N -str2double(get(handles.amp,String) str2double(get(handles.amp,String);(4) 时域分析Fs=str2double(get(findobj(Tag,samplerate),String);N=str2double(get(findobj(Tag,samplenum),String);if handles.inputtype=0 msgbox(No wave exist!Please choose a input type!); return;end%guo ling jian cen=1;ymax=max(handles.y(1) handles.y(2);ymin=min(handles.y(1) handles.y(2);from=str2double(get(handles.pointfrom,String);to=str2double(get(handles.pointto,String);if from1|to-from5; msgbox(Error range!); return;endfor i=from+2:to-1; if handles.y(i-1)0&handles.y(i-2)=0&handles.y(i+1)0 if handles.y(i)=0 ti(n)=i; else ti(n)=i-handles.y(i)/(handles.y(i)-handles.y(i-1);% x1=i-1;% y1=handles.y(i-1);% x2=i;% y1=handles.y(i); % a=handles.y(i)-handles.y(i-1);% b=a*x1-y1;% ti(n)=b/a; end amp(n)=(ymax-ymin)/2; ymax=0; ymin=0; n=n+1; else if ymaxhandles.y(i) ymin=handles.y(i); end endendn=n-1;%frequence and reriodicityfor i=1:n-1 T(i)=ti(i+1)-ti(i);endfreq=Fs/mean(T); %计算频率set(handles.outt,String,1/freq); %输出周期估计值set(handles.outfreq,String,num2str(freq); %输出频率估计值%amplitude%计算并输出幅度,以幅值均值作为其估计值set(handles.outamp,String,num2str(mean(amp(2:n-1);%phase%将待分析信号的过零点与标准信号的过零点相比较,从而得出相位phase=2*pi*(1-(ti(1:n-1)-1)./T+floor(ti(1:n-1)-1)./T);%peak%最大值与最小值的一半即为峰值set(handles.outpeak,String,(max(handles.y(from:to)-min(handles.y(from:to)/2);%mean%计算并输出均值set(handles.outmean,String,mean(handles.y(from:to);%meansquare%计算并输出均方值set(handles.outmeansquare,String,mean(handles.y(from:to).2);%s%计算输出方差set(handles.outs,String,std(handles.y(from:to).2);(5) 频域分析Fs=str2double(get(findobj(Tag,samplerate),String);N=str2double(get(findobj(Tag,samplenum),String);if handles.inputtype=0 msgbox(No wave exist!Please choose a input type!); return;endfrom=str2double(get(handles.pointfrom,String);to=str2double(get(handles.pointto,String);%首先提出待分析的样本,将其存入sample中sample=handles.y(from:to);%生成离散化的频率点,以采样频率作为离散化的间隔f=linspace(0,Fs/2,(to-from+1)/2);Y=fft(sample,to-from+1);C,I=max(abs(Y); %对样本做快速傅里叶变换,变换结果存入Y中%获得幅值最大的点及其所对应的下表值I,则f(I)为最大值所对应的频率,即信号的估计值 set(handles.foutt,String,1/f(I); %计算并输出周期的估计值set(handles.foutfreq,String,1/f(I); %输出频率的估计值Y=Y(1:(to-from+1)/2); %为与f对应,只取Y的前半部分plot(handles.plot1,f,2*sqrt(Y.*conj(Y); %绘制幅值谱曲线 plot(handles.plot2,f,angle(Y); %绘制相位谱曲线 plot(handles.plot3,f,real(Y); %绘制实频谱曲线 plot(handles.plot4,f,imag(Y); %绘制虚频谱曲线 plot(handles.plot5,f,abs(Y).2); %绘制功率谱曲线xlabel(handles.plot1,freqency(Hz);xlabel(handles.plot2,freqency(Hz);xlabel(handles.plot3,freqency(Hz);xlabel(handles.plot4,freqency(Hz);xlabel(handles.plot5,freqency(Hz);ylabel(handles.plot1,amplitude);ylabel(handles.plot2,phase(red);ylabel(handles.plot3,real);ylabel(handles.plot4,imaginary);ylabel(handles.plot5,power);二、 实验内容构建交互界面,设计一个音频频谱分析仪,要求基于声卡与MATLAB实现音频信号频谱分析仪的设计原理与实现,功能包括:(1) 音频信号输入,从声卡输入、从WAV文件输入,从标准信号发生器输入;(2) 信号波形分析,包括幅值、频率、周期、相位的估计,以及统计峰值、均
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业金融服务提升策略研究报告
- 普通企业产品推广与市场营销计划方案
- 日常办公事务处理指南教程
- 明确物理测试误差标准操作规范
- (2025年标准)国企校园招聘协议书
- (2025年标准)管理蜜蜂协议书
- (2025年标准)管护人员协议书
- (2025年标准)关于 补贴协议书
- 消防安全个人工作总结
- 危险化学品生产企业安全评价导则
- 港口和码头基本知识培训课件
- 美容外科安全应急预案范文(3篇)
- 住宅公共部分装修综合项目施工专项方案
- 皮肤病真菌感染性皮肤
- 骨折内固定术术前宣教
- 咖啡店成本及消耗一览
- DB32-T 4281-2022 江苏省建筑工程施工现场专业人员配备标准
- GB/T 618-2006化学试剂结晶点测定通用方法
- GB/T 28799.2-2020冷热水用耐热聚乙烯(PE-RT)管道系统第2部分:管材
- 办公室工作手册(国企、事业单位版本)
- 警械使用课件
评论
0/150
提交评论