版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务书课程设计任务书学生姓名:学生姓名: 专业班级:专业班级: 通通信信 0 09 90 06 6 班班 指导教师:指导教师: 黄铮黄铮 工作单位:工作单位: 信息工程学院信息工程学院 题题 目目:声音的延时和混响仿真声音的延时和混响仿真初始条件初始条件:MATLAB 软件,电脑要求完成的主要任务要求完成的主要任务: :1.录制一段自己的语音信号,时间控制在 1s 左右,并对录制的信号进行采样。语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。2.将信号加入延时和混响,并与原始信号频谱进行比较。3.设计单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波
2、器的频域响应。用滤波器对语音信号进行滤波。画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。4.回放语音信号。时间安排时间安排:序序号号阶段内容阶段内容所需时间所需时间1查阅资料2 天2各部分编程3 天4调试程序2 天5GUI 设计3 天答辩1 天合 计11 天指导教师签名:指导教师签名: 20122012 年年 月月 日日系主任(或责任教师)签名:系主任(或责任教师)签名: 2012 年年 月月 日日 武汉理工大学信息群处理课程设计报告摘要数字信号处理(Digital Signal Processing)技术,从 20 世纪 60 年代以来,随着计算机科学和信息科学
3、发展,数字处理技术应运而生并得以快速发展。 语言是人们进行信息沟通的主要方式之一,它具有直接、自然、方便等优点。语音则是语言的物理层表达方式。语音处理主要是对语音进行机器处理,以达到传输、自动识别、机器理解等目的。进行了语音处理过程的滤波、采样、傅立叶变换和谱包络提取的算法实现研究,讨论了在算法的 DSP 实现方法, Matlab 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言, Matlab 功能强大、简单易学、编程效率高。特别是 Matlab 还具有信号分析工具箱, 不需具备很强的编程能力, 就可以很方便地进行信号分析、处理和设计关键词 语音信号处理 MATLAB 语言 滤波器
4、频谱分析 GUI武汉理工大学信息群处理课程设计报告IAbstractDigital Signal Processing (Digital Signal Processing) technology from the 1960s,along with the development of computer science and information science, digital processing techniques have emerged and to rapid development. Language is the communication of people to on
5、e of the main, it has a direct, natural, and easy. Voice is the language of the physical layer of expression. Voice processing machines mainly for voice processing, in order to achieve transmission, automatic recognition, machine understanding of other purposes. For voice processing filtering, sampl
6、ing, Fourier transform and spectral envelope extraction algorithm research, discusses the implementation of DSP algorithms, Matlab language is a widely used engineering calculation and numerical analysis of the field of new high-level language, Matlab powerful, easy to learn, programming and high ef
7、ficiency. Matlab also has a particular signal analysis toolbox, need not have strong programming skills, you can easily carry out signal analysis, processing and design Keywords Speech signal processing Spectral analysis of MATLAB Filter Spectrum analysis Graphical User Interface武汉理工大学信息群处理课程设计课程设计说
8、明书20目 录摘要.IABSTRACT.II1.引言.51.1 简介 .51.2 设计任务及要求 .62 设计原理.72.1 语音信号的采样 .72.2 时域分析 .72.3 频域分析 .82.4 延时 .82.5 混响 .92.6 滤波器的设计 .102.7 图形用户界面的设计 .103 设计步骤.123.1 总体设计流程图 .123.2 详细设计 .133.2.1 语音的录制 .133.2.2 原始信号 .133.2.3 延时 .143.2.4 混响 .153.2.5 单回声滤波器 .173.2.6 多回声滤波器 .183.2.7 无限回声滤波器 .193.2.8 全通滤波器 .214 图
9、形用户界面的设计 .234.1 GUI 布局.234.2 设置属性 .234.3 编程 .244.4 运行结果 .245 总结 .2参考文献.3附录.4武汉理工大学信息群处理课程设计课程设计说明书201.引言1.1 简介数字信号处理主要是研究用数字或符号序列表示和处理信号。处理的目的可以是削弱信号中的多余内容,滤除混杂的噪声和干扰,或者是将信号变换为容易分析和识别的形式,便于估计和选择它的特征参数。语音信号分析是语音信号处理的前提和基础,只有分析出可表示语音信号本质特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和语音识别等处理。而且,语音合成的音质好坏,语音识别率的高低,也都取决
10、于对语音信号分桥的准确性和精确性。因此语音信号分析在语音信号处理应用中具有举足轻重的地位。根据所分析出的参数的性质的不同,可将语音信号分析分为时域分析、频域分析、倒领域分析等;时域分析方法具有简单、计算量小、物理意义明确等优点,但由于语音信号最重要的感知特性反映在功率谱中,而相位变化只起着很小的作用,所以相对于时域分析来说频域分析更为重要。本文将简要介绍时域分析、频域分析。声音信号是一维连续信号,而计算机只能处理离散信号。为了从离散信号还原连续信号,根据采样定理,可以确定采样频率的最小值。wav 文件是一种数字声音文件格式,本课程设计基于 Matlab 分析了 wav 声音文件频谱与声音的关系
11、。通过采集个人的一段声音进行频谱分析等处理,然后设计数字滤波器处理这个原始声音的 wav 文件,并比较滤波以后输出声音信号与原声音信号的异同。武汉理工大学信息群处理课程设计课程设计说明书201.2 设计任务及要求设计任务:(1)利用 Windows 下的录音机或其他软件,录制一段自己的语音信号,时间控制在 1s 左右,并对录制的信号进行采样。(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。(3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。(4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。(
12、5)用自己设计的滤波器对采集的语音信号进行滤波。(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。(7)回放语音信号。设计要求(1)熟悉离散信号和系统的时域特性。(2)熟悉语音信号的特点。(3)掌握数字信号处理的基本概念,基本理论和基本方法。(4)掌握序列快速傅里叶变换方法。(5)学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。(6)掌握 MATLAB 设计各种数字滤波器的方法和对信号进行滤波的方法武汉理工大学信息群处理课程设计课程设计说明书202 设计原理2.1 语音信号的采样(1)采样频率 采样频率是指计算机每秒钟采集多少
13、个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。(2)采样位数采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最
14、大的力度范围。每增加一个采样位数相当于力度范围增加了 6dB。采样位数越多则捕捉到的信号越精确。对于采样率来说你可以想象它类似于一个照相机,44.1kHz 意味着音频流进入计算机时计算机每秒会对其拍照达 441000次。显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。(3)采样定理在进行模拟/数字信号的转换过程中,当采样频率 fsmax 大于信号最高频率fmax 的 2 倍时,即:fsmax=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的 510 倍,采样定理又称奈奎斯特定理。1924 年奈奎斯特(Nyquist)就
15、推导出:在理想低通信道的最大码元传输速率=2W*log2 N (其中 W 是理想低通信道的带宽,N 是电平强度)。2.2 时域分析语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析武汉理工大学信息群处理课程设计课程设计说明书20时,最先接触到并且也是最直观的是它的时域波形。语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。时域分析通常用于最基本的参数分析及应用,如语音的分割、预处理、大分类等。这种分析方法的特点是:表示语音信号比较直观、物理意义明确。实现起来比较简单、运算且少。可以得到语音的一些重要的参数。只使用示
16、波器等通用设备,使用较为简单等。2.3 频域分析在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。下面介绍这些函数:(1)函数FFT用于序列快速傅立叶变换。函数的一种调用格式为:y=fft(x)其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。且和x相同长度。若x为一矩阵,则y是对矩阵的每一列向量进行FFT。如果x长度是2的幂次方,函数fft执行高速基2FFT算法;否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。(2)函数FFT的另一种调用格式为:y=fft(x,N)式中,x,y意义同前,N为正整数。函数执行N点的F
17、FT。若x为向量且长度小于N,则函数将x补零至长度N。若向量x的长度大于N,则函数截短x使之长度为N。若x 为矩阵,按相同方法对x进行处理。(3)经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。MATLAB提供求复数的幅值和相位函数:abs,angle,这些函数一般和FFT同时使用。函数abs(x)用于计算复向量x的幅值,函数angle(x)用于计算复向量的相角,以弧度表示。函数unwrap(p)用于展开弧度相位角p 。(4)fftshift作用:将零频点移到频谱的中间武汉理工大学信息群处理课程设计课程设计说明书20 用法:Y=fftshift(X) Y=fftshift(X,di
18、m) 描述:fftshift移动零频点到频谱中间,重新排列fft,fft2和fftn的输出结果。将零频点放到频谱的中间对于观察傅立叶变换是有用的。2.4 延时 延时就是将音源延迟一段时间后,再欲播放的效果处理。依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。当延迟时间在335ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生梳状滤波效应,这就是镶边效果。如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。回音处理一般都是用于产生简单的混响效果。延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项:延时时间(Dly) ,即主延时电
19、路的延时时间调整。反馈增益(FB Gain) ,即延时反馈的增益控制。反馈高频比(Hi Ratio) ,即反馈回路上的高频衰减控制。调制频率(Freq) ,指主延时的调频周期。调制深度(Depth) ,指上述调频电路的调制深度。高频增益(HF) ,指高频均衡控制。预延时(Ini Dly) ,指主延时电路预延时时间调整。均衡频率(EQ F) ,这里的频率均衡用于音色调整,此为均衡的中点频率选择。由于延时产生的效果都比较复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。2.5 混响 混响效果主要是用于增加音源的融合感。自然音源的延时声阵列非常密
20、集、复杂,所以模拟混响效果的程序也复杂多变。常见参数有以下几种:混响时间:能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。高频滚降:此项参数用于模拟自然混响当中,空气对高频的吸收效应,以武汉理工大学信息群处理课程设计课程设计说明书20产生较为自然的混响效果。一般高频混降的可调范围为0.11.0。此值较高时,混响效果也较接近自然混响;此值较低时,混响效果则较清澈。扩散度:此项参数可调整混响声阵密度的增长速度,其可调范围为010,其值较高时,混响效果比较丰厚、温暖;其值较低时,混响效果则较空旷、冷
21、僻。预延时:自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。声阵密度:此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。频率调制:这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进行调制。此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。调治深度:指上述调频电路的调治深度。2.6 滤波器的设计单回声滤波器的系统函数:H(z)= 1 (2-)(1Rzaa1)无限个回声滤波器的系统函数:H(z)= 1 (2-)(1 )(RzaRz
22、a2)全通结构的混响器的系统函数:H(z)= 1 (2-)(*1 )(RzaRzaa3)函数filter的调用格式为:y=filter(b,a,x)该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。其中向量b和a分别表示系统函数的分子、分母多项式的系数,若武汉理工大学信息群处理课程设计课程设计说明书20a1,此时表示FIR滤波器,否则就是IIR滤波器。该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。2.7 图形用户界面的设计GUI(Graphical User Interface)图形用户界面,是在图形界面下安排显示与用户交互的组件元素,用
23、户可以只通过键盘、鼠标和前台界面下的组件发生交互,而所有的计算、绘图等内部操作都封装在内部,提高了终端用户使用 MATLAB程序的易用性。设计图形用户界面应遵循以下三个原则:简单性(Simplicity) 、一致性(Consistency)及习常性(Familiarity) 。(1)简单性设计界面时,应力求简洁、直接、清晰地体现出界面的功能和特征。设计的图形界面要直观,为此应多采用图形,而间量避免数值。设计界面应间量减少窗口数目,力避在不同窗口之间进行来回切换。(2)一致性所谓一致性有两层含义:一是读者自己开发的界面风格要尽量一致;二是新设计的界面要与其他已有的界面的风格不要截然向左。(3)习
24、常性设计界面时,应尽量使用人们所熟悉的标志与符号。用户可以根据熟悉标志作出正确猜测,自学入门。(4)其他考虑因素注意界面的动态性能。如界面对用户操作的响应要迅速(Immediate)、连续(Continous) ;对持续时间较长的运算,要给出等待时间提示,并允许用户中断运算。图形用户界面的制作包括界面设计和程序实现。具体制作步骤如下: (1)分析界面所要求实现的主要功能,明确设计任务; (2)在稿纸上绘出界面草图,并站在使用者的角度来审查草图; (3)按构思的草图,上机制作静态界面,并检查之; (4)编写界面动态功能的程序,对功能进行逐项检查。 武汉理工大学信息群处理课程设计课程设计说明书20
25、武汉理工大学信息群处理课程设计课程设计说明书203 设计步骤3.1 总体设计流程图图 3-1 总体设计流程图用 luyin 程序录制一段 1s 左右的 wav 格式的语音,并保存用wavread 从电脑中导入录制的语音信号调用 fft 函数进行快速傅里叶变换。画出采样后语音信号的时域波形与频谱图,并回放采样语音信号对采样信号延时 2000,两者相加,得到混响。分别画出延时和混响后语音信号的时域波形与频谱图。并回放延时和混响后语音信号a.单回声滤波器,画出频域响应。用滤波器对语音信号滤波,画出时域波形与频谱图回放语音信号b.多声滤波器,画出频域响应。用滤波器对语音信号滤波,画出时域波形与频谱图回
26、放语音信号c.无限回声滤波器,画出频域响应。用滤波器对语音信号滤波,画出时域波形与频谱图回放语音信号D.全通滤波器,画出频域响应。用滤波器对语音信号滤波,画出时域波形与频谱图回放语音信号分析得到信号的频谱,比较回放的声音,并对滤波前后的信号进行对比,分析信号的变化。武汉理工大学信息群处理课程设计课程设计说明书203.2 详细设计3.2.1 语音的录制运行程序,录制语音文件,文件名为 sound.wav程序:%获取录音文件 pausefs=44100; %声音的采样频率为 44.1Khz duration=3; %录音时间为 3s fprintf(按任意键开始录音 1:n); pausefpri
27、ntf(录音中n);sd1=wavrecord(duration*fs,fs); %采样数为 132300,保存文件名为 sd1.wavfprintf(放音中n);wavplay(sd1,fs);fprintf(录音 1 播放完毕。n);wavwrite(sd1,fs,sound1.wav); %将录音文件保存为 WAV 格式的声音文件3.2.2 原始信号读取声音,画出采样后语音信号的时域波形与频谱图,并回放采样语音信号。程序:x1,fs,bits=wavread(D:sound1.wav); %读取信号,采样值放在向量x中,fs表示采样频率(Hz),bits表示采样位数。x1=x1(:,1)
28、; %只取单声道sound(x1,fs); %对声音的回放figure;Subplot(211);plot(x1); %做原始语音信号的时域图形title(原始语音信号的时域图);grid on;xlabel(时间 n);ylabel(音量 n);武汉理工大学信息群处理课程设计课程设计说明书20y1=fft(x1); %做length(x1)点的FFTy1=fftshift(y1); %平移,是频率中心为0derta_fs = fs/length(x1); %设置频谱的间隔,分辨率Subplot(212);plot(-fs/2:derta_fs:fs/2-derta_fs,abs(y1); %
29、画出原始语音信号的频谱图title(原始语音信号的频谱);grid on;运行结果:图3-2 原始语音信号的时域波形与频谱图结果分析:采样点数为 132300,与时域波形结果吻合,由频谱可看出频率较集中,有一点高频分量,是由于噪声的干扰引起的。3.2.3 延时 对原始语音信号延时 2000,画出延时后语音信号的时域波形与频谱图,并回放延时后的语音信号。程序: %延时的信号 x1,fs,bits=wavread(D:sound1.wav); x1=x1(:,1); %只取单声道02468101214x 104-1-0.500.51个个 个个 个个 个个 个个个个 n个 个 n-3-2-10123
30、x 1040500100015002000个个 个个 个个 个个 个武汉理工大学信息群处理课程设计课程设计说明书20 z=zeros(2000,1);x1; %对声音延时2000 sound(z,fs); figure(2); Subplot(211); plot(z); title(延时后的信号时域图);grid on; %画出延时后的信号时域图 z=fft(x1); %做length(x1)点的FFT z=fftshift(z); %平移,是频率中心为0 derta_fs = fs/length(z); %设置频谱的间隔,分辨率 Subplot(212); plot(-fs/2:derta
31、_fs:fs/2-derta_fs,abs(z);%画出延时后的信号频谱图 title(延时后的信号频谱图);grid on; 运行结果: 02468101214x 104-1-0.500.51个个 个个 个个 个个 个-3-2-10123x 1040500100015002000个个 个个 个个 个个 个 图 3-3 延时后语音信号的时域波形与频谱图结果分析:由运行结果可以看出,时域波形向右平移,频谱无变化。3.2.4 混响 调整原始采样信号的长度,将其与延时信号相加,就得到混响。画出混响后语音信号的时域波形与频谱图,并回放延时后的语音信号。武汉理工大学信息群处理课程设计课程设计说明书20程
32、序: %混响后信号 x,fs,bits=wavread(D:sound1.wav); %读取语音信号 x=x(:,1); %只取单声道 z=zeros(2000,1);x; %对语音信号进行延时 x=x;zeros(2000,1); %使语音信号与延时后信号同等长度 y1=x+z; %信号的混响 sound(y1,fs); %回放混响后的信号 figure(3);subplot(211);plot(y1); title(混响的时域图); %混响时域图 Y1=fft(y1); %做length(y1)点的FFT Y1=fftshift(Y1); %平移,是频率中心为0 derta_fs = fs
33、/length(y1); %设置频谱的间隔,分辨率 Subplot(212); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(Y1);%画出混响频谱图 title(混响的频谱图);grid on;运行结果: 02468101214x 104-1-0.500.51个个 个个 个个-3-2-10123x 1040100020003000个个 个个 个个 图 3-4 混响后语音信号的时域波形与频谱图武汉理工大学信息群处理课程设计课程设计说明书20结果分析:由运行结果可以看出,原始信号的延时声阵列非常密集、复杂,混响后时域波形音量增大了,各个脉冲变宽,语音信号的频谱展宽了
34、,幅值增大,回放的语音声音变得融合,能听到回音。3.2.5 单回声滤波器 用单回声滤波器对原始语音信号滤波,画出滤波后语音信号的时域波形与频谱图,并回滤波时后的语音信号。程序: %单回声滤波器 x,fs,bits=wavread(D:sound1.wav); %读取语音信号 x=x(:,1); %只取单声道 a=0.5; %a取小于等于1 z=zeros(2000,1);x; %对语音信号进行延时 x=x;zeros(2000,1); %使语音信号与延时后信号同等长度 y2=x+z*a; %信号经单回声滤波 sound(y2,fs); %回放经单回声滤波器后的语音信号 figure;subpl
35、ot(211);plot(y2);title(单回声滤波的信号时域图); Y2=fft(y2); %做length(y2)点的FFT Y2=fftshift(Y2); %平移,是频率中心为0 derta_fs = fs/length(y2); %设置频谱的间隔,分辨率 Subplot(212); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(Y2);%画出单回声信号频谱图 title(单回声滤波的信号频谱图);grid on;武汉理工大学信息群处理课程设计课程设计说明书20运行结果: 02468101214x 104-1-0.500.51个个 个个 个个 个个 个
36、个 个-3-2-10123x 1040500100015002000个个 个个 个个 个个 个个 个 图 3-5 单回声滤波器滤波后信号的时域波形与频谱图结果分析:由运行结果可以看出,时域波形的幅值变大,毛刺变多,频谱的中心频率两边的频率分量展宽、幅值变大,回放的声音立体感变强。3.2.6 多回声滤波器 用多回声滤波器对原始语音信号滤波,画出滤波后语音信号的时域波形与频谱图,并回滤波时后的语音信号。程序:%多回声滤波器 x,fs,bits=wavread(D:sound1.wav); x1=x(:,1); %变换为单声道语音信号 delay_t=0.1; %回声延迟时间 a=0.2; %衰减系
37、数 N=3; %N阶延时 Bz=1;zeros(fs*delay_t,1)*N;aN; Az=1;zeros(fs*delay_t,1);a;武汉理工大学信息群处理课程设计课程设计说明书20 y=filter(Bz, Az ,x1 ); sound(y,fs,bits); %回放经多回声滤波器后的语音信号 figure;subplot(211);plot(y);title(多回声滤波的信号时域图); Y2=fft(y); %做length(y)点的FFT Y2=fftshift(Y2); %平移,是频率中心为0 derta_fs = fs/length(y); %设置频谱的间隔,分辨率 Sub
38、plot(212); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(Y2); %画出多回声信号频谱图 title(多回声滤波的信号频谱图);grid on;运行结果: 02468101214x 104-1-0.500.51个个 个个 个个 个个 个个 个-3-2-10123x 1040500100015002000个个 个个 个个 个个 个个 个图 3-6 单回声滤波器滤波后信号的时域波形与频谱图结果分析:由运行结果可以看出,时域波形的幅值变大,毛刺变得更多,频谱的中心频率幅值变大,回放的声音立体感变的更强。3.2.7 无限回声滤波器 用无限回声滤波器对原始语音信
39、号滤波,画出滤波后语音信号的时域波形与武汉理工大学信息群处理课程设计课程设计说明书20频谱图,并回滤波时后的语音信号。程序: %无限回声滤波器 x,fs,bits=wavread(D:sound1.wav); %读取语音信号 x=x(:,1); %只取单声道 a=0.5; %a取小于等于1 Bz=0,0,0,0,0,0,0,0,0,0,1; %分子的系数 Az=1,0,0,0,0,0,0,0,0,0,-a; %分母的系数 yy1=filter(Bz,Az,x); %FIR滤波器进行滤波 sound(yy1,fs,bits); %回放经无限回声滤波器后的语音信号 figure(5);subplo
40、t(211);plot(yy1); %无限回声信号时域波形 title(无限个回声滤波的信号时域图); YY1=fft(yy1); %经无限回声滤波器后的信号做length(yy1)点的FFT YY1=fftshift(YY1); %平移,是频率中心为0 derta_fs = fs/length(yy1); %设置频谱的间隔,分辨率 Subplot(212);plot(-fs/2:derta_fs:fs/2-derta_fs,abs(YY1);%无限回声频谱图 title(无限个回声滤波的信号频谱图);grid on; 运行结果:武汉理工大学信息群处理课程设计课程设计说明书20 0246810
41、1214x 104-1-0.500.51个个 个个 个个 个个 个个 个个 个-3-2-10123x 10401000200030004000个个 个个 个个 个个 个个 个个 个图 3-7 无限回声滤波器滤波后信号的时域波形与频谱图结果分析:由运行结果可以看出,时域波形的幅值变大,频谱的中心频率不变,中心频率两边的频率分量变得密集、幅值变小,回放的声音变得清晰,音量变大。3.2.8 全通滤波器 用全通滤波器对原始语音信号滤波,画出滤波后语音信号的时域波形与频谱图,并回滤波时后的语音信号。程序: %全通结构的混响器 x,fs,bits=wavread(D:sound1.wav); %读取语音信
42、号 x=x(:,1); %只取单声道 a=0.5; %a取小于等于1 Bz1=a,0,0,0,0,0,0,0,0,0,1; %分子的系数 Az1=1,0,0,0,0,0,0,0,0,0,a; %分母的系数 yy2=filter(Bz1,Az1,x); %FIR滤波器进行滤波 sound(yy2,fs,bits); %回放经全通结构的混响器后的语音信号 figure(6); subplot(211);plot(yy2); title(全通滤波信号的时域图)武汉理工大学信息群处理课程设计课程设计说明书20 %全通结构的混响器时域波形 YY2=fft(yy2); %经全通滤波器后的信号做length
43、(yy2)点的FFT YY2=fftshift(YY2); %平移,是频率中心为0 derta_fs = fs/length(yy2); %设置频谱的间隔,分辨率 Subplot(212); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(YY2); %全通滤波信号的频谱图 title(全通滤波信号的频谱图);grid on;运行结果: 02468101214x 104-1-0.500.51个个 个个 个个 个个 个个-3-2-10123x 1040500100015002000个个 个个 个个 个个 个个图 3-8 无限回声滤波器滤波后信号的时域波形与频谱图结果分
44、析:由运行结果可以看出,时域波形和频谱基本不变,回放的声音跟原语音信号很接近。武汉理工大学信息群处理课程设计课程设计说明书204 图形用户界面的设计4.1 GUI 布局 在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会就会显示GUI的设计模板。 。新建一个空白模板jiemian.fig,就会显示GUI的设计窗口,点击 和 分别放置按钮和坐标轴,放置结果如图4-1。图 4-1 GUI 布局4.2 设置属性按钮(Push Buttons):执行某种预定的功能或操作;其属性如图 4-2。Axes属性为默认属性,如图 4-3。未指定时将使用系统缺省值,改变了的属
45、性有:(1)BackgroundColor 取值为颜色的预定义字符或 RGB 数值,缺省值为浅灰色;本设计为蓝色。(2)String 取值为字符串矩阵或块数组,定义控件对象标题或选项内容;(3)Tag 取值为字符串,定义了控件的标识值,在任何程序中都可以通过这个武汉理工大学信息群处理课程设计课程设计说明书20标识值控制该控件对象;(4)FontSize 取值为数值;图 4-2 按钮的属性 图 4-3 坐标轴的属性4.3 编程使用图形用户界面开发环境可方便地创建GUI应用程序,它可以根据设计的GUI布局,自动生成M文件的框架,使用这一框架编制应用程序。将前面编好的各个功能子程序分别编写到各个按钮
46、的callback函数中,逐个调试,运行,M文件见附录。4.4 运行结果图形用户界面的运行结果如图 4-4。武汉理工大学信息群处理课程设计课程设计说明书20 图 4-4 GUI 运行结果武汉理工大学信息群处理课程设计课程设计说明书205 总结通过本次课程设计,我收获了很多:一、我对 MATLAB 软件有了较深的了解,并且学会了用 MATLAB 对语音信号进行分析和处理。这次课程设计 ,刚开始我无从下手,不知所措,后来经过问同学、去图书馆资查料、上网查资料、看视频教程,逐渐了解了用MATLAB 对语音信号进行分析和处理要用到的各种函数,及滤波器的设计及其频率响应的绘制,并在调试过程不断出错的过程
47、中,不断加强了对 MATLB 编程的掌握程度,能够用 MATLB 对语音信号进行分析和处理,收获颇深。二、本次课程设计锻炼了我独立解决问题的能力。刚看到题目时我一点思路也没有,到后来,自己不断探索 MATLB,不断摸索各个函数的使用方法和格式,最后完成了本次课程设计,整个过程让我学会了发现问题,并独立解决问题的方法,也能更好的利用网络学习知识。三、本次课程设计让我对语音信号的采样、延时、混响、滤波器的设计及语音信号的分析有了更深的了解,并且巩固了数字信号处理所学的内容。了解了通过 MATLAB 设计单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器的过程和方法,使所学的知识得到了
48、综合运用与巩固。本次课程设计最重要的是让我学会了独立解决问题的方法,经过不断的学习、出错、调试、改正,锻炼了我的耐心和毅力,让我体会到了不断探索的乐趣,并体会到了付出后得到成功的激动。此次设计也让我发现了我的不足:对MATLB 的掌握程度不够,在原来学习后,我对 MATLAB 的许多函数、属性的用法还是不很了解,以后应当多多学习软件,辅助各门专业课的学习,并激发对本专业的学习兴趣。武汉理工大学信息群处理课程设计课程设计说明书20 参考文献1 邹彦,DSP 原理及应用,第 1 版,电子工业出版社,2006;2 彭启琮等,DSP 技术的发展与应用,第二版,高等教育出版社,20073 刘泉,阙大顺数
49、字信号处理原理与实现电子工业出版社20054 张雄伟,DSP 集成开发与应用实例,第 1 版,电子工业出版社,2002;5 张洪涛等,数字信号处理,第一版,华中科技大学出版社,20076 杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,20077 胡航语音信号处理哈尔滨工业大学出版社20028 张威MATLAB基础与编程入门西安电子科技大学出版社2006武汉理工大学信息群处理课程设计课程设计说明书20附录图形用户界面的M文件:function varargout = jiemian(varargin)% JIEMIAN M-file for jiemian.fig% JIEMIAN
50、, by itself, creates a new JIEMIAN or raises the existing% singleton*.% H = JIEMIAN returns the handle to a new JIEMIAN or the handle to% the existing singleton*.% JIEMIAN(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in JIEMIAN.M with the given input arguments.% JIE
51、MIAN(Property,Value,.) creates a new JIEMIAN or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before jiemian_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to jiem
52、ian_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help jiemian% Last Modified by GUIDE v2.5 02-Jul-2012 01:22:36% Begin initialization code
53、 - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, jiemian_OpeningFcn, . gui_OutputFcn, jiemian_OutputFcn, . gui_LayoutFcn, , .武汉理工大学信息群处理课程设计课程设计说明书20 gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = st
54、r2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before jiemian is made visible.function jiemian_OpeningFcn(hObject, eventdata, handles, varargin)% This function h
55、as no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to jiemian (see VARARGIN)% Choose default command line output for jiemianhandles.
56、output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes jiemian wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = jiemian_OutputFcn(hObject, eventdata, handles) % varargout c
57、ell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)武汉理工大学信息群处理课程设计课程设计说明书20% Get default command line output from handles structurevarargout1 = han
58、dles.output;% - Executes on button press in caiyang.function caiyang_Callback(hObject, eventdata, handles)% hObject handle to caiyang (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x1,fs,bits=wavread(D:sound1.wa
59、v); %读取信号 x1=x1(:,1); %只取单声道 sound(x1,fs); %对声音的回放 axes(handles.axes1); plot(x1); %做原始语音信号的时域图形 title(原始语音信号的时域图,fontname,宋体); y1=fft(x1); %做length(x1)点的FFT y1=fftshift(y1); %平移,是频率中心为0 derta_fs = fs/length(x1); %设置频谱的间隔,分辨率 axes(handles.axes2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(y1);%画出原始语音信号的频谱
60、图 title(原始语音信号的频谱,fontname,宋体); % - Executes on button press in yanshi.function yanshi_Callback(hObject, eventdata, handles)% hObject handle to yanshi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x1,fs,bits=wavre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理职业素养提升与就业准备
- 护理技术操作培训:基础护理技能
- 护理管理中的财务管理
- 护理人力资源管理与员工关系
- 部编版二年级语文下册《祖先的摇篮 第2课时》
- 护理教学比赛资源整合
- 护理礼仪的团队协作
- 客户服务经理职场新人面试宝典
- 快消品行业区域经理工作全解析
- 快消品市场策划面试要点及技巧
- OpenClaw基础概念与架构
- 2026广西桂林漓佳金属有限责任公司招聘10人考试参考题库及答案解析
- 6 会摇尾巴的狼 课件(共24张)
- 2025至2030中国医养结合模式养老服务供需匹配度调研报告
- 2026广东江门职业技术学院管理教辅人员招聘4人备考题库及一套答案详解
- 深度解析(2026)《NBT 10558-2021压力容器涂敷与运输包装》
- TAS倍智行测题库
- 2025年山东省春季高考数学试卷试题真题(含答案解析)
- 黑龙江省哈尔滨师大附中2025-2026学年高一上学期期末语文试卷(含答案)
- 新课改下高中篮球社团开展现状调查与研究
- 2026年湖南大众传媒职业技术学院单招职业技能考试备考试题带答案解析
评论
0/150
提交评论