1、 教学实验报告电子信息学院 专业 通信工程 2011 年 11 月 19 日 实验名称 wav 信号的波形分析与合成 指导教师 姓名 年级 学号 成绩 一、 预习部分1. 实验目的2. 实验基本原理3. 主要仪器设备(含必要的元器件、工具)一、实验目的1. 巩固傅里叶变换及其反变换的知识,学习从时域和频域两个角度来观察信号。2. 尝试利用短时傅里叶变换分析非平稳信号的频谱变化。3熟悉MATLAB 环境中wavread、wavrecord、wavplay、fft 和ifft 等函数的应用。二实验原理音频信号(Audio)是通过麦克风、A/D 等数据采集设备将声音转换而成的电信号,是声波频率、幅度
2、变化的信息载体。声音的三个主观特性是音调、音强和音色。而声波的三个重要参数为频率 0、幅度A n 和相位n ,这也就决定了音频信号的特征定义如下:1. 基频与音调基频指一个复杂声波中最低的一个频率(其他频率叫谐波)。音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。2. 谐波与音色谐波是指周期函数或周期性的波形中不能用常数与原函数基频的正弦函数和余弦函数的线性组合表达的部分。nO 称为O 的n 次谐波分量,也称为(n-1)次泛音。音色是由混入基音的泛音所决定的,高次谐波越
3、丰富,音色就越有明亮感和穿透力。不同的谐波具有不同的幅值An 和相位偏移n ,由此产生各种音色效果。3. 幅度与音强人耳对于声音细节的分辨只有在强度适中时才最灵敏。人的听觉响应与强度成对数关系。常用音量来描述音强,以分贝(dB=20log)为单位。4. 音宽与频带音频信号的频带宽度简称为音宽,它是描述组成复合信号的频率范围。借助傅里叶变换,信号可以时间函数或频率函数两种形式描述,特别是周期信号和准周期信号(前者由一个基频成分和若干谐波成分,后者虽可分解为几个正弦分量,但它们的周期没有公倍数),从频率域可以很清楚地了解它们由哪些正弦分量组成。而对于非平稳信号,最典型的例子就是语音信号,它是非周期
4、的,频谱随时间连续变化,因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。最直观的想法就是用中心在某一时刻的时间窗截取一段信号,对其做傅里叶变换,得到这一时刻的频谱;然后将窗在时间轴上移动,从而得到不同时刻的频谱,这就是短时频谱的原理。最简单的窗就是矩形窗,即直接从原信号中截取一段。三、涉及的MATLAB 函数1. wavread功能:读取Microsoft 的WAVE 文件。基本调用格式:y, Fs, nbits = wavread(filename) 载入以filename 命名的WAVE 文件。y 为采样数据,Fs 为WAVE 文件被采样时所用的采样频率,nbits 为用于描述每
5、个采样点的编码数据位数(常用的有8bits 和16bits)。其中filename以单引号括起的字符串方式输入。2. wavrecord功能:应用PC 机上音频输入设备录制声音。基本调用格式:y = wavrecord(n,Fs)对某音频信号以Fs Hz 采样率连续录入n 个采样点的数据。其中Fs 默认值为11025Hz。3. wavplay功能:应用PC 机上音频输出设备播放已录制的声音。基本调用格式:Wavplay(y,Fs)以Fs 播放存入矢量y 中的音频信号。Fs 默认值仍为11025Hz。注:亦可参看sound 函数。4. fft功能:离散傅立叶变换函数。基本调用格式:Y = fft
6、(X,n)对矢量X 进行n 点离散傅立叶变换,结果存入矢量Y。计算时所用算法为快速傅立叶变换(FFT)。如果X 为普通矩阵,那么返回为对此矩阵进行逐列的FFT 的结果。5. ifft功能:离散傅立叶反变换。基本调用格式:y = ifft(X,n)返回对矢量X 进行n 点离散傅立叶反变换的结果。同样利用FFT 算法进行具体计算,若X 为矩阵,返回结果为逐列离散傅立叶反变换的Y 矩阵。四、实验内容本实验利用matlab 提供的工具来采集和分析声音信号的频谱,由以下几个部分组成:1声音的采集Matlab 提供了读入、录制和播放声音以及快速傅里叶变换的函数,分别是wavread、wavrecord、w
7、avplay 和fft。阅读这几个函数的帮助文档,熟练使用。2. 持续音的频谱分析 将 Windows 的系统目录下的ding.wav 文件读入,这是一个双声道的声音,选择任一声道的信号,使用fft 求取其频谱,并用plot 显示它的幅度谱,观察主要的正弦分量;参考代码:%y,fs=wavread(ding.wav)fsleng=length(y)%取其中的一个声道,譬如说,右声道(左声道的格式yr=y(:,1))yr=y(:,2);%截取前1024 个点yr=yr(1:1024);%求取幅度普并显示,首先是fs=2048YR2048=fft(yr,2048);figure(numbertit
8、le,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(-p
9、i,pi,1024),abs(YR1024) %FFT的幅频特性title(FFT的幅频特性 )subplot(2,1,2)plot(linspace(-pi,pi,1024),fftshift(abs(YR1024) %FFT的幅频特性的FFTSHIFTtitle(FFT后幅频特性的 fftshift)图形如下:1.1024点FFT-4 -3 -2 -1 0 1 2 3 40204060 FFT信 信 信 信 信 信-4 -3 -2 -1 0 1 2 3 40204060 FFT信 信 信 信 信 信 fftshift2. 1024点FFT-4 -3 -2 -1 0 1 2 3 402040
10、6080 FFT信 信 信 信 信 信-4 -3 -2 -1 0 1 2 3 4020406080 FFT信 信 信 信 信 信 fftshift用 ifft 函数求取频谱的反傅里叶反变换,比较反变换后的信号波形与原始信号的波形;参考代码:%反变换,结果应与原始信号相同yr1024=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(原信号);图形如下:0 200 400
11、600 800 1000 1200-0.2-0.100.10.2 1024信 fft信 信 信 信0 200 400 600 800 1000 1200-0.2-0.100.10.2 信 信 信从频谱中找到幅度最大的正弦分量,构造一个同样幅度的正弦信号,将其波形与原始信号比较,并且试听一下。参考代码:%重构%寻找幅度最大的正弦分量maxpeak,peaki=max(abs(YR1024(1:512);MAXSIN=zeros(1,1024);MAXSIN(peaki)=maxpeak;MAXSIN(1026-peaki)=maxpeak;maxsin=100*ifft(MAXSIN);figu
12、re(numbertitle,off,name,用最大正弦分量重构信号);subplot(2,1,1)plot(maxsin);title(重构的信号);subplot(2,1,2);plot(yr1024);title(原始信号);%试听wavplay(yr1024,fs);wavplay(maxsin,fs);图形如下:0 200 400 600 800 1000 1200-20-1001020 信 信 信 信 信0 200 400 600 800 1000 1200-0.2-0.100.10.2 信 信 信 信3. 时变音的短时频谱分析使用”load chirp”载入 matlab 自带
13、的一个时变音;参考代码:load chirp %y, Fs从信号中依次截取 1024 个点,利用上述方法求取其幅度谱,并显示出来,观察幅度谱随时间的变化情况。参考代码: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图形如下:-4 -2 0 2 40204060-4 -2 0 2 405101520-4 -2 0 2 40102
14、03040-4 -2 0 2 40102030-4 -2 0 2 405101520-4 -2 0 2 405101520-4 -2 0 2 40102030-4 -2 0 2 405101520-4 -2 0 2 40102030-4 -2 0 2 40510152025-4 -2 0 2 40246-4 -2 0 2 40510152025二、 实验操作部分1. 实验数据、表格及数据处理2. 实验操作过程(可用图表示)3. 实验结论思考题:分别录制男生和女生发元音“a”的声音,通过对音频文件的频谱分析对比两者的差异,并进行合理的解释。1通过以下程序录制男生女生声音%录制声音并播放durat
15、ion = 2;fs = 8192;nbits = 16; format = int16;waveFile=C:Documents and Settingsadmin桌面mysound; %录制之后的文件路径,文件名为mysound.wavy = wavrecord(duration*fs, fs, format);%录制两秒mic声音wavwrite(y, fs, nbits, waveFile); % 将声音按fs频率nbits 写入mysound.wavwavplay(y,fs); %播放(或者使用 sound(y,fs)2录制好的男生声音文件名为“mysound.wav”,女声声音文件
16、名为“nv.wav”3男生声音的分析代码如下:y,fs=wavread(mysound.wav)fs %fs=11025leng=length(y) %leng=22050%声音的默认声道为左声道yr=y(:,1);%截取前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
17、,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)图形如下:11024 点FFT
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。