为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

《计算机通信与网络》课程设计--数字变声器的设计 定稿

2017-11-27 20页 doc 49KB 24阅读

用户头像

is_977556

暂无简介

举报
《计算机通信与网络》课程设计--数字变声器的设计 定稿《计算机通信与网络》课程设计--数字变声器的设计 定稿 《计算机通信与网络》课程设计--数字变声器的设计 定稿 《计算机通信与网络》课程设计--数字变声器的设计 摘 要 随着计算机和信息科学的飞速发展,数字信号处理逐渐发展成为一门独立的学科,成为信息科学的重要组成部分,在语音处理、雷达、图像处理、通信、生物医学工程等众多领域中得到广泛应用。 Matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的。特别是Matlab还具有信号分析工具箱,不...
《计算机通信与网络》课程设计--数字变声器的设计 定稿
《计算机通信与网络》课程--数字变声器的设计 定稿 《计算机通信与网络》课程设计--数字变声器的设计 定稿 《计算机通信与网络》课程设计--数字变声器的设计 摘 要 随着计算机和信息科学的飞速发展,数字信号处理逐渐发展成为一门独立的学科,成为信息科学的重要组成部分,在语音处理、雷达、图像处理、通信、生物医学工程等众多领域中得到广泛应用。 Matlab语言是一种广泛应用于工程计算及数值领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的。特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地对语音信号进行分析、处理和设计。用MATLAB做变声器的原理是通过改变输入声音频率,进而改变声音的音色、音调,使输出声音在感官上与原声音不同。变声器是借助对声音音色和音调的双重复合改变,实现输出声音的改变。通过自己发声,共振峰频率的改变是基于重采样实现的。 关键词:数值分析 频谱分析 共振峰频率 目录 前 言 3 第1章 课程设计基本原理 4 第一节 设计要求 4 第二节 设计 4 1语音信号录制 4 2 对信号做1024点FFT变换 5 3 滤波器的选择与设计 7 4 变声的实现 10 5. foundpitch函数程序 19 第2章 MATLAB语言编程与运行 21 2.1 MATLAB的介绍 21 2.2 MATLAB的基本应用 22 第3章 总结分析 24 总结与致谢 25 参考文献 26 前 言 语言是我们人类所特有的功能,它是传承和记载人类几千年文明史的工具,没有语言就没有我们今天人类的文明。语音是语言最基本的现形式,是相互传递信息的重要手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。 语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展;它是研究用数字信号处理技术对语音信号进行处理的一门新兴学科,同时又是综合的多学科领域和涉及面很广的交叉学科,因此我们进行语音信号处理具有时代的意义。语音学和数字信号处理的交叉结合便形成了语音信号处理。语音信号处理是建立在语音学和数字信号处理基础之上的,对语音信号模型进行分析、存储、传输、识别和合成等方面的一门综合性学科。 语音信号的进一步处理分析工作选用了MATLAB平台。MATLA是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,不断完善MATLAB产品以提高产品自身的竞争能力MATLAB的数据分析和处理能力十分强大,运用它来进行语音信号的分析、处理和可视化相当便捷。在编程效率、程序可读性、可移植性和可扩充性上MATLAB远远优于其他的高级编程语言,而且编程易学、直观,代码非常符合人们的思维习惯。另外MATLAB为用户提供了丰富的Windows图形界面设计方法,使用户能够在利用其强大的数值计算功能的同时可设计出友好的图形界面,它受到了越来越多的用户的欢迎。 MATLAB几乎可以在各种机型和操作系统上运行,所以在可移植性和可扩充性上,MATLAB优越于其它的高级编成语言。MATLAB具有强大的数值计算能力和视图能力,但是,和其他语言相比,MATLAB程序的执行速度较慢。在目前电脑处理速度不断升的情况下,如果实时性不是非常高的情况下,使用MATLAB开发就不存在此类问了。 第1章 课程设计基本原理 1.1 设计要求 要求录制一段自己的语音信号后,在MATLAB软件中采集语音信号、回放语音信号并画出语音信号的时域波形和频谱图;对所采集的信号用MATLAB做FFT得到频谱,并进行时域和频谱分析;对比变换前后的时域图和频谱图。再用双线性变换法实现模拟滤波器到数字滤波器的转换,画出滤波前后的时域图及频谱图。最后再将频域信号恢复成时域信号,可以将自己的声音变成小孩的声音、女性的声音或老人的声音。在进行性别变声时,主要考虑基频和共振频率的变化。当基频伸展,共振峰频也同时伸展时,可由男声变成女声,女声变成童 声;反之,基频收缩,共振频率也同时收缩时,则由童声变成女声,女声变成男声。为了获得自然度、真实感较好的变声效果,基频和共振峰频率通常必须各自独立地伸缩变换。 1.2 设计方案 1语音信号录制 首先,录制一段时间为10s到15秒的语音信号;在MATLAB中用wavread命令来读入(采集)语音信号,采样值赋在向量y中,用sound命令播放文件,再画出该信号的波形图。 程序流图如下所示: fs16000; %取样频率 duration5;%录音时间 fprintf'Press any key to start %g seconds of recording\n',duration; pause; fprintf'Recording\n'; ywavrecordduration*fs,fs; wavwritey,fs,'D:\1.wav'; %duration*fs 是总的采样点数 fprintf'Finished recording.\n'; fprintf'Press any key to play the recording\n'; pause; wavplayy,fs fileName'D:\1.wav';%注:将需要读取的文件名赋值给fileName soundy,fs;%播放该文件 figure1 subplot2,1,1;ploty;title'波形'; 波形图如图1.1所示: 图1.1 原始语音波形 2对信号做1024点FFT变换 FFT即为快速傅里叶变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的。 在MATLAB的信号处理工具中函数FFT和IFFFT用于快速傅立叶变换和逆变换。函数FFT用于序列快速傅里叶变换,其调用格式为yfftx,其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若?x为一向量,y是x的FFT且和x相同长度;若x为一矩阵,则y是对矩阵的每一列向量进行FFT。如果x的长度是2的幂次方,函数FFT执行高速基?2FFT算法,否则fft执行一种混合基的离散傅里叶变换算法,计算速度较慢。函数FFT的另一种调用格式为yfftx,N,式中,x,y意义相同,N为正整数。函数执行N点的FFT,若x为向量且长度小于N,则函数将x补零至长度N;若向量x的长度大于N,则函数截断x使之长度为N;若x为矩阵,按相同的方法对x进行处理。 对信号做1024点FFT变换的程序流图如下: x1wavread'D:\1.wav'; %读取语音信号的数据,赋给变量x1 fs16000; %播放语音信号 y1fftx1,1024; %对信号做1024点FFT变换 ffs*0:511/1024; figure2 subplot2,1,1; plotabsy11:512 %做原始语音信号的FFT频谱图 title'原始语音信号FFT频谱' xlabel'Hz'; ylabel'fuzhi'; 原始信号FFT频谱图如图1.2所示: 图1.2 原始信号FFT频谱图 3滤波器的选择与设计 IIR滤波器和FIR滤波器的设计方法完全不同。IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数Hz。FIR滤波器必须采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR滤波器。 数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应 FIR,Finite Impulse Response滤波器和无限冲激响应 IIR,Infinite Impulse Response滤波器。 FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈系统函数H z在处收敛,极点全部在z 0处(因果系统)FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。 FIR采用递归型结构,即结构 上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和等,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。由于脉冲响应不变法的缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。因此在本次课程设计里,我们用双线性变换法设计Butterworth滤波器。 双线性变换法设计Butterworth滤波器的程序流图如下: x1wavread'D:\1.wav'; t0:1/16000:sizex1-1/16000; Au0.03; d[Au*cos2*pi*5000*t]'; x2x1+d; wp0.25*pi; ws0.3*pi; Rp1; Rs15; Fs16000; Ts1/Fs; wp12/Ts*tanwp/2;? %将模拟指标转换成数字指标 ws12/Ts*tanws/2; [N,Wn]buttordwp1,ws1,Rp,Rs,'x1';%选择滤波器的最小阶数 [Z,P,K]buttapN; %创建butterworth模拟滤波器 [Bap,Aap]zp2tfZ,P,K; [b,a]lp2lpBap,Aap,Wn; [bz,az]bilinearb,a,Fs;? %用双线性变换法实现模拟滤波器到数字滤波器 的转换 [H,W]freqzbz,az;? %绘制频率响应曲线 figure1 plotW*Fs/2*pi,absH grid xlabel'频率/Hz' ylabel'频率响应幅度' title'Butterworth' f1filterbz,az,x2; figure2 subplot2,1,1 plott,x2? %画出滤波前的时域图 title'滤波前的时域波形'; subplot2,1,2 plott,f1; %画出滤波后的时域图 title'滤波后的时域波形'; soundf1,16000;? %播放滤波后的信号 F0fftf1,1024; ffs*0:511/1024; figure3 y2fftx2,1024; subplot2,1,1; plotf,absy21:512; %画出滤波前的频谱图 title'滤波前的频谱' xlabel'Hz'; ylabel'fuzhi'; subplot2,1,2 F1plotf,absF01:512; %画出滤波后的频谱图 title'滤波后的频谱' xlabel'Hz'; ylabel'fuzhi'; 频率响应幅度如图1.3所示: 图1.3 频率响应幅度 滤波前及滤波后的的时域波形图如图1.4所示: 图1.4 滤波前及滤波后的的时域波形图 4变声的实现 在本次设计里,我们分别将原声变成小孩、老人和女人的声音。合成小孩 的声音 clear all,close all, clc; % 定义常数 FL 80; % 帧长 WL 240;% 窗长 P 10; % 预测系数个数 [x1,fs] wavread'D:\1.wav'; % 载入语音s x1 x1/x1; %归一化 L lengthx1; % 读入语音长度 FN floorL/FL-2; % 计算帧数 % 预测和重建滤波器 exc zerosL,1; % 激励信号(预测误差) zi_pre zerosP,1; % 预测滤波器的状态 x1_rec zerosL,1; % 重建语音 zi_rec zerosP,1; % 合成滤波器 exc_syn zerosL,1;% 合成的激励信号(脉冲串) x1_syn zerosL,1; % 合成语音 last_syn 0;%存储上一个(或多个)段的最后一个脉冲的下标 zi_syn zerosP,1;% 合成滤波器的状态 % 变调不变速滤波器 exc_syn_t zerosL,1;% 合成的激励信号(脉冲串) x1_syn_t zerosL,1; % 合成语音 last_syn_t 0;%存储上一个(或多个)段的最后一个脉冲的下标 zi_syn_t zerosP,1;% 合成滤波器的状态 hw hammingWL; % 汉明窗 % 依次处理每帧语音 for n 3:FN% 计算预测系数(不需要掌握)x1_w x1n*FL-WL+1:n*FL.*hw; %汉明窗加权后的语音[A E] lpcx1_w, P;%用线性预测法计算P个预测系数 % A是预测系数,E会被用来计算合成激励的能量x1_f x1n-1*FL+1:n*FL; % 本帧语音,下面就要对它做处理% 4 用filter函数s_f计算激励,注意保持滤波器状态 [exc1,zi_pre] filterA,1,x1_f,zi_pre;excn-1*FL+1:n*FL exc1; %计 算得到的激励% 5 用filter函数和exc重建语音,注意保持滤波器状态 [x1_rec1,zi_rec] filter1,A,exc1,zi_rec;x1_recn-1*FL+1:n*FL x1_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确 x1_Pitch excn*FL-222:n*FL;PT findpitchx1_Pitch; % 计算基音周期PT(不 要求掌握)G sqrtE*PT; % 计算合成激励的能量G(不要求掌握)% 13 将基音周 期减小一半,将共振峰频率增加900Hz,重新合成语音,听听是啥感受~ PT1 floorPT/2;%减小基音周期poles rootsA; deltaOMG 900*2*pi/8000; for p1:10%增加共振峰频率,实轴上方的极点逆时针转,下方顺时针转 if imagpolesp0 polesp polesp*expj*deltaOMG; elseif imagpolesp0 polesp polesp*exp-j*deltaOMG; end end A1polypoles;tempn_syn_t [1:n*FL-last_syn_t]'; exc_syn1_t zeroslengthtempn_syn_t,1; exc_syn1_tmodtempn_syn_t,PT10 G; %某一段算出的脉冲 exc_syn1_t exc_syn1_tn-1*FL-last_syn_t+1:n*FL-last_syn_t; [x1_syn1_t,zi_syn_t] filter1,A1,exc_syn1_t,zi_syn_t; exc_syn_tn-1*FL+1:n*FL exc_syn1_t;%计算得到的合成激励 x1_syn_tn-1*FL+1:n*FL x1_syn1_t;%计算得到的合成语音 last_syn_t last_syn_t+PT1*floorn*FL-last_syn_t/PT1; end%变调不 变速 figure6; subplot2,1,1, plotexc_syn_t, xlabel'n samples', ylabel'Amplitude', title'合成小孩的声音' ,XLim[0,lengthexc_syn_t]; subplot2,1,2, plotx1_syn_t,title'合成小孩声音的频谱', XLim[0,lengthx1_syn_t];soundx1_syn_t; 合成小孩的声音及频谱图如图1.5所示: 图1.5 合成小孩的声音及频谱图 变老人的声音 clear all,close all, clc; % 定义常数 FL 80; % 帧长 WL 240;% 窗长 P 10; % 预测系数个数[x1,fs,]wavread'D:\1.wav'; % 载入语音s x1 x1/x1; %归一化 L lengthx1; % 读入语音长度 FN floorL/FL-2; % 计算帧数 % 预测和重建滤波器 exc zerosL,1; % 激励信号(预测误差) zi_pre zerosP,1; % 预测滤波器的状态 x1_rec zerosL,1; % 重建语音 zi_rec zerosP,1; % 合成滤波器 exc_syn zerosL,1;% 合成的激励信号(脉冲串) x1_syn zerosL,1; % 合成语音 last_syn 0;%存储上一个(或多个)段的最后一个脉冲的下标 zi_syn zerosP,1;% 合成滤波器的状态 % 变速不变调滤波器(假设速度减慢一倍) v.5; exc_syn_v zerosv\L,1;% 合成的激励信号(脉冲串) x1_syn_v zerosv\L,1; % 合成语音 last_syn_v 0;%存储上一个(或多个)段的最后一个脉冲的下标 zi_syn_v zerosP,1;% 合成滤波器的状态 hw hammingWL; % 汉明窗 % 依次处理每帧语音 for n 3:FN% 计算预测系数(不需要掌握)x1_w x1n*FL-WL+1:n*FL.*hw; %汉明窗加权后的语音[A E] lpcx1_w, P;%用线性预测法计算P个预测系数 % A是预测系数,E会被用来计算合成激励的能量x1_f x1n-1*FL+1:n*FL; % 本帧语音,下面就要对它做处理% 4 用filter函数s_f计算激励,注意保持滤波器状态 [exc1,zi_pre] filterA,1,x1_f,zi_pre;excn-1*FL+1:n*FL exc1; %计算得到的激励 % 5 用filter函数和exc重建语音,注意保持滤波器状态 [x1_rec1,zi_rec] filter1,A,exc1,zi_rec;x1_recn-1*FL+1:n*FL x1_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确x1_Pitch excn*FL-222:n*FL;PT findpitchx1_Pitch; % 计算基音周期PT(不要求掌握)G sqrtE*PT; % 计算合成激励的能量G(不要求掌握) % 11 不改变基音周期和预测系数,将合成激励的长度增加一倍,再作为filter% 的输入得到新的合成语音,听一听是不是速度变慢了,但音调没有变。 FL_v floorFL/v; tempn_syn_v [1:n*FL_v-last_syn_v]'; exc_syn1_v zeroslengthtempn_syn_v,1; exc_syn1_vmodtempn_syn_v,PT0 G; %某一段算出的脉冲 exc_syn1_v exc_syn1_vn-1*FL_v-last_syn_v+1:n*FL_v-last_syn_v; [x1_syn1_v,zi_syn_v] filter1,A,exc_syn1_v,zi_syn_v; last_syn_v last_syn_v+PT*floorn*FL_v-last_syn_v/PT;exc_syn_vn-1*FL_v+1:n*FL_v exc_syn1_v; %计算得到的加长合成激励x1_syn_vn-1*FL_v+1:n*FL_v x1_syn1_v;%计算得到的加长合成语音end %变速不变调 figure7; subplot2,1,1, plotexc_syn_v, xlabel'n samples', ylabel'Amplitude', title'合成老人的声音' ,XLim[0,lengthexc_syn_v]; subplot2,1,2, plotx1_syn_v,title'合成合成老人的声音频谱', XLim[0,lengthx1_syn_v];soundx1_syn_v; clear all,close all,clc; 合成老人的声音及声音频谱图如图1.6所示: 图1.6 合成老人的声音及声音频谱图 第%合成女人声音 % 定义常数 FL 80; % 帧长 WL 240;% 窗长 P 10; % 预测系数个 数 [x1,fs,]wavread'D:\1.wav'; % 载入语音s x1 x1/x1; %归一化 L lengthx1; % 读入语音长度 FN floorL/FL-2; % 计算帧数 % 预测和重建滤波器 exc zerosL,1; % 激励信 号(预测误差) zi_pre zerosP,1; % 预测滤波器的状态 s_rec zerosL,1; % 重建语音 zi_rec zerosP,1; % 合成滤波器 exc_syn zerosL,1;% 合成的激励信号(脉冲串) x1_syn zerosL,1; % 合成语音 last_syn 0;%存储上一个(或多个)段的最后一个脉冲的下标 zi_syn zerosP,1;% 合成滤波器的状态 % 变调不变速滤波器 exc_syn_t zerosL,1;% 合成的激励信号(脉冲串) x1_syn_t zerosL,1; % 合成语音 last_syn_t 0;%存储上一个(或多个)段的最后一个脉冲的下标 zi_syn_t zerosP,1;% 合成滤波器的状态hw hammingWL; % 汉明窗 % 依次处理每帧语音 for n 3:FN% 计算预测系数(不需要掌握)x1_w x1n*FL-WL+1:n*FL.*hw; %汉明窗加权后的语音[A E] lpcx1_w, P;%用线性预测法计算P个预测系数 % A是预测系数,E会被用来计算合成激励的能量 x1_f x1n-1*FL+1:n*FL; % 本帧语音,下面就要对它做处理% 4 用filter函数s_f计算激励,注意保持滤波器状态 [exc1,zi_pre] filterA,1,x1_f,zi_pre;excn-1*FL+1:n*FL exc1; %计算得到的激励% 5 用filter函数和exc重建语音,注意保持滤波器状态 [x1_rec1,zi_rec] filter1,A,exc1,zi_rec;x1_recn-1*FL+1:n*FL x1_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确x1_Pitch excn*FL-222:n*FL;PT findpitchx1_Pitch; % 计算基音周期PT(不要求掌握)G sqrtE*PT; % 计算合成激励的能量G(不要求掌握) % 13 将基音周期减小一半,将共振峰频率增加100Hz,重新合成语音,听听是啥感受~ PT1 floorPT/2;%减小基音周期poles rootsA; deltaOMG 100*2*pi/8000; for p1:10%增加共振峰频率,实轴上方的极点逆时针转,下方顺时针转 if imagpolesp0 polesp polesp*exp1i*deltaOMG; elseif imagpolesp0 polesp polesp*exp-1i*deltaOMG; end end A1polypoles;tempn_syn_t [ 1:n*FL-last_syn_t]'; exc_syn1_t zeroslengthtempn_syn_t,1; exc_syn1_tmodtempn_syn_t,PT10 G; %某一段算出的脉冲 exc_syn1_t exc_syn1_tn-1*FL-last_syn_t+1:n*FL-last_syn_t; [x1_syn1_t,zi_syn_t] filter1,A1,exc_syn1_t,zi_syn_t; exc_syn_tn-1*FL+1:n*FL exc_syn1_t;%计算得到的合成激励 x1_syn_tn-1*FL+1:n*FL x1_syn1_t;%计算得到的合成语音 last_syn_t last_syn_t+PT1*floorn*FL-last_syn_t/PT1; end %变调 不变速 figure8; subplot2,1,1,plotexc_syn_t,xlabel'nsamples',ylabel'Amplitude',tit le'合成女人声音', subplot2,1,2,plotx1_syn_t,title'合成女人声音的频谱 ',XLim[0,lengthx1_syn_t]; soundx1_syn_t; 合成女人的声音及频谱如图1.7所示: 图1.7 合成女人的声音及频谱 5. foundpitch函数程序 程序如下: function PT findpitchs [B, A] butter5, 700/4000; s filterB,A,s; R zeros143,1; for k1:143 Rk s144:223'*s144-k:223-k; end [R1,T1] R80:143; T1 T1 + 79; R1 R1/norms144-T1:223-T1+1; [R2,T2] R40:79; T2 T2 + 39; R2 R2/norms144-T2:223-T2+1; [R3,T3] R20:39; T3 T3 + 19; R3 R3/norms144-T3:223-T3+1; Top T1; Rop R1; if R2 0.85*Rop Rop R2; Top T2; end if R3 0.85*Rop Rop R3; Top T3; end PT Top; return 第2章 MATLAB语言编程与运行 2.1 MATLAB的介绍 MATLAB 是由美国Math Works 公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。它的第1版(DOS版本1.0)发行于1984年,经过10余年的不断改进,现在已推出它的Windows 95版本(5.3版)。新的版本集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。 MATLAB语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅立叶变换、时域和频域分析、声音回放以及各种图的呈现等,信号处理是MATLAB重要应用的领域之一。 MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,不要求明确的维数说明。与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。在美国的一些大学里,MATLAB正成为对数值线性代数以及其他一些高等应用数学课程进行辅助教学的有益工具。在工程技术界,MATLAB也被用来解决一些实际课题和数学模型问题。典型的应用包括数值计算、算法预设计与验证,以及一些特殊的矩阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分析)等。 MATLAB系统由五个主要部分组成,下面分别 加以介绍。 (1)MATLAB语言体系 MATLAB是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算发设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。 (2)MATLAB工作环境 这是对MATLAB提供给用户使用的管理功能的总称,包括管理工作空间的变量,数据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。 (3)图形句柄系统 这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层次MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层次MATLAB命令,以及开发GUI应用程序的各种工具。 (4)MATLAB数学函数库 这是对MATLAB使用的各种数学算法的总称,包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。 (5)MATLAB应用程序接口(API)这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用子程序(动态链接),读写MAT文件的功能。 综上所述,可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB还具有很强的功能扩展能力,与它的主系统一起,可以配置各种各样的工具箱,以完成一些特定的任务。目前,MathWorks公司推出了18种工具箱。用户可以根据自己的工作任务,开发自己的工具箱。在本指导书中,我们主要利用MATLAB的关于信号处理的工具箱。 MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 MATLAB的源程序都是以扩展名为m的文件来存放的。这种.m文件(或称m文件)其实就是一个纯文本文件,它采用的是MATLAB所特有的一套语言及语法规则。本书应用MATLAB进行信号处理实际上就是通过编辑和运行这种.m文件来完成的。 m文件有两种写法,一种称为脚本(Script),就像批处理文件一样,包含了一连串的MATLAB命令,执行时依序进行;另一种称为函数(Function),与在命令行中输入的命令一样,函数能接收输入的参数,然后执行并输出结果。 2.2 MATLAB的基本应用 MATLAB 产品族可以用来进行以下各种工作: (1)数值分析 (2)数值和符号计算 (3)工程与科学绘图 (4)控制系统的设计与仿真 (5)数字图像处理技术 (6)数字信号处理技术 (7)通讯系统设计与仿真 MATLAB在通讯系统设计与仿真的应用 (1)财务与金融工程 (2)管理与调度优化计算(运筹学) MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。 第3章 总结分析 应用MATLAB进行语音信号的处理是与我们所学课程及专业紧密相连的,有着很强的实践性,正因为如此,在做这个课题的过程中我们也遇到了一些困难,但在我们小组同学的共同努力下克服了这些困难,达到了预期的效果。刚开始,在进行WAV格式语音信号处理的时候,程序始终现实如下错误提示:Error using wavread? Error using wavread? Data compression format IMA ADPCM is not supported. 我们在查阅了很多资料,在网上也查阅相关信息,花费了大量时间也没找出结果,最后发现在WAV格式的语音文件有两种格式,即PCM格式和IMA ?ADPCM格式,而在MATLAB中用wavread函数进行语音处理时,并不能直接处理IMA ADPCM格式的语音信号,经过格式转换之后(选择PCM格式),我们运行出了正确的结果。 实验过程中,我们很清楚的感觉到初始语音信号和滤波输出后的语音信号在音色上有一定的差别,这说明了信号在处理、传输过程中有损耗。另外,在设计滤波器的过程中我们采用的是双线性变化法,事实上,采用窗函数法也可以进行,因此,不管对于多么简单的课题,其实也是有很多东西可以发掘的,这需要我们在平时多积累,多思考,只有这样,才能取得更大的进步,才能学有所用,学有所长。 总结与致谢 语音信号处理是语音学与数学信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当作一种特殊的信号,即一种“复杂向量”来看待。也就是说,课题更多的还是体现了数字信号处理技术。 从课题的中心来看,课题是希望将数字信号处理技术应用于某一实际领 域,这里就是指对于语音的处理。在本次课程设计中,我们现场录制10s到15s的录音,然后将语音信号提取出来,再进行处理。 在这里,用到了处理数字信号的强有力的工具MATLAB,通过MATLAB里几个函数的调用,很轻易的在实际化语音与数学信号的理论之间搭了一座桥。 但由于知识能力有限,当中也存在相当的不足,特别体现在滤波与界面设计这一块。当然,这些问题与不足在今后的进一步学习中,我会一步一步的去解决。 最后,要特别感谢蔺莹老师这段时间以来细心详解的教学和帮助,让我对计算机通信这门课有所收获,对MATLAB更加了解。 参考文献 [1] 常巍、谢光军编著.MATLAN7.0基础与提高:电子工业出版社,2007. [2] 刘敏、 魏玲编著.MATLAN通信仿真与应用:国防工业出版社,2001. [3] 张德丰编著. MATLAB语言高级编程:机械工业出版社,2010. [4] 高西全、丁玉美编著.数字信号处理.:西安电子科技大学出版社,2008. [5] 导向科技编著.MATLAB程序设计与实例应用:中国铁道出版社.2001. [6] 罗军辉编著.MATLAB7.0在数字信号数理中的应用.电子工业出版社,2002. [7] 刘卫国主编.MATLAB程序设计与应用(第二版).高等教育出版社,2006.
/
本文档为【《计算机通信与网络》课程设计--数字变声器的设计 定稿】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索