计算机通信课设说明书.docx
- 文档编号:9952667
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:20
- 大小:445.46KB
计算机通信课设说明书.docx
《计算机通信课设说明书.docx》由会员分享,可在线阅读,更多相关《计算机通信课设说明书.docx(20页珍藏版)》请在冰豆网上搜索。
计算机通信课设说明书
*******************
实践教学
*******************
兰州理工大学
学生课程设计集
2012年春季学期
计算机通信课程设计
题目:
数字变声器设计
专业班级:
通信工程
(1)班
姓名:
xxxxxxx
学号:
xxxxxxxxx
指导教师:
xxxxxxx
成绩:
摘要
变声器的原理是通过改变输入声音频率,进而改变声音的音色、音调,使输出声音在感官上与原声音不同。
变声器是借助对声音音色和音调的双重复合改变,实现输出声音的改变。
通过自己发声,共振峰频率的改变是基于重采样实现的。
通过仿真软件MATLAB,可对采集到的语音信号进行频谱分析及仿真,再用MATLAB绘出各个声音频谱图。
关键词:
语音采集;频谱分析;仿真
目录
摘要1
第一章基本原理3
1.1MATLAB简介3
1.1.1基本功能3
1.1.2基本应用3
1.1.3发展历程4
1.1.4系统结构4
1.1.5优势4
1.2时域抽取法基2FFT基本原理6
1.3低通滤波器原理7
1.4高通滤波器原理7
1.5带通滤波器7
第二章实现框图9
第三章基于MATLAB仿真模型10
3.1读取声音信号10
3.2滤波器设计10
3.2.1低通滤波器10
3.2.2高通滤波器11
3.2.3带通滤波器11
3.3变速和衰减12
3.4声音变换13
第四章仿真结果以及结果分析14
4.1原声音信号和语音的幅度谱14
4.2频率幅值图与频率相位图14
4.3频率分布图15
4.4变声后频率幅值图与频率相位图16
总结17
参考文献18
致谢19
第一章基本原理
1.1MATLAB简介
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
1.1.1基本功能
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
1.1.2基本应用
MATLAB产品族可以用来进行以下各种工作:
数值分析
数值和符号计算
工程与科学绘图
控制系统的设计与仿真
数字图像处理技术
数字信号处理技术
通讯系统设计与仿真
财务与金融工程
管理与调度优化计算(运筹学)
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
1.1.3发展历程
20世纪70年代,美国新墨西哥大学计算机科学系主任CleveMoler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。
1984年由Little、Moler、SteveBangert合作成立了的MathWorks公司正式把MATLAB推向市场。
到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。
1.1.4系统结构
MATLAB系统由MATAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。
开发环境
MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。
它是一个集成的用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。
数学函数库
MATLAB数学函数库包括了大量的计算算法。
从基本算法如加法、正弦,到复杂算法如矩阵求逆、快速傅里叶变换等。
语言
MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。
图形处理系统
图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。
它包括强大的二维三维图形函数、图像处理和动画显示等函数。
应用程序接口
MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其它高级编程语言进行交互的函数库。
该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB与其它应用程序间建立客户、服务器关系。
1.1.5优势
友好的工作平台编程环境
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
简单易用的程序语言
Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。
允许用户编写可以和MATLAB进行交互的C或C++语言程序。
另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。
工具箱MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
1.2时域抽取法基2FFT基本原理
FFT算法基本上分为两大类:
时域抽取法FFT(简称DIT-FFT)和频域抽取法FFT(简称DIF-FFT),其基本思想为不断地把长序列的DFT分解成几个短序列的DFT,并利用旋转因子的周期性和对称性来减少DFT的运算次数。
FFT(快速傅氏变换)是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。
设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要N2次运算。
当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2)2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。
这样变换以后,总的运算次数就变成N+2(N/2)2=N+N2/2。
继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。
而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog2N次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。
1.3低通滤波器原理
低通滤波器容许低频信号通过,但减弱(或减少)频率高于截止频率的信号的通过。
对于不同滤波器而言,每个频率的信号的减弱程度不同。
当使用在音频应用时,它有时被称为高频剪切滤波器,或高音消除滤波器。
高通滤波器则相反,而带通滤波器则是高通滤波器同低通滤波器的组合.低通滤波器概念有许多不同的形式,其中包括电子线路(如音频设备中使用的hiss滤波器、平滑数据的数字算法、音障(acousticbarriers)、图像模糊处理等等。
低通滤波器在信号处理中的作用等同于其它领域如金融领域中移动平均数(movingaverage)所起的作用;这两个工具都通过剔除短期波动、保留长期发展趋势提供了信号的平滑形式。
1.4高通滤波器原理
去掉信号中不必要的低频成分,去掉低频干扰的滤波器;在电力系统中,谐波补偿时用高通滤波器滤除某次及其以上的各次谐波。
高通滤波器是指车载功放中能够让中、高频信号通过而不让低频信号通过的电路,其作用是滤去音频信号中的低音成分,增强中音和高音成分以驱动扬声器的中音和高音单元。
此外高通滤波器常常和低通滤波器成对出现,不论哪一种,都是为了把一定的声音频率送到应该去的单元。
最简单的电子高通滤波器包括一个与信号通路串联的电容器和与信号通路并联的电阻。
电阻与电容的乘积(R×C)是时间常数;它与截止频率成反比,在截止频率上输出信号的强度是输入信号的一半(-3分贝(dB)):
1.5带通滤波器
滤波器在通信测量和控制系统中得到了广泛的应用。
一个理想的滤波器应在要求的频(通内具有均匀而稳定的增益,而在通带以外则具有无穷大的衰减。
然而实际的滤波器距此有一定的差异,为此人们采用各种函数来逼近理想滤波器的频率特性。
用运算放大器和RC网络组成的有源滤波器具有许多独特的优点。
因为不用电感元件,所以免除了电感所固有的非线性特性、磁场屏蔽、损耗、体积和重量过大等缺点。
由于运算放大器的增益和输入电阻高,输入电阻低,所以能提供一定的信号增益和缓冲作用,这种滤波器的频率范围约为10-3Hz~106Hz,频率稳定度可做到(10-3~10~10-5)/摄氏度,频率精度为+(3~5)%,并可用简单的级联来得到高阶滤波器且调谐也很方便。
滤波器分为无源滤波器与有源滤波器两种:
①无源滤波器:
由电感L、电容C及电阻R等无源元件组成
②有源滤波器:
一般由集成运放与RC网络构成,它具有体积小、性能稳定等优点,同时,由于集成运放的增益和输入阻抗都很高,输出阻抗很低,故有源滤波器还兼有放大与缓冲作用。
利用有源滤波器可以突出有用频率的信号,衰减无用频率的信号,抑制干扰和噪声,以达到提高信噪比或选频的目的,因而有源滤波器被广泛应用于通信、测量及控制技术中的小信号处理。
从功能来上有源滤波器分为:
低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BEF)、全通滤波器(APF);其中前四种滤波器间互有联系,LPF与HPF间互为对偶关系。
当LPF的通带截止频率高于HPF的通带截止频率时,将LPF与HPF相串联,就构成了BPF。
第二章实现框图
第三章基于MATLAB仿真模型
3.1读取声音信号
[x,fs,nbits]=wavread('C:
\Users\dell\Documents\MATLAB\myspeech.wav');
N=length(x);
n=[0:
N-1];
X=fft(x);
Fs=2*fs;
T=1/Fs;
f=n/N*Fs;
subplot(2,1,1);
plot(n,x);
ylabel('原声音信号');
xlabel('时间/s');
subplot(2,1,2);
plot(f,abs(X));
ylabel('语音的幅度谱');
xlabel('频率/Hz');
3.2滤波器设计
3.2.1低通滤波器
fp1=1000;fs1=1200;
wp1=2*fp1/Fs;ws1=2*fs1/Fs;rp=1;as=100;
[N1,wp1]=ellipord(wp1,ws1,rp,as);
[B,A]=ellip(N1,rp,as,wp1);
y1=filter(B,A,x);
Y1=abs(fft(y1));
figure;
freqz(B,A);
ylt='y_1(t)';
figure;
subplot(2,1,1);
t=n*T;
plot(t,y1);
xlabel('t/s');ylabel(ylt);
axisimage;
subplot(2,1,2);
plot(f,abs(fft(y1)));
3.2.2高通滤波器
fp2=4800;fs2=5000;
wp2=2*fp2/Fs;ws2=2*fs2/Fs;rp=1;as=100;
[N2,wp2]=ellipord(wp2,ws2,rp,as);
[B2,A2]=ellip(N2,rp,as,wp2,'high');
y2=filter(B2,A2,x);
figure;
freqz(B2,A2);
figure;
y2t='y_2(t)';
subplot(2,1,1);
t=n*T;
plot(t,y2);
xlabel('t/s');ylabel(y2t);
axisimage;
subplot(2,1,2);
plot(f,abs(fft(y2)));
3.2.3带通滤波器
fp1=1200;fpu=3000;fs1=1000;fsu=3200;
wp3=[2*fp1/Fs,2*fpu/Fs];
ws3=[2*fs1/Fs,2*fsu/Fs];
rp=1;
as=100;
[N3,wp3]=ellipord(wp3,ws3,rp,as);
[B3,A3]=ellip(N3,rp,as,wp3);
y3=filter(B3,A3,x);
figure;
freqz(B3,A3);
y3t='y_3(t)';
figure;
subplot(2,1,1);
t=n*T;
plot(t,y3);
xlabel('t/s');
ylabel(y3t);
axisimage;
subplot(2,1,2);
plot(f,abs(fft(y3)));
sound(x,fs);
3.3变速和衰减
w=0.8
M=w*fs;
sound(x,M);
figure
ol=0.9
forxa=1:
16384;
p(xa,1)=x(xa,1)/xa*ol;
end
subplot(2,1,1);
plot(x,M);
xlabel('原始波形')
subplot(2,1,2);
plot(n/Fs,p);
xlabel('变换波形')
sound(20*p,fs);
3.4声音变换
[y,fs]=wavread('C:
\Users\dell\Documents\MATLAB\myspeech.wav');
p=fft(y);
xaa=p;
N=1000;
pa=[zeros(1,N),xaa(1:
420000),zeros(1,N)];
pu=pa;
Y1=3*real(ifft(pu));
plot(Y1)
sound(20*Y1,fs);
第四章仿真结果以及结果分析
4.1原声音信号和语音的幅度谱
图4.1原声音信号和语音的幅度谱
原声音信号横轴为时间,持续时间小于6秒,语音的幅度谱横轴为频率,可以看到频率主要集中在100HZ以内和800HZ到900HZ之间。
4.2频率幅值图与频率相位图
图4.2频率幅值图与频率相位图
频率主要集中在1000HZ以内,可以看到频率幅度和频率相位在100HZ以内变化较大。
图4.3频率幅值图与频率相位图
经过高通滤波器后的频率幅值图与频率相位图,可以看到100HZ以下的频率衰减很厉害,而且变化很大。
4.3频率分布图
图4.4频率分布图
经过三个滤波器后的声音信号图与频率分布图,可以看到声音持续时间基本没变,但是频率范围变小了,低频率有很强的噪音,而且其间有很多突变的声音频率。
4.4变声后频率幅值图与频率相位图
图4.5滤波后频率幅值图与频率相位图
变声后频率幅值图与频率相位图,可以看到低频部分有很强的干扰,可以看到在频率大于200HZ以后频率幅值线走向很流畅,几乎没有噪音,而在频率幅度图中在频率大于100HZ后才变得比较平稳。
总结
变声器的原理是通过改变输入声音频率,进而改变声音的音色、音调,使输出声音在感官上与原声音不同。
变声器是借助对声音音色和音调的双重复合改变,实现输出声音的改变。
通过自己发声,共振峰频率的改变是基于重采样实现的。
通过这几个星期的学习使我更加了解和掌握了MATLAB,对其有了更深刻的认识,尤其是它强大的信号处理能力。
通过这次课设我了解到了自己的不足,以后我会更加努力学习MATLAB,使我能够更好地掌握和运用。
参考文献
【1】徐明远.MATLAB仿真在信号处理中的应用.西安:
西安电子科技大学出版社;
【2】李益华.MATLAB辅助现代工程数字信号处理.西安:
西安电子科技大学出版社;
【3】董霖.MATLAB使用详解.北京:
电子工业出版社;
【4】丁玉美.数字信号处理.西安:
西安电子科技大学出版社;
致谢
感谢老师对本论文的悉心指导。
让我们明白了课设并不是老师手把手带学生,而是引导学生发现问题,然后大量收集资料,潜心钻研。
而且,每当我有一些棘手的问题时,也能在她那里得到非常及时的帮助。
通过这几个星期的学习,使我对MATLAB有了更深刻的了解,在这过程中离不开小组同学的讨论与帮助,更离不开老师的一次又一次的讲解与帮助,在此感谢老师及同学的热心帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 通信 说明书