强烈推荐基于MATLAB的声音的延迟与混响毕业论文任务书.docx
《强烈推荐基于MATLAB的声音的延迟与混响毕业论文任务书.docx》由会员分享,可在线阅读,更多相关《强烈推荐基于MATLAB的声音的延迟与混响毕业论文任务书.docx(16页珍藏版)》请在冰豆网上搜索。
![强烈推荐基于MATLAB的声音的延迟与混响毕业论文任务书.docx](https://file1.bdocx.com/fileroot1/2023-6/9/3896149a-bb0c-445d-8558-6ec0e7341889/3896149a-bb0c-445d-8558-6ec0e73418891.gif)
强烈推荐基于MATLAB的声音的延迟与混响毕业论文任务书
课程设计任务书
题目:
基于MATLAB的声音延迟与混响
初始条件:
1MATLAB软件
2数字信号处理与声音处理基础知识
要求完成的主要任务:
1较全面了解常用的数据分析与处理原理及方法;
2能够运用相关软件进行模拟分析;
3掌握基本的文献检索和文献阅读的方法;
4提高正确地撰写论文的基本能力。
参考书目:
1.刘泉,数字信号处理原理与实现(第二版),电子工业出版社,2009;
2.张雄伟,DSP集成开发与应用实例,第1版,电子工业出版社,2002;
3.张洪涛等,数字信号处理,第一版,华中科技大学出版社,2007
4.彭启琮等,DSP技术的发展与应用,第二版,高等教育出版社,2007
5.杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2007
时间安排
17周仿真设计
18周鉴主15楼答辩
指导教师签名:
__________________
年月日
系主任(或责任教师)签名:
____________
年月日
目录
摘要3
1绪论5
1.1设计任务5
1.2设计要求6
2设计的总体方案与原理7
2.1设计的总体方案图7
2.2程序流程图8
2.3设计的详细原理9
2.3.1信号采样9
2.3.2混响与延时9
2.3.3离散傅立叶变换10
2.3.4滤波器设计11
3程序设计的步骤和过程13
3.1原始语音信号时域波形和频谱13
3.2采样后语音信号的时域波形和频谱13
3.3对采样后的信号延时14
3.4对采样后的信号混响14
3.5单回声滤波器程序设计15
3.6多重回声滤波器程序设计15
3.7无限个回声滤波器程序设计16
3.8全通结构滤波器程序设计17
4结果分析与体会18
5设计心得体会25
6主要参考文献26
附录:
仿真总程序27
摘要
数字信号处理技术自诞生以来,有了快速的发展,主要是研究用数字或符号序列表示和处理信号,被广泛应用于各个领域。
本次设计是用MATLAB语言对语音信号进行采样分析,并设计数字滤波器对信号进行滤波,比较滤波前后信号特性的变化。
用MATLAB开发环境设计用户图形界面使布局编程简化。
ABSTRACT
Digitalsignalprocessingtechnologysinceitsbirthvariousfield.thedesignistousethe
MATLABlanguagesamplingandanalysisofvoicesignal,anddigitaldesignforsignalfiltering,comparingbeforeandafterfilteringthesignalpropertieschange.GUIinterfaceprovidedwithMATLABdevelopmentenvironmentfordesigningthelayoutofgraphicaluserinterfacemakesprogrammingsimpler.
1绪论
数字信号处理是随着计算机技术的发展而迅速发展起来的一门新兴而古老的学科,它在新的领域如生物医学工程、声学、雷达、地震不、语音通信、数据通信、核科学等学科发挥着重要的作用,而它所采用的各种方法及众多应用已有悠久的历史;同时也是一门具有很强的理论性与实践性,且理论和技术发展都十分迅速的前沿性学科。
随着数字化时代的来临,科学技术的进步而生产发展需求的与日俱增,促进了数字信号处理学科的发展,产生了各种巧妙的信号处理算法;特别是计算机技术的飞速发展,为数字信号处理增添了巨大的生命力。
数字信号处理主要是研究用数字或符号序列表示和处理信号。
处理的目的可以是削弱信号中的多余内容,滤除混杂的噪声和干扰,或者是将信号变换为容易分析和识别的形式,便于估计和选择它的特征参数。
例如通过分析和运算,可以估计脑电图或心电图中的某种特征参数,帮助医生查找病因和分析病情,确定合理的治疗方案;又如,信号在传输时,要受到各种干扰,包括失真、衰落和混入的背景噪声,信号处理要排除这些干扰。
声音信号是一维连续信号,而计算机只能处理离散信号。
为了从离散信号还原连续信号,根据采样定理,可以确定采样频率的最小值。
wav文件是一种数字声音文件格式,本课程设计基于Matlab分析了wav声音文件频谱与声音的关系。
通过采集个人的一段声音进行频谱分析等处理,然后设计数字滤波器处理这个原始声音的wav文件,并比较滤波以后输出声音信号与原声音信号的异同。
1.1设计任务
(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。
(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。
(3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。
(4)设计几种特殊类型的滤波器:
单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。
(5)用自己设计的滤波器对采集的语音信号进行滤波。
(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。
(7)回放语音信号。
1.2设计要求
(1)熟悉离散信号和系统的时域特性。
(2)熟悉语音信号的特点。
(3)掌握数字信号处理的基本概念,基本理论和基本方法。
(4)掌握序列快速傅里叶变换方法。
(5)学会MATLAB的使用,掌握MATLAB的程序设计方法。
(6)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法
2设计的总体方案与原理
2.1设计的总体方案图
语音信号的延时和混响设计方案框图1
2.2程序流程图
语音信号的延时和混响设计程序流程图2
2.3设计的详细原理
2.3.1信号采样
(1)采样频率
采样频率是指计算机每秒钟采集多少个声音样本,采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。
只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。
(2)采样位数
即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。
声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。
声卡的主要的作用之一是对声音信息进行录制与回放,在这个过程中采样的位数和采样的频率决定了声音采集的质量。
2.3.2混响与延时
(1)混响效果主要是用于增加音源的融合感。
自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。
常见参数有以下几种:
混响时间:
能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。
高频滚降:
此项参数用于模拟自然混响当中,空气对高频的吸收效应,以产生较为自然的混响效果。
一般高频混降的可调范围为0.1~1.0。
此值较高时,混响效果也较接近自然混响;此值较低时,混响效果则较清澈。
扩散度:
此项参数可调整混响声阵密度的增长速度,其可调范围为0~10,其值较高时,混响效果比较丰厚、温暖;其值较低时,混响效果则较空旷、冷僻。
预延时:
自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。
声阵密度:
此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。
频率调制:
这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进行调制。
此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。
调治深度:
指上述调频电路的调治深度。
(2)延时就是将音源延迟一段时间后,再欲播放的效果处理。
依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。
当延迟时间在3~35ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生"梳状滤波"效应,这就是镶边效果。
如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。
回音处理一般都是用于产生简单的混响效果。
延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项:
*延时时间(Dly),即主延时电路的延时时间调整。
*反馈增益(FBGain),即延时反馈的增益控制。
*反馈高频比(HiRatio),即反馈回路上的高频衰减控制。
*调制频率(Freq),指主延时的调频周期。
*调制深度(Depth),指上述调频电路的调制深度。
*高频增益(HF),指高频均衡控制。
*预延时(IniDly),指主延时电路预延时时间调整。
*均衡频率(EQF),这里的频率均衡用于音色调整,此为均衡的中点频率选择。
由于延时产生的效果都比较复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。
2.3.3离散傅立叶变换
在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。
下面介绍这些函数。
函数FFT用于序列快速傅立叶变换。
函数的一种调用格式为 y=fft(x)
其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。
且和x相同长度。
若x为一矩阵,则y是对矩阵的每一列向量进行FFT。
如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。
函数FFT的另一种调用格式为 y=fft(x,N)
式中,x,y意义同前,N为正整数。
函数执行N点的FFT。
若x为向量且长度小于N,则函数将x补零至长度N。
若向量x的长度大于N,则函数截短x使之长度为N。
若x为矩阵,按相同方法对x进行处理。
经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。
MATLAB提供求复数的幅值和相位函数:
abs,angle,这些函数一般和FFT同时使用。
函数abs(x)用于计算复向量x的幅值,函数angle(x)用于计算复向量的相角,介于和之间,以弧度表示。
函数unwrap(p)用于展开弧度相位角p,当相位角绝对变化超过时,函数把它扩展至。
用MATLAB工具箱函数fft进行频谱分析时需注意:
(1) 函数fft返回值y的数据结构对称性。
(2)频率计算。
(3) 作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。
2.3.4滤波器设计
本次设计用IIR滤波器对信号进行滤波,函数名为filter
函数filter的调用格式为 y=filter(b,a,x)
该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。
其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器。
该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。
(1)单回声滤波器
回音可以由简单的延时单元产生。
直达声和在R抽样周期后出现的一种单个回音,可以用FIR滤波器产生,微分方程为:
y[n]=x[n]+αx[n-R]|α|<1
传输函数为:
H(z)=1+αz-R
传递函数的幅频响应形状象梳子,这种滤波器又叫梳状滤波器。
(2)多重回声滤波器
为了产生以间隔R个抽样周期分开的具有指数衰减振幅的多重回声,可用一个以下形式传输函数的FIR滤波器:
无限个振幅以指数衰减间隔为R个抽样周期的多重回声可用以下形式传输函数的IIR滤波器生成:
IIR多重回声滤波器的基本频率FR=FsR,通常锁定在伴音设备的基频上,比如基鼓拍子。
(3)无限个回声滤波器的系统函数:
<1
(4)全通结构的混响器的系统函数:
全通滤波器的传递函数公式为
H(Z)=y(Z)X(Z)=(-K+Z^(-m))(1-K*Z^(-m))
其中m为回声延时取样,k为反馈系数。
用直接1型表示这个传递函数则为:
y(n)=k*x(n)+x(n-m)+k*y(n-m)
可见其实际上是一个简单的IIR滤波器,时间n的输出有时间n的输入和m点之前的输入与输出计算而得。
由于这个IIR滤波器的频率响应为水平直线,所以被称为全通滤波器。
3程序设计的步骤和过程
3.1原始语音信号时域波形和频谱
[y,fs,bits]=wavread('C:
\Users\Administrator\Desktop\音频信号.wav');%用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。
[50000150000]表示读取从50000点到150000点的值(若只有一个N的点则表示读取前N点的采样值)。
y=y(:
1);%只取单信道
sound(y,fs,bits);%播放原始信号
Y=fft(y);%对原始信号取傅里叶变换
subplot(2,2,1:
2);plot(y);title('原始信号时域波形');
subplot(2,2,3);plot(abs(Y));title('原始信号幅频');
subplot(2,2,4);plot(angle(Y));title('原始信号相频');
3.2采样后语音信号的时域波形和频谱
[y,fs,bits]=wavread('C:
\Users\Administrator\Desktop\音频信号.wav',[50000150000]);%只取原信号的一部分,即时间区间[50000150000]
y=y(:
1);
Y=fft(y,6001);%抽取6001点
subplot(2,2,1:
2);plot(y);title('采样信号时域波形');
subplot(2,2,3);plot(abs(Y));title('采样信号幅频');
subplot(2,2,4);plot(angle(Y));title('采样信号相频');
sound(y,fs,bits);%回放采样信号
3.3对采样后的信号延时
[y,fs,bits]=wavread('C:
\Users\Administrator\Desktop\音频信号.wav',[50000150000]);
y=y(:
1);
z=[zeros(3000,1);y];%延迟3000
Z=fft(z,6001);
subplot(2,2,1:
2);plot(z);title('延时后时域波形');
subplot(2,2,3);plot(abs(Z));title('延时后幅频');
subplot(2,2,4);plot(angle(Z));title('延时后相频');
sound(y,fs,bits);%回放延迟信号
3.4对采样后的信号混响
[y,fs,bits]=wavread('C:
\Users\Administrator\Desktop\音频信号.wav',[50000150000]);
y=y(:
1);
z=[zeros(3000,1);y];
y=[y;zeros(3000,1)];%补3000
y1=y+z;%将原始信号与延迟信号相加,产生混响信号
Y1=fft(y1,6001);
subplot(2,2,1:
2);plot(y1);title('混响的时域波形');
subplot(2,2,3);plot(abs(Y1));title('混响的幅频');
subplot(2,2,4);plot(angle(Y1));title('混响的相频');
sound(y,fs,bits);%回放混响信号
3.5单回声滤波器程序设计
[y,fs,bits]=wavread('C:
\Users\Administrator\Desktop\音频信号.wav',[50000150000]);
y=y(:
1);
z=[zeros(3000,1);y];
y=[y;zeros(3000,1)];
a=0.5;
R=5000;%滤波器阶数设置,其值越高,回声越明显
Bz1=[1,zeros(1,R-1),a];%单回声滤波器系统函数分子
Az1=
(1);%单回声滤波器系统函数分母
y2=filter(Bz1,Az1,y);%单回声滤波器系统函数
Y2=fft(y2,6001);
[buttonpressinpushbutton1.
functionpushbutton1_Callback(afutureversionofMATLAB
%buttonpressinpushbutton2.
functionpushbutton2_Callback(afutureversionofMATLAB
%buttonpressinpushbutton3.
functionpushbutton3_Callback(afutureversionofMATLAB
%buttonpressinpushbutton4.
functionpushbutton4_Callback(afutureversionofMATLAB
%buttonpressinpushbutton5.
functionpushbutton5_Callback(afutureversionofMATLAB
%buttonpressinpushbutton6.
functionpushbutton6_Callback(afutureversionofMATLAB
%buttonpressinpushbutton7.
functionpushbutton7_Callback(afutureversionofMATLAB
%buttonpressinpushbutton8.
functionpushbutton8_Callback(afutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
[y,fs,bits]=wavread('C:
\Users\Administrator\Desktop\音频信号.wav',[50000150000]);
y=y(:
1);
z=[zeros(3000,1);y];
y=[y;zeros(3000,1)];
a=0.5;
R=5000;%滤波器阶数设置,其值越高,回声越明显
Bz1=[a,zeros(1,R-1),1];%无限个回声滤波器系统函数分子
Az1=[1,zeros(1,R-1),a];%无限个回声滤波器系统函数分母
[h,w]=freqz(Bz1,Az1);
yy2=filter(Bz1,Az1,y);
YY2=fft(yy2,6001);
subplot(3,2,1);plot(abs(h));
title('全通滤波器幅频响应');
subplot(3,2,2);plot(angle(h));
title('全通滤波器相频响应');
subplot(3,2,3:
4);plot(yy2);title('全通结构时域图');
subplot(3,2,5);plot(abs(YY2));title('全通结构幅频');
subplot(3,2,6);plot(angle(YY2));title('全通结构相频');
sound(yy2,fs,bits);
本科生课程设计成绩评定表
姓名
陈哲
性别
男
专业班级
通信GJ1001
题目:
基于MATLAB的声音延迟与混响
答辩或质疑记录:
1.什么是延时?
答:
延时就是将音源延迟一段时间后,再欲播放的效果处理。
依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。
2.如何产生延时?
答:
当延迟时间在3~35ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生"梳状滤波"效应,这就是镶边效果。
如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。
回音处理一般都是用于产生简单的混响效果。
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
__________________
年月日