Wav信号的波形分析.doc_第1页
Wav信号的波形分析.doc_第2页
Wav信号的波形分析.doc_第3页
Wav信号的波形分析.doc_第4页
Wav信号的波形分析.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉大学教学实验报告电子信息学院 电子信息科学类 专业 2009 年 05 月 03 日 实验名称 Wav信号的波形分析 指导教师 黄根春姓名 朱铖 年级 07 学号 200731200078 成绩 一、 预习部分1. 实验目的2. 实验基本原理3. 主要仪器设备(含必要的元器件、工具)1.实验目的借助本实验帮助同学们巩固傅里叶变换及其反变换的知识,学习从时域和频域两个角度来观察信号,并尝试利用短时傅里叶变换分析非平稳信号的频谱变化。2.实验原理 借助傅里叶变换,信号可以时间函数或频率函数两种形式描述,特别是周期信号和准周期信号(前者由一个基频成分和若干谐波成分,后者虽可分解为几个正弦分量,但它们的周期没有公倍数),从频率域可以很清楚地了解它们由哪些正弦分量组成。而对于非平稳信号,最典型的例子就是语音信号,它是非周期的,频谱随时间连续变化,因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。最直观的想法就是用中心在某一时刻的时间窗截取一段信号,对其做傅里叶变换,得到这一时刻的频谱;然后将窗在时间轴上移动,从而得到不同时刻的频谱,这就是短时频谱的原理。最简单的窗就是矩形窗,即直接从原信号中截取一段。3.主要仪器设备MATLAB仿真平台二、 实验操作部分1、实验数据、表格及数据处理2、实验操作过程(可用图表示)3、实验结论1.实验内容本实验利用matlab提供的工具来采集和分析声音信号的频谱,由以下几个部分组成:(1) 声音的采集Matlab提供了读入、录制和播放声音以及快速傅里叶变换的函数,分别是wavread、wavrecord、wavplay和fft。阅读这几个函数的帮助文档,熟练使用。(2)持续音的频谱分析将Windows的系统目录下的ding.wav文件读入,这是一个双声道的声音,选择任一声道的信号,使用fft求取其频谱,并用plot显示它的幅度度,观察主要的正弦分量;分别求取2048、1024点FFT,观察产生的不同频谱;用ifft函数求取频谱的反傅里叶反变换,比较反变换后的信号波形与原始信号的波形;从频谱中找到幅度最大的正弦分量,构造一个同样幅度的正弦信号,将其波形与原始信号比较,并且试听一下。(3)时变音的短时频谱分析使用”load chirp”载入matlab自带的一个时变音;从信号中依次截取1024个点,利用上述方法求取其幅度谱,并显示出来,观察幅度谱随时间的变化情况。2.实验结果(1) 声音的采集及频谱分析信号的采集与分析2048个点的fft变换1024个点的fft变换信号频谱(1024个点)fft反变换及与原信号的对比对应的MATLAB代码:y,fs=wavread(ding.wav);yr=y(:,2);yr=yr(1:1024);YR2048=fft(yr,2048);figure(numbertitle,off,name,2048FFT);plot(linspace(-pi,pi,2048),fftshift(abs(YR2048);YR1024=fft(yr,1024);figure(numbertitle,off,name,1024FFT);plot(linspace(-pi,pi,1024),fftshift(abs(YR1024); yr1024=real(ifft(YR1024);figure(numbertitle,off,name,1024fft);subplot(2,1,1);plot(yr1024)title(1024fft)subplot(2,1,2);plot(yr);title();正弦信号的重构:从频谱中找到幅度最大的正弦分量,构造一个同样幅度的正弦信号,将其波形与原始信号比较用最大正弦分量重构正弦信号对应的MATLAB代码:y,fs=wavread(ding.wav);yr=y(:,2);yr=yr(1:1024);YR1024=fft(yr,1024);yr1024=real(ifft(YR1024);maxpeak,peaki=max(abs(YR1024(1:512);MAXSIN=zeros(1,1024);MAXSIN(peaki)=maxpeak;MAXSIN(1026-peaki)=maxpeak;maxsin=ifft(MAXSIN);figure(numbertitle,off,name,);subplot(2,1,1)plot(maxsin);title();subplot(2,1,2);plot(yr1024);title();wavplay(yr1024);wavplay(maxsin);(2)时变音的短时频谱分析使用“load chirp”载入matlab自带的一个时变音;从信号中依次截取1024个点,利用上述方法求取其幅度谱,并显示出来,显示结果如图。 图1 图2 图3 图4 图5 图6 图7 图8 图9 图10 图11 图12对应的MATLAB代码:load chirp %y, Fs len=length(y);for i=1:floor(len/1024) seg=y(i-1)*1024+1:i*1024); figure(numbertitle,off,name,Frame,num2str(i); plot(linspace(-pi,pi,1024),fftshift(abs(fft(seg);end三、 实验效果分析(包括仪器设备等使用效果)1.实验结果分析(1)实验中用MATLAB中wavread函数将Windows的系统目录下的双声道的声音文件ding.wav读入,并通过wavrecord、wavplay进行声音的录制和播放,实现了声音的采集。读入声音文件后在-pi到pi的范围内分别去声音信号前面2048个点和1024个点分别进行fft变换,并且将图形进行对称转换,显示对应点数的频谱。比较两个频谱图,2048个点和1024个点所对应fft变换图形形状相似,前者较后者要清晰些。在幅度上有些差别,同频率下2048个点对应的幅度比1024个点对应的幅度要略大,有此表明取的点数多,变换后精度要高。对1024个点对应的fft变换进行反变换得到图形与原始信号图形基本上一致,表明对信号频谱分析采样的精度较好,验证结果正确。(2)在利用信号频谱中最大幅度所对应的频率重构一个正弦信号的程序中,maxpeak,peaki=max(abs(YR1024(1:512)定义的是确定最大幅度幅值与位置的函数,通过MAXSIN(peaki)=maxpeak求取最大的幅度,并确定一个位置;但对于MAXSIN(1026-peaki)=maxpeak则是求取另一个最大幅度和并确定位置,从前面信号的fft变换图中我们可以知道,取样点为有限值时,对应信号fft变换会产生镜像,这个是由MATLAB软件自身因素造成的,因此要频谱重构并显示时域信号就需要在fft反变换前给相应信号的频谱加入镜像,MAXSIN(1026-peaki)=maxpeak就是生成最大幅值和对应频率的镜像,使反变换可以正确的现实时域的波形。最后通过maxsin=ifft(MAXSIN)进行反变换显示重构的正弦信号。另外通过代码MAXSIN(1026-peaki)=maxpeak取镜像中,位置为1026-peaki而不是1025-peaki是因为声音信号初1024个点波形不规则,在0位置处通过放大可以看到有直流分量的存在(见下图),因此在对称变换中0点要考虑到反变换中,即1025-peaki还要加上1个点。和原信号进行比较,正弦信号的幅值与原信号1024点处幅值基本相同。(3)通过load chirp载入一个时变音,从信号中依次截取1024个点,求取其幅度谱,并显示出来。得到12幅图,表明所载入的声音文件长度在10247个点到10248个点之间。使用函数fft

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论