信号的波形分析与合成

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

武汉大学教学实验报告电子信息学院通信工程专业2015年10月7日实验名称Wav信号的波形分析与合成指导教师姓名年级学号成绩一、预习部分1.实验目的2.实验基本原理3.主要仪器设备(含必要的元器件、工具)1.实验目的⑴.巩固傅里叶变换及其反变换的知识,学习从时域和频域两个角度来观察信号。⑵.尝试利用短时傅里叶变换分析非平稳信号的频谱变化。⑶.熟悉MATLAB环境中wavread、wavrecord、wavplay、fft和ifft等函数的应用。2.实验基本原理音频信号(Audio)是通过麦克风、A/D等数据采集设备将声音转换而成的电信号,是声波频率、幅度变化的信息载体。声音的三个主观特性是音调、音强和音色。而声波的三个重要参数为频率ω0、幅度An和相位ψn,这也就决定了音频信号的特征定义如下:⑴.基频与音调——基频指一个复杂声波中最低的一个频率(其他频率叫谐波)。音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。⑵.谐波与音色——谐波是指周期函数或周期性的波形中不能用常数与原函数基频的正弦函数和余弦函数的线性组合表达的部分。nωO称为ωO的n次谐波分量,也称为(n-1)次泛音。音色是由混入基音的泛音所决定的,高次谐波越丰富,音色就越有明亮感和穿透力。不同的谐波具有不同的幅值An和相位偏移ψn,由此产生各种音色效果。⑶.幅度与音强——人耳对于声音细节的分辨只有在强度适中时才最灵敏。人的听觉响应与强度成对数关系。常用音量来描述音强,以分贝(dB=20log)为单位。⑷.音宽与频带——音频信号的频带宽度简称为音宽,它是描述组成复合信号的频率范围。借助傅里叶变换,信号可以时间函数或频率函数两种形式描述,特别是周期信号和准周期信号(前者由一个基频成分和若干谐波成分,后者虽可分解为几个正弦分量,但它们的周期没有公倍数),从频率域可以很清楚地了解它们由哪些正弦分量组成。而对于非平稳信号,最典型的例子就是语音信号,它是非周期的,频谱随时间连续变化,因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。最直观的想法就是用中心在某一时刻的时间窗截取一段信号,对其做傅里叶变换,得到这一时刻的频谱;然后将窗在时间轴上移动,从而得到不同时刻的频谱,这就是短时频谱的原理。最简单的窗就是矩形窗,即直接从原信号中截取一段。3.涉及的MATLAB函数⑴.wavread功能:读取Microsoft的WAVE文件。基本调用格式:[y,Fs,nbits]=wavread(filename)载入以filename命名的WAVE文件。y为采样数据,Fs为WAVE文件被采样时所用的采样频率,nbits为用于描述每个采样点的编码数据位数(常用的有8bits和16bits)。其中filename以单引号括起的字符串方式输入。⑵.wavrecord功能:应用PC机上音频输入设备录制声音。基本调用格式:y=wavrecord(n,Fs)对某音频信号以FsHz采样率连续录入n个采样点的数据。其中Fs默认值为11025Hz。⑶.wavplay功能:应用PC机上音频输出设备播放已录制的声音。基本调用格式:Wavplay(y,Fs)以Fs播放存入矢量y中的音频信号。Fs默认值为11025Hz。注:亦可参看sound函数。⑷.fft功能:离散傅立叶变换函数。基本调用格式:Y=fft(X,n)对矢量X进行n点离散傅立叶变换,结果存入矢量Y。计算时所用算法为快速傅立叶变换(FFT)。如果X为普通矩阵,那么返回为对此矩阵进行逐列的FFT的结果。⑸.ifft功能:离散傅立叶反变换。基本调用格式:y=ifft(X,n)返回对矢量X进行n点离散傅立叶反变换的结果。同样利用FFT算法进行具体计算,若X为矩阵,返回结果为逐列离散傅立叶反变换的Y矩阵。4.主要仪器设备计算机,Matlab软件二、实验操作部分1.实验数据、表格及数据处理2.实验操作过程(可用图表示)3.实验结论1.声音的采集Matlab提供了读入、录制和播放声音以及快速傅里叶变换的函数,分别是wavread、wavrecord、wavplay和fft,熟练使用几个函数。2.持续音的频谱分析将Windows的系统目录下的ding.wav文件读入,这是一个双声道的声音,选择任一声道的信号,使用fft求取其频谱,并用plot显示它的幅度谱,观察主要的正弦分量;参考代码:[y,fs]=wavread('ding.wav')leng=length(y)%取其中的一个声道,譬如说,右声道yr=y(:,2);%截取前1024个点yr=yr(1:1024);%求取幅度普并显示,首先是fs=2048YR2048=fft(yr,2048);figure('numbertitle','off','name','2048点FFT');subplot(2,1,1)plot(linspace(-pi,pi,2048),abs(YR2048))%FFT的幅频特性title('FFT的幅频特性')subplot(2,1,2)plot(linspace(-pi,pi,2048),fftshift(abs(YR2048)))%FFT的幅频特性FFTSHIFTtitle('FFT后幅频特性的fftshift')%fs=1024YR1024=fft(yr,1024);figure('numbertitle','off','name','1024点FFT');subplot(2,1,1)plot(linspace(-pi,pi,1024),abs(YR1024))%FFT的幅频特性title('FFT的幅频特性')subplot(2,1,2)plot(linspace(-pi,pi,1024),fftshift(abs(YR1024)))%FFT的幅频特性的FFTSHIFTtitle('FFT后幅频特性的fftshift')实验结果图如下:3.时变音的短时频谱分析代码如下:loadchirplen=length(y);fori=1:floor(len/1024)seg=y((i1)*1024+1:i*1024);figure('numbertitle','off','name',['frame',num2str(i)]);plot(linspace(-pi,pi,1024),fftshift(abs(fft(seg))));end实验结果如下:4.分别录制男生和女生发元音“a”的声音,通过对音频文件的频谱分析对比两者的差异,并进行合理的解释。⑴.通过以下程序录制男生女生声音%录制声音并播放duration=2;fs=8192;nbits=16;format='int16';waveFile='C:\DocumentsandSettings\admin\桌面\mansound';%录制之后的文件路径,文件名为mansound.wavy=wavrecord(duration*fs,fs,format);%录制两秒mic声音wavwrite(y,fs,nbits,waveFile);%将声音按fs频率nbits写mansoundwavplay(y,fs);%播放(或者使用sound(y,fs))⑵.录制好的男生声音文件名为“mansound.wav”,女声声音文件名为“womansound.wav”⑶.男生声音的分析代码如下:[y,fs]=wavread('mansound.wav')fs%fs=11025leng=length(y)%leng=22050%声音的默认声道为左声道yr=y(:,1);yr=yr(1:1024);%截取前1024个点YR2048=fft(yr,2048);%求取幅度普并显示,首先是fs=2048figure('numbertitle','off','name','2048点FFT');subplot(2,1,1)plot(linspace(-pi,pi,2048),abs(YR2048))%FFT的幅频特性title('FFT的幅频特性')subplot(2,1,2)plot(linspace(-pi,pi,2048),fftshift(abs(YR2048)))%FFT的幅频特性FFTSHIFTtitle('FFT后幅频特性的fftshift')%fs=1024YR1024=fft(yr,1024);figure('numbertitle','off','name','1024点FFT');subplot(2,1,1)plot(linspace(-pi,pi,1024),abs(YR1024))%FFT的幅频特性title('FFT的幅频特性')subplot(2,1,2)plot(linspace(-pi,pi,1024),fftshift(abs(YR1024)))%FFT的幅频特性的FFTSHIFTtitle('FFT后幅频特性的fftshift')图形如下:①.1024点FFT②.2048点FFT%反变换,结果应与原始信号相同yr1024=100*real(ifft(YR1024));figure('numbertitle','off','name','1024点fft的反变换');subplot(2,1,1);plot(yr1024)title('1024点fft的反变换')subplot(2,1,2);plot(yr);title('原信号');%重构寻找幅度最大的正弦分量[maxpeak,peaki]=max(abs(YR1024(1:512)));MAXSIN=zeros(1,1024);MAXSIN(peaki)=maxpeak;MAXSIN(1026-peaki)=maxpeak;maxsin=100*ifft(MAXSIN);figure('numbertitle','off','name',’用最大正弦分量重构信号’);subplot(2,1,1)plot(maxsin);title('重构的信号');subplot(2,1,2);plot(yr1024);title('原始信号');%试听wavplay(yr1024,fs);wavplay(maxsin,fs);图形如下:⑷.女生声音分析代码如下:[y,fs]=wavread('nv.wav')fs%22050leng=length(y)%84480%声音的默认声道为左声道yr=y(:,1);%截取前1024个点yr=yr(40000:41024);%求取幅度普并显示,首先是fs=2048YR2048=fft(yr,2048);figure('numbertitle','off','name','2048点FFT');subplot(2,1,1)plot(linspace(-pi,pi,2048),abs(YR2048))%FFT的幅频特性title('FFT的幅频特性')subplot(2,1,2)plot(linspace(-pi,pi,2048),fftshift(abs(YR2048)))%FFT的幅频特性FFTSHIFTtitle('FFT后幅频特性的fftshift')%fs=1024YR1024=fft(yr,1024);figure('numbertitle','off','name','1024点FFT');subplot(2,1,1)plot(linspace(-pi,pi,1024),abs(YR1024))%FFT的幅频特性title('FFT的幅频特性')subplot(2,1,2)plot(linspace(-pi,pi,1024),fftshift(abs(YR1024)))%FFT的幅频特性的FFTSHIFTtitle('FFT后幅频特性的fftshift')图形如下:①.1024点FFT②.2048点FFT%反变换,结果应与原始信号相同yr1024=100*real(ifft(YR1024));figure

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功