收藏 分享(赏)

matlab在信号系统中应用论文new.doc

上传人:dzzj200808 文档编号:2648899 上传时间:2018-09-24 格式:DOC 页数:6 大小:45KB
下载 相关 举报
matlab在信号系统中应用论文new.doc_第1页
第1页 / 共6页
matlab在信号系统中应用论文new.doc_第2页
第2页 / 共6页
matlab在信号系统中应用论文new.doc_第3页
第3页 / 共6页
matlab在信号系统中应用论文new.doc_第4页
第4页 / 共6页
matlab在信号系统中应用论文new.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、MATLAB 在信号与系统中的应用摘要: 声卡与 MATLAB 的声音信号频谱分析仪的设计原理与实现方法,分析软件的性能并比较时域分析与频域分析各自的优势。频域,频率估计是通过找出幅值谱峰值点对应的频率求出;时域,频率估计是使用过零检测的方式计算出。关键字: MATLAB 、音频信号、时域、频域 英文翻译:MATLAB、A udio、 time domain、frequency domain随着软硬件技术的发展,仪器的智能化与虚拟化已成为未来实验室及研究机构的发展方向。虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。基于计算机软硬件平台的虚拟仪

2、器可代替传统的测量仪器,如示波器、逻辑分析仪、信号发生器、频谱分析仪等。从发展史看,电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器,由于计算机性能的飞速发展,已把传统仪器远远抛到后面,并给虚拟仪器生产厂家不断带来连锅端的技术更新速率。目前已经有许多较成熟的频谱分析软件,如SpectraLAB、RSAVu、dBFA 等。声卡是多媒体计算机最基本的配置硬件之一,价格便宜,使用方便。MATLAB 是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令。本文将给出基于声卡与 MATLAB 的声音信号频谱分析仪的设计原理与实现方法,功能包括:

3、(1) 音频信号信号输入,从声卡输入、从 WAV 文件输入、从标准信号发生器输入;(2) 信号波形分析,包括幅值、频率、周期、相位的估计,以及统计量峰值、均值、均方值和方差的计算;(3) 信号频谱分析,频率、周期的估计,图形显示幅值谱、相位谱、实频谱、虚频谱和功率谱的曲线。对周期信号来说,可以用时域波形分析来确定信号的周期,也就是计算相邻的两个信号波峰的时间差、或过零点的时间差。这里采用过零点(ti)的时间差 T(周期)。频率即为,由于能够求得多个 T 值(ti 有多个),故采用它们的平均值作为周期的估计值。在一个周期内,求出信号最大值与最小值的差的一半,即,同样,也会求出多个 A 值,但第1

4、 个 A 值对应的和不是在一个周期内搜索得到的,故以除第 1 个以外的 A 值的平均作为幅值的估计值。采用过零法,即通过判断与同频零相位信号过零点时刻,计算其时间差,然后换成相应的相位差。 ,x表示 x 的小数部分,同样,以的平均值作为相位的估计值。时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。由于从频域能获得的主要是频率信息,所以本节主要介绍频率(周期)的估计与频谱图的生成。采样信号的频谱是一个连续的频谱,不可能计算出所有的点的值,故采用离散 Fourier 变换(DFT),即因为有大量的指数(

5、等价于三角函数)运算,故实际中多采用快速 Fourier 变换(FFT)。其原理即是将重复的三角函数算计的中间结果保存起来,以减少重复三角函数计算带来的时间浪费。对于,如果当时,取最大值,则为频率的估计值,由于采样间隔的误差,也存在误差。从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期。为了直观地表示信号的频率特性,工程上常常将 Fourier 变换的结果用图形的方式表示,即频谱图。以频率 f 为横坐标,为纵坐标,可以得到幅值谱;以频率 f 为横坐标,为纵坐标,可以得到相位谱;以频率 f 为横坐标,为纵坐标,可以得到实频谱;以频率 f 为横坐标,为

6、纵坐标,可以得到虚频谱。根据采样定理,只有频率不超过的信号才能被正确采集,即 Fourier 变换的结果中频率大于的部分是不正确的部分,故不在频谱图中显示。即横坐标。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。根据人类解决一般问题的经验,如果一个问题由两个问题组合而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和,也就是说把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。MATLAB 是 Mathworks 公司推出的数学软件,它将数值分析、矩阵计算、信号处

7、理和图形显示结合在一起,为众多学科领域提供了一种简洁、高效的编程工具。它提供的 GUIDE 工具为可视化编程工具,使得软件的界面设计像 VB 一样方便。故本文采用 MATLAB 作为编程语言实现声音信号频谱分析仪,以下所讲的都是在 MATLAB7.0 环境中。再往下是信号输入区,包含 3 种输入方式,考虑到 WAV 文件可能是多声道,故提供了声道选择的界面,因为每次只能对单个声道进行分析。在信号发生器中加入了混迭选项,从而可以将产生的信号与原有的信号进行混迭。界面应该具有:只有当每个单选框被选中时才允许使用对应的输入框、按钮等;采样点数输入框在声卡与 WAV 文件的输入方式下作为输出,在信号发

8、生器的输入方式下作为输入。再往下是分析区。对于 WAV 文件及录音的信号,有时只对其中一部分信号进行分析,故提供了分析对象范围设定的界面。另外就是时域分析与频域分析的按钮,该软件的核心代码都在这两个按钮的回调函数中。分析结果区的下面是波形显示区,用于显示时域波形,在录音结束、打开 WAV 文件成功或者信号发生器生成波形时会更新显示。采样频率 Fs 与采样点数 N 是声音信号输入时共同需要作用的参数,故将其独立出来。下面为别介绍三种输入方式的实现。这里声卡输入是指由麦克风录音得到的声音信号的输入,MATLAB 提供了 wavrecord 函数,该函数能够实现读取麦克风录音信号。以下是“开始录音”

9、按钮的回调函数内容。%首先获得设定的 Fs 值Fs=str2double(get(findobj(Tag,samplerate),String);%根据设定的录音时长进行录音,将其存入 handles.y 中handles.y=wavrecord(str2double(get(handles.recordtime,String)*Fs, Fs,int16);%保存 handles 结构体,使得 handles.y 在别的函数中也能使用guidata(hObject,handles);%在波形显示区绘出波形plot(handles.time,handles.y);title(WAVE);%将所采

10、到的点的数量输出在“采样点数”中ysize=size(handles.y)set(handles.samplenum,String,num2str(ysize(1);MATLAB 提供了 wavread 函数,该函数能够方便的打开并读取 WAV 文件中的声音信息,并且同时读取所有声道。下面是“打开文件”按钮回调函数的部分代码。其它代码与声卡输入的类似。%从 WAV 文件中读取的声音信息并临时存放到 temp 变量中temp = wavread(get(findobj(Tag,filename),String); %获得所选择的声道channel=str2double(get(handles.c

11、hannel,String);%将指定声道的信息存放到 handles.y 中handles.y=temp(:,channel);MATLAB 有产生标准信号的函数,如 sawtooth 能够产生三角波或钜齿波,首先利用 get 函数获得波形 soundtype,频率 frequency,幅值 amp 和相位 phase,然后是以下代码。switch soundtypecase 1 %标准正弦波y=amp*sin(2*pi*x*frequency+phase);case 2 %方波y=amp*sign(sin(2*pi*x*frequency+phase);case 3 %三角波y=amp*s

12、awtooth(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);otherwiseerrordlg(Illegal wave type,Choose errer);endif get(handles.add,Value)=0.0handles.y=y; %若没有勾选上“混迭” ,则将生成的波形赋给 handles.yelse %否则将生成的波形与原有波形叠加handles.y=handles.y+y;end节给出时域

13、分析中的过零检测算法流程,故这里不给出过零检测的代码。MATLAB 提供了mean,std 函数,能够方便地计算均值、标准差。下面是过零检测之后的代码,其中 T 为过零检测得到的周期(向量),amp 为过零检测得到的幅值(向量),n 为过零点数。freq=Fs/mean(T); %计算频率set(handles.outt,String,1/freq); %输出周期估计值set(handles.outfreq,String,num2str(freq); %输出频繁估计值%计算并输出幅值,以幅值均值作为其估计set(handles.outamp,String,num2str(mean(amp(2:

14、n-1);%将待分析信号的过零点与标准信号的过零点相比较,从而得出相位phase=2*pi*(1-(ti(1:n-1)-1)./T+floor(ti(1:n-1)-1)./T);set(handles.outphase,String,num2str(mean(phase);%最大值与最小值的一半即为峰值set(handles.outpeak,String,(max(handles.y(from:to)-min(handles.y(from:to)/2); %from,to 即是界面中的“从第 from 点到第 to 点”%计算并输出均值set(handles.outmean,String,me

15、an(handles.y(from:to);%计算并输出均方值set(handles.outmeansquare,String,mean(handles.y(from:to).2);%计算半输出方差set(handles.outs,String,std(handles.y(from:to)2);频域分析需要作 Fourier 变换,MATLAB 提供了 fft 函数,能够方便地实现快速 Fourier 变换算法。以下代码省去了从界面中获得 from、to、Fs 的部分,也省去了绘图后设置横、纵坐标轴的名称的部分。%首先提取出待分析的样本,将其存入 sample 中sample=handles.

16、y(from:to);%生成离散化的频率点,以采样频率作为离散化的间隔f=linspace(0,Fs/2,(to-from+1)/2);%对样本作快速 Fourier 变换,变换结果存入 Y 中Y=fft(sample,to-from+1);C,I=max(abs(Y); %获得幅值最大的点及其所对应的下标值 I%则 f(I)为最大的幅值所对应的频率,即信号频率的估计值set(handles.foutt,String,1/f(I); %计算并输出周期的估计值set(handles.foutfreq,String,f(I); %输出频率的估计值Y=Y(1:(to-from+1)/2); %为与

17、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); %绘制功率谱为了分析软件的性能并比较时域分析与频域分析各自的优势,本章给出了两种分析方法的频率估计的比较,分析软件的在时域和频域的计算精度问题。在时域,频率估计是使用过零检测的方式

18、计算出,从而对于带噪声的信号既容易造成“误判” ,也容易造成“漏判” ,且噪声信号越明显, “误判”与“漏判”的可能性越大。但在没有噪声或噪声很小时,时域分析对每个周期长度的检测是没有累积误差的,故随着样本容量的增大,估计的精度大大提高。在频域,频率估计是通过找出幅值谱峰值点对应的频率求出。故不会有时域分析的问题。但频率离散化的误差及栅栏效应却是不可避免地带来误差,仅频率离散化的误差就大于Fs/2。由实验结果及以上的分析可以得出结论:在作频率估计时,如果信号的噪声很小,采用时分析的方法较好;如果信号的噪声较大,采用频域分析的方法较好。时域和频域两个方面提供了信号分析所需要的算法流程及计算公式,

19、在原理的最后还结合软件工程理论给出了软件的模块划分,这样在基于此设计原理的基础上可以用任何平台任何语言进行软件开发。在实现方法上,结合软件的界面和具体的代码讲述了整个软件编码实现的原理。最后结合一个运行实例比较了时域分析与频域分析计算频率的异同之处,并分析了误差的原因。对于该软件,还有许多可以改进的地方。MATLAB 做界面时难以控以用户的错误输入,但可以通过添加适当的判断语句提示用户的错误输入。对于软件运行依赖于 MATLAB 的问题,可以通过 MATLAB 与 VC 混合编程的方式解决,VC 是 Windows 平台下主要的应用程序开发环境之一,它能方便实现软件开发,开发的系统具有界面友好、执行速度快、易维护和升级等优点,故两者的结合能提高开发效率而不损软件性能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报