1、2 苏州科技大学 信号处理课程设计报告 题 目: 音乐回声效果处理 专业 班级 : 电子 1412 学 号 : 14200106214 姓 名 : 孙玮 组 员 : 盛建东 陈司宇 夏诗楠 指导教师: 季剑岚 2017年 4月2 目 录 摘 要 . 0 1 设计内容 . 1 2 设计原理 . 1 3 设计过程 . 2 3.1 声音信号的采集 2 3.2 单回声滤波器的设计 1 3.3 多回声滤波器的设计 2 3.4 回声信号的文件输出 3 3.5 原始信号的分析 3 3.6 单回声信号的分析 4 3.7 多回声信号的分析 5 4 设计结论 . 7 参考文献 . 7 0 摘 要 随着 视听技术
2、的快速发展, 人们对音乐的要求越来越高,而其中音乐的现场感就显得尤为重要 。 这种现场感可以通过回声产生。因此, 本文 提出了一种关于音乐回声效果处理的设计, 详细分析了回声 信号 的 产生 原理, 并 使用 MATLAB对实际声音 进行 采集 、处理、衰减和延时等 来 实现单回声和多回声滤波器 ,完成了单回声和多回声信号的产生 。 关键词 信号处理 ; 回声 ; MATLAB 1 1 设计内容 本设计的主要任务是学会综合应用数字信号处理 中信号的采集、衰减和延时等知识 ,通过 MATLAB编程实现回声信号的产生, 并分别进行时域和频域上的分析。 本 设计的主要要求为: 首先,通过 MATLA
3、B编程实现对一段声音信号的采集,并给出其时域波形和频谱图 ;然后,通过 FIR滤波器 实现单回声滤波器,产生单回声信号,并给出单回声滤波器的脉冲响应 和 幅频特性以及单回声信号的时域波形和频谱图;最后,通过 IIR 滤波器实现多回声滤波器,产生多回声信号,并给出多回声滤波器的脉冲响应 和 幅频特性以及多回声信号的时域波形和频谱图。 2 设计原理 声音信号在传播过程中,遇到大面积物体时,一部分声能会被吸收,另一部分则会被反射回来,且可以被人耳听到。这种 由声波的反射引起的声音的重复 叫回声 。在一个相对封闭的环境下,人们所听到的声音包括原始的声音、单回声和多回声等。单回声 是由原始声音单次反射形
4、成的,而多回声信号则是由多次的单回声叠加而成。 由回声的定义可知,回声信号可以通过将原始语音信号延时和衰减来完成 。假设 x(n)表示原始声音信号, 其采样频率为 fs Hz, 延时的时间为 t s, y(n)表示单回声信号, 图 1为其结构示意图。如图所示, y(n)是由 x(n)和其延迟了 t s并 衰减倍的信号 x (n-tfs)叠加而成, 且 要求小于 , tfs必须为正整数 。 y(n)用方程表示 为 : y(n)=x(n)+x (n-tfs) 上式中, 上述差分方程的系统函数 为 : H(z)=1+z-tfs 由系统函数可以看出,其为 FIR滤波器 。此外可以得出其单位冲激响应 h
5、(n)在 2个 n值处不为零 ,其他 n值处均为零。 由单回声 信号 同理可知多回声 信号 y(n)的方程为 : y(n)=x(n)+x (n-tfs)+x (n-2tfs)+N n-Ntfs 其系统函 数为:2 H(z)=1+z-tfs+2z-2tfs+Nz-Ntfs 上式通过等比数列求和可得 : H(z)=1-N+1z-(N+1)tfs1-z-tfs 当回声次数 N +时, +1 0,此时式 (5)可以化简为: H(z)= 11-z-tfs根据上式可以看出,多重滤波器为 IIR 滤波器, 其结构示意图如图 2 所示。 z - R x ( n ) y ( n )图 1 单回声滤波器结构示意图
6、 Z - Rx ( n ) y ( n )图 2 多回声滤波器结构示意图 3 设计过程 3.1 声音信号的采集 在 MATLAB R2014a中, audioread函数可以从文件中读取数据,并返回抽样频率和抽样数据,其格式为 y,Fs = audioread(filename)。 先用 audioread从文件中采集数据, 完成 读取 后 通过 plot函数将原始信号时域波形输出,然后通过 快速卷积法计算其频谱,并输出其频谱图。具体 实现 代码如下: x,fs=audioread( filename.wav); L=length(x); figure(1); plot(x); 3 title
7、(原始信号时域图 ); xlabel(时间 );ylabel(幅值 );grid; f=-1:2/L:1-2/L; y=fft(x); figure(2); plot(f,fftshift(abs(y); title(原始语音信号频谱图 ); xlabel(频率 / );ylabel(幅度 );grid; 3.2 单回声滤波器的设计 在 MATLAB R2014a中, filter函数可以通过输入的分子和分母的系数 向量产生数字滤波器,并 对输入的信号进行滤波,然后返回处理后的信号 ,其格式为 y = filter(b,a,X)。 式中 b为分子系数向量, a为分母系数向量, X为输入信号。由
8、式 (2)知在产生 FIR滤波器时, a=1。 impz函数可以产生数字滤波器的 N点的脉冲响应,其格式为 h,t = impz(hfilt,n)。 完成 信号采集后, 先设置延时时间,接着 通过 filter函数 产生单回声滤波器,并将产生的单回声信号 输出, 然后通过 impz函数产生 单回声滤波器的脉冲响应,最后将单回声滤波器的脉冲响应和幅频特性 以及单回声信号的时域波形图和频谱图输出 。 具体实现代码如下: t=0.3; k1=filter(1,zeros(1,fs*t),0.5,1,x); d1=impz(1,zeros(1,fs*t),0.5,1,fs*t*2); figure(3
9、); stem(d1,.); title(单回声滤波器脉冲响应 );xlabel(周期 );grid; figure(4); H1,W1=freqz(1,zeros(1,fs*t),0.5,1); plot(W1/pi,20*log10(abs(H1); title(单回声滤波器幅频特性 ); xlabel(数字频率 / );ylabel(幅度 /dB);grid; 4 figure(5); plot(k1); title(单回声信号时域图 ); xlabel(时间 );ylabel(幅值 );grid; y1=fft(k1); figure(6); plot(f,fftshift(abs(y
10、1); title(单回声语音信号频谱图 ); xlabel(频率 );ylabel(幅度 );grid; 3.3 多回声滤波器的设计 对于多回声滤波器的产生,我们仍采用 filter函数。由式 (6)知在产生 IIR滤波器时, b=1。 完成信号采集后,先设置延时时间,接着通过 filter函数产生 多 回声滤波器,并将产生的 多 回声信号输出,然 后通过 impz函数产生单回声滤波器的脉冲响应,最后将单回声滤波器的脉冲响应和 幅频特性以及单回声信号的时域波形图和频谱图输出。 具体实现代码如下: k2=filter(1,1,zeros(1,fs*t),-0.5,x); d2=impz(1,1
11、,zeros(1,fs*t),-0.5,fs*t*30); figure(7); stem(d2,.); title(多回声滤波器脉冲响应 );xlabel(周期 );grid; figure(8); H2,W2=freqz(1,1,zeros(1,fs*t),-0.5); plot(W2/pi,20*log10(abs(H2); title(多回声滤波器幅频特性 ); xlabel(数字频率 / );ylabel(幅度 /dB);grid; figure(9); plot(k2); title(多回声信号时域图 ); 5 xlabel(时间 );ylabel(幅值 );grid; y2=ff
12、t(k2); figure(10); plot(f,fftshift(abs(y2); title(多回声语音信号频谱图 ); xlabel(频率 );ylabel(幅度 );grid; 3.4 回声信号的文件输出 在 MATLAB R2014a中, audiowrite函数可以将数据通过所输入的采样频率写入成文件,其格式为 audiowrite(filename,y,Fs)。 在完成单回声信号和多回声信号的产生后,我们使用 audiowrite函数将生成的信号输出成文件。具体实现代码如下: audiowrite(单 回声 .wav,k1,fs); audiowrite(多回声 .wav,k2
13、,fs); 3.5 原始信号的分析 首先录制一段 wav格式的录音 ,该录音 采样频率 fs为 44100Hz。接下来,通过代码读取文件并输出原始信号时域波形图和频谱图。图 3所示为原始信号时域波形图,图 4为原始信号频谱图。由时域波形图可以看出原始信号是一个时间较短且高幅值区域较少的信号, 采用这种信号是 因为在设计过程中,我们发现太长且全程幅值较高会导致后面与回声信号对比 结果不明显 。 由频谱图可以看出,原始信号的主要能量集中在低频区域。 图 3 原始信号时域波形图 6 图 4 原始信号频谱图 3.6 单回声信号 的 分析 在这个设计中,我们将延时时间 t 的值设为 0.4,衰减系数 设
14、为 0.5,则由式 (2)及 fs为 44100Hz可得 单回声滤波器系统函数为 H(z)=1+0.517640 根据式 (7)可以得到单回声滤波器的脉冲响应和幅频特性 。 单回声滤波器的脉冲响应如 图 5所示 , 幅频特性如图 6所示 。 如图 6所示,单回声滤波器的幅频特性不是常数,对不同频率的声音的谐波响应不均匀,会产生一定的失真。 将 原始信号 通过单回声滤波器可以得到单回声 信号, 如图 7所示为单回声信号时域波形图,图 8所示为单 回声信号频谱图。 通过图 7和图 3对比可以看出,在原始信号的基础,单回声信号多了一部分比原始信号滞后 0.4s,而幅度只有原始信号 50%的信号,这个
15、信号就是单次的回声信号。此外,对比图 8和图 4,我们也可以看出频谱 上两个信号分布上并没有差别,只是幅值上单回声信号的频谱幅值较原始信号有所提升。 图 5 单回声滤波器的脉冲响应 7 图 6 单回声滤波器幅频特性 图 7 单回声信号时域波形图 图 8 单回声信号频谱图 3.7 多回声信号的分析 在这个设计中,我们将延时时间 t 的值设为 0.4,衰减系数 设为 0.5,则由式 (6)及 fs为 44100Hz可得单回声滤波器系统函数为 H(z)= 11-0.5z-17640 根据式 (8)可以得到多 回声滤波器的脉冲响应和幅频特性 。 多 回声滤波器的脉冲响应如 图 9所示, 幅频特性如图
16、10所示 。 如图 10所示,单回声滤波器的幅频特性不是常数,对不同频率的声音的谐波响应不均匀,会产生一定的失真。 将8 原始信号 通过 多 回声滤波器可以得到 多 回声 信号, 如图 11 所示为 多 回声信号时域波形图,图 12所示为 多 回声信号频谱图。通过图 11、图 7和图 3对比可以看出,在原始信号的基础, 多 回声信号 除了 多了一部分比原始信号滞后 0.4s,而幅度只有原始信号 50%的 单次回声 信号, 还在每个单次回声信号后叠加了该信号的单次回声信号,而这些单次回声信号合在一起就形成了多回声信号 。此外,对比图 12、图 8和图 4,我们也可以看出频谱上 三 个信号分布上并
17、没有差别,只是幅值上 多 回声信号的频谱幅值较原始信号 和单回声信号 有所提升。 图 9 多回声滤波器的脉冲响应 图 10 多回声滤波器幅频特性 图 11 多回声信号时域波形图 9 图 12 多回声信号频谱图 4 设计结论 在本次信号处理课程设计中,我们通过 MATLAB 编程 对实际声音进行采集、处理、衰减和延时等 ,以此 实现 了 单回声和多回声滤波器 ,产生了单回声和多回声信号 。但是本设计采用的单回声滤波器和多回声滤波器仍存在不足,它们的幅频特性不为常数,会造成失真,因此,在实际中可以考虑考虑使用幅频特性为常数的全通滤波器来减少失真。 参考 文献 : 1 方勇 . 数字信号处理 :原理与实践 M. 清华大学出版社 , 2010. 2 程佩青 . 数字信号处理教程 .第 4版 M. 清华大学出版社 , 2013. 3 沈再阳 . 精通 MATLAB信号处理 M. 清华大学出版社 , 2015. 4 罗俊 . 基于数字滤波器的回声研究 J. 农业网络信息 , 2008(3):145-146.