基于MATLAB的声音的延迟与混响
更新时间:2024-03-25 16:26:01 阅读量: 综合文库 文档下载
- MATLAB声音推荐度:
- 相关推荐
课程设计任务书
学生姓名: 陈哲 专业班级: 通信gj1001 指导教师: 付琴 工作单位: 信息工程学院 题 目:基于MATLAB的声音延迟与混响 初始条件:
① MATLAB软件
② 数字信号处理与声音处理基础知识
要求完成的主要任务:
① 较全面了解常用的数据分析与处理原理及方法; ② 能够运用相关软件进行模拟分析; ③ 掌握基本的文献检索和文献阅读的方法; ④ 提高正确地撰写论文的基本能力。
参考书目:
1.刘泉,数字信号处理原理与实现(第二版),电子工业出版社,2009; 2.张雄伟,DSP集成开发与应用实例,第1版,电子工业出版社,2002; 3. 张洪涛等,数字信号处理,第一版,华中科技大学出版社,2007 4. 彭启琮等,DSP技术的发展与应用,第二版,高等教育出版社,2007 5. 杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2007
时间安排
17周 仿真设计 18周 鉴主15楼答辩
指导教师签名:__________________
年 月 日
系主任(或责任教师)签名:____________
年 月 日
1
目录
摘要 .......................................................................................................................................................... 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
2
摘要
数字信号处理技术自诞生以来,有了快速的发展,主要是研究用数字或符号序列表示和处理信号,被广泛应用于各个领域。本次设计是用MATLAB语言对语音信号进行采样分析,并设计数字滤波器对信号进行滤波,比较滤波前后信号特性的变化。用MATLAB开发环境设计用户图形界面使布局编程简化。
3
ABSTRACT
Digital signal processing technology since its birth had rapid development. the technology is to study the sequence of numbers or symbols used to represent and signal processing, it is widely used in various field. the design is to use the
MATLAB language sampling and analysis of voice signal, and digital design for signal filtering, comparing before and after filtering the signal properties change .GUI interface provided with MATLAB development environment for designing the layout of graphical user interface makes programming simpler.
4
1 绪论
数字信号处理是随着计算机技术的发展而迅速发展起来的一门新兴而古老的学科,它在新的领域如生物医学工程、声学、雷达、地震不、语音通信、数据通信、核科学等学科发挥着重要的作用,而它所采用的各种方法及众多应用已有悠久的历史;同时也是一门具有很强的理论性与实践性,且理论和技术发展都十分迅速的前沿性学科。随着数字化时代的来临,科学技术的进步而生产发展需求的与日俱增,促进了数字信号处理学科的发展,产生了各种巧妙的信号处理算法;特别是计算机技术的飞速发展,为数字信号处理增添了巨大的生命力。 数字信号处理主要是研究用数字或符号序列表示和处理信号。处理的目的可以是削弱信号中的多余内容,滤除混杂的噪声和干扰,或者是将信号变换为容易分析和识别的形式,便于估计和选择它的特征参数。例如通过分析和运算,可以估计脑电图或心电图中的某种特征参数,帮助医生查找病因和分析病情,确定合理的治疗方案;又如,信号在传输时,要受到各种干扰,包括失真、衰落和混入的背景噪声,信号处理要排除这些干扰。
声音信号是一维连续信号,而计算机只能处理离散信号。为了从离散信号还原连续信号,根据采样定理,可以确定采样频率的最小值。wav文件是一种数字声音文件格式,本课程设计基于Matlab分析了wav声音文件频谱与声音的关系。通过采集个人的一段声音进行频谱分析等处理,然后设计数字滤波器处理这个原始声音的wav文件,并比较滤波以后输出声音信号与原声音信号的异同。
1.1设计任务
(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。
(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。 (3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。 (4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。
5
(5)用自己设计的滤波器对采集的语音信号进行滤波。
(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。 (7)回放语音信号。
1.2 设计要求
(1)熟悉离散信号和系统的时域特性。 (2)熟悉语音信号的特点。
(3)掌握数字信号处理的基本概念,基本理论和基本方法。 (4)掌握序列快速傅里叶变换方法。
(5)学会MATLAB的使用,掌握MATLAB的程序设计方法。
(6)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法
6
2 设计的总体方案与原理
2.1 设计的总体方案图
语音信号的延时和混响设计方案框图1
7
2.2 程序流程图
语音信号的延时和混响设计程序流程图2
8
2.3 设计的详细原理
2.3.1 信号采样
(1)采样频率
采样频率是指计算机每秒钟采集多少个声音样本,采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。 (2)采样位数
即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。声卡的主要的作用之一是对声音信息进行录制与回放,在这个过程中采样的位数和采样的频率决定了声音采集的质量。
2.3.2 混响与延时
(1)混响效果主要是用于增加音源的融合感。自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。常见参数有以下几种:
混响时间:能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。
高频滚降:此项参数用于模拟自然混响当中,空气对高频的吸收效应,以产生较为自然的混响效果。一般高频混降的可调范围为0.1~1.0。此值较高时,混响效果也较接近自然混响;此值较低时,混响效果则较清澈。
扩散度:此项参数可调整混响声阵密度的增长速度,其可调范围为0~10,其值较高时,混响效果比较丰厚、温暖;其值较低时,混响效果则较空旷、冷僻。
预延时:自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。
声阵密度:此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,
9
但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。
频率调制:这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进行调制。此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。
调治深度:指上述调频电路的调治深度。
(2)延时就是将音源延迟一段时间后,再欲播放的效果处理。依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。
当延迟时间在3~35ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生\梳状滤波\效应,这就是镶边效果。如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。回音处理一般都是用于产生简单的混响效果。
延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项: *延时时间(Dly),即主延时电路的延时时间调整。 *反馈增益(FB Gain),即延时反馈的增益控制。
*反馈高频比(Hi Ratio),即反馈回路上的高频衰减控制。 *调制频率(Freq),指主延时的调频周期。 *调制深度(Depth),指上述调频电路的调制深度。 *高频增益(HF),指高频均衡控制。
*预延时(Ini Dly),指主延时电路预延时时间调整。
*均衡频率(EQ F),这里的频率均衡用于音色调整,此为均衡的中点频率选择。
由于延时产生的效果都比较复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。
2.3.3 离散傅立叶变换
在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。下面介绍这些函数。
函数FFT用于序列快速傅立叶变换。 函数的一种调用格式为 y=fft(x)
10
其中,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抽样周期后出现的一种单
11
个回音,可以用FIR滤波器产生,微分方程为:y[n]=x[n]+αx[n-R] |α|<1 传输函数为:H(z)=1+αz-R
传递函数的幅频响应形状象梳子,这种滤波器又叫梳状滤波器。
(2)多重回声滤波器
为了产生以间隔R个抽样周期分开的具有指数衰减振幅的多重回声,可用一个
以
下
?R形式
2?2R传输函数的FIR滤波器:
H(z)?1??z??z????N?1?(N?1)Rz1??Nz?NR ?1??z?R无限个振幅以指数衰减间隔为R个抽样周期的多重回声可用以下形式传输
|?|?1
1??z?RIIR多重回声滤波器的基本频率FR=Fs/R,通常锁定在伴音设备的基频上,比如基
函数的IIR滤波器生成:H(z)?1鼓拍子。
(3)无限个回声滤波器的系统函数:
z?RH(z)? , a<1
1?az?R(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滤波器的频率响应为水平直线,所以被称为全通滤波器。
12
3 程序设计的步骤和过程
3.1 原始语音信号时域波形和频谱
[y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\音频信号.wav');%用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。[50000 150000]表示读取从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',[50000 150000]);%只取原信号的一部分,即时间区间[50000 150000] 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);%回放采样信号
13
3.3 对采样后的信号延时
[y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); 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',[50000 150000]); 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);%回放混响信号
14
音
频
音
频
信
信
3.5 单回声滤波器程序设计
[y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\音
号.wav',[50000 150000]); 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);
[h,w]=freqz(Bz1,Az1);%求设计的滤波器频谱 subplot(3,2,1);plot(abs(h)); title('单回声滤波器幅频响应'); subplot(3,2,2); plot(angle(h)); title('单回声滤波器相频响应');
subplot(3,2,3:4);plot(y2);title('单回声滤波器时域图 '); subplot(3,2,5);plot(abs(Y2));title('单回声滤波器幅频 '); subplot(3,2,6);plot(angle(Y2));title('单回声滤波器相频 '); sound(y2,fs,bits);
3.6 多重回声滤波器程序设计
[y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\音号.wav',[50000 150000]); y=y(:,1);
15
频
信
频信
z=[zeros(3000,1);y]; y=[y;zeros(3000,1)]; a=0.5; N=5;
R=9000;%滤波器阶数设置,其值越高,回声越明显
Bz1=[1,zeros(1,N*R-1),-a^N];%多重回声滤波器系统函数分子 Az1=[1,zeros(1,R-1),-a];%多重回声滤波器系统函数分母 y2=filter(Bz1,Az1,y); Y2=fft(y2,6001); [h,w]=freqz(Bz1,Az1); subplot(3,2,1);plot(abs(h)); title('多重回声滤波器幅频响应'); subplot(3,2,2); plot(angle(h)); title('多重回声滤波器相频响应');
subplot(3,2,3:4);plot(y2);title('多重回声滤波器时域图 '); subplot(3,2,5);plot(abs(Y2));title('多重回声滤波器幅频 '); subplot(3,2,6);plot(angle(Y2));title('多重回声滤波器相频 '); sound(y2,fs,bits);
3.7 无限个回声滤波器程序设计
[y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\音号.wav',[50000 150000]); y=y(:,1);
z=[zeros(3000,1);y]; y=[y;zeros(3000,1)]; a=0.5;
R=5000;%滤波器阶数设置,其值越高,回声越明显
16
频信
Bz=[0,zeros(1,R-1),1];%无限个回声滤波器系统函数分子 Az=[1,zeros(1,R-1),-a];%无限个回声滤波器系统函数分母 y2=filter(Bz,Az,y); Y2=fft(y2,6001); [h,w]=freqz(Bz,Az);
subplot(3,2,1);plot(abs(h)); title('无限个回声滤波器幅频响应'); subplot(3,2,2); plot(angle(h)); title('无限个回声滤波器相频响应');
subplot(3,2,3:4);plot(y2);title('无限个回声滤波器时域图 '); subplot(3,2,5);plot(abs(Y2));title('无限个回声滤波器信号幅频 '); subplot(3,2,6);plot(angle(Y2));title('无限个回声滤波器信号相频 '); sound(y2,fs,bits);
3.8 全通结构滤波器程序设计
[y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\音频号.wav',[50000 150000]); 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));
17
信
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);
4 结果分析与体会
运行结果:
18
对信号采样后,信号时域波形出现了离散化的分布,不像原始图像那样密集分布,频谱图也是同样的变换,幅度和频率都是根据采样区间变化的
19
从时域图出延时是让原来的波形向右移动3000,频域的幅度发生了变化。
20
混响:在时域图看前面几乎没变化,后面的幅度有一定变化。 在频谱图幅度变化很大,中间的上下相互抵消,两边的跳动很大。
21
时域上形状大致相同,幅度有微小变化。
频谱上也是滤波前后两边跳动变换较大,幅度变化较大。
22
时域上滤波前的幅度比滤波后的数值大,形状上滤波后是连续的,滤波前是间断的
频谱上变化两边上下跳的动变化,中间变化抵消
23
时域上波形变得稀疏了,幅度相对变化较大。 频谱上变化两边上下跳的动变化,中间变化抵消
24
全通结构时域大致一样,滤波前比滤波后幅度有变化6000以后上下跳动抵消 频域上变化的不为明显,幅度发生了变化。
5 设计心得体会
课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程,通过课程设计我们能够比较系统的了解理论知识,把理论和实践相结合,并且用到生活当中。在做设计的过程中总会出现各种问题,在这种情况下我们都会努力寻求最佳路径解决问题,无形间提高了我们的动手,动脑能力,并且同学之间还能相互探讨问题,研究解决方案,增进大家的团队意识。
此次课程设计综合了数字信号处理的理论知识和实践经验,经过这段时间查阅的相关资料并结合以前学过的数字信号处理课程和实验,我如期完成了设计任务要求,并加深了对知识的理解,提高了自己的实践动手能力。
25
拿到课程设计任务的时候,不知道从哪儿入手,选定题目后,上网查阅了相关资源,去图书馆搜集资料,确定了设计的基本方案,步骤,开始用软件进行实现,实现过程中出现了很多问题,上网查阅资料,在专业的论坛里面去看,下载MATLAB的视频,慢慢的开始有了进一步的理解。在以前的实验中没有接触过GUI界面的问题,根本不知道从哪入手,在查阅了资料,看视频,有了一定的了解,但是由于初次接触,出现问题的时候还是很难解决,经过和同学讨论,终于解决了这些问题。
经过此次课程设计,使我对数字信号处理的理论知识有了更深了的了解,更近一步的理解了用MATLAB语言对信号进行采样,滤波等处理。初次接触了MATLAB提供的用户界面的设计问题,对其中的一些基本问题有了了解,为以后的实践打下了一定的基础,相信在以后的实践过程中会有更好的提升。
另外,此次课程设计让我更加明白平时所学的知识如果不加以实践的话等于纸上谈兵。课程设计主要是我们理论知识的延伸,它的目的主要是要在设计中发现问题,并且自己要能找到解决问题的方案,形成一种独立的意识。我们还能从设计中检验我们所学的理论知识到底有多少,巩固我们已经学会的,不断学习我们所遗漏的新知识,把这门课学的扎实。
6 主要参考文献
1.刘泉,数字信号处理原理与实现(第二版),电子工业出版社,2009; 2.张雄伟,DSP集成开发与应用实例,第1版,电子工业出版社,2002; 3. 张洪涛等,数字信号处理,第一版,华中科技大学出版社,2007 4. 彭启琮等,DSP技术的发展与应用,第二版,高等教育出版社,2007 5. 杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2007
26
附录:guide 界面下的仿真总程序
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\音频信号.wav');%读取原始音频信号 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('原始信号相频');
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\
音
频
信
号.wav',[50000 150000]);%只取原信号的一部分,即时间区间[50000 150000] 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('采样信号相频');
27
sound(y,fs,bits);%回放采样信号
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); 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);%回放延迟信号
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); y=y(:,1);
z=[zeros(3000,1);y]; y=[y;zeros(3000,1)];%补3000
y1=y+z;%将原始信号与延迟信号相加,产生混响信号 Y1=fft(y1,6001);
音
频
信
音
频
信
28
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);%回放混响信号
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); 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);
[h,w]=freqz(Bz1,Az1);%求设计的滤波器频谱 subplot(3,2,1);plot(abs(h)); title('单回声滤波器幅频响应'); subplot(3,2,2); plot(angle(h)); title('单回声滤波器相频响应');
subplot(3,2,3:4);plot(y2);title('单回声滤波器时域图 '); subplot(3,2,5);plot(abs(Y2));title('单回声滤波器幅频 ');
音
频
信
29
subplot(3,2,6);plot(angle(Y2));title('单回声滤波器相频 '); sound(y2,fs,bits);
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); y=y(:,1);
z=[zeros(3000,1);y]; y=[y;zeros(3000,1)]; a=0.5; N=5;
R=9000;%滤波器阶数设置,其值越高,回声越明显
Bz1=[1,zeros(1,N*R-1),-a^N];%多重回声滤波器系统函数分子 Az1=[1,zeros(1,R-1),-a];%多重回声滤波器系统函数分母 y2=filter(Bz1,Az1,y); Y2=fft(y2,6001); [h,w]=freqz(Bz1,Az1); subplot(3,2,1);plot(abs(h)); title('多重回声滤波器幅频响应'); subplot(3,2,2); plot(angle(h)); title('多重回声滤波器相频响应');
subplot(3,2,3:4);plot(y2);title('多重回声滤波器时域图 '); subplot(3,2,5);plot(abs(Y2));title('多重回声滤波器幅频 '); subplot(3,2,6);plot(angle(Y2));title('多重回声滤波器相频 '); sound(y2,fs,bits);
音
频
信
30
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles) % hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\音
频
号.wav',[50000 150000]); y=y(:,1);
z=[zeros(3000,1);y]; y=[y;zeros(3000,1)]; a=0.5;
R=5000;%滤波器阶数设置,其值越高,回声越明显 Bz=[0,zeros(1,R-1),1];%无限个回声滤波器系统函数分子 Az=[1,zeros(1,R-1),-a];%无限个回声滤波器系统函数分母 y2=filter(Bz,Az,y); Y2=fft(y2,6001); [h,w]=freqz(Bz,Az);
subplot(3,2,1);plot(abs(h)); title('无限个回声滤波器幅频响应'); subplot(3,2,2); plot(angle(h)); title('无限个回声滤波器相频响应');
subplot(3,2,3:4);plot(y2);title('无限个回声滤波器时域图 '); subplot(3,2,5);plot(abs(Y2));title('无限个回声滤波器信号幅频 '); subplot(3,2,6);plot(angle(Y2));title('无限个回声滤波器信号相频 '); sound(y2,fs,bits);
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
31
信
% hObject handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); 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);
音
频
信
32
本科生课程设计成绩评定表
姓 名 专业班级 陈哲 通信GJ1001 性 别 男 题 目:基于MATLAB的声音延迟与混响 答辩或质疑记录: 1. 什么是延时? 答:延时就是将音源延迟一段时间后,再欲播放的效果处理。依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。 2. 如何产生延时? 答:当延迟时间在3~35ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生\梳状滤波\效应,这就是镶边效果。如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。回音处理一般都是用于产生简单的混响效果。 成绩评定依据: 最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:__________________
年 月 日
33
正在阅读:
基于MATLAB的声音的延迟与混响03-25
2016年开学第一课观后感500字12-11
2016顺义区一模化学试题02-29
高一物理公式总结归纳_高一物理公式汇总03-22
可口可乐CIS设计分析06-06
2017年南京大学地理与海洋科学学院919经济学原理之宏观经济学教04-26
最牛逼的个性签名02-08
跨局快速车底归属及机车交路09-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 混响
- 延迟
- 基于
- 声音
- MATLAB
- 《建筑构造》第03章
- 美丽小学美术社团活动记录
- 坦布舒—全球首个坦布苏病毒灭活疫苗 - 图文
- 课题《初中数学小组合作教学模式的研究》研究工作报告
- 2019年度小学数学年会心得体会
- 山东省邹城市郭里中学2018-2019学年八年级上册第一次月考英语试
- 小学生红色革命小故事(修改)
- 组织架构如何随企业实际调整案例分析
- PADS输出元器件bom清单
- 高中地理总复习 课时作业35 资源的跨区域调配 以我国西气东输为
- 偏光显微镜法观察聚乳酸结晶形态
- 2017年中国粘胶纤维现状研究及发展趋势预测(目录) - 图文
- 法制安全教育报告会发言稿
- 实施西部大开发战略加快贵州经济社会发展
- 培训中心2013年度工作总结
- 雾霾重重
- 国培汇报材料1
- 养成良好的学习习惯 主题班会教案
- 中铝洛铜金属生产实习总结报告日记8 - 图文
- 在新课改背景下培养学生自主学习的能力