附件三
设计
题目
按
课
程
设
计
主
要
内
容
指
导
教
师
评
语
回声的产生与消除
成绩
阅读《信号与系统》(郑君里等编著第 3 版)第二章关于多径失真
的讨论。
要求:(1)利用声音信号文件 x 产生带有回声的声音文件 y。
(2)从带有回声的文件 y 中消除回声。
(3)从 y 中估计反射物的距离。
建议:从学生的工作态度、工作量、设计(论文)的创造性、学术性、实用性及书面表达能力等方面给出评价。
签名:
200 年 月 日
目录
一·课程设计目的与要求
二·选题背景(课题背景、原理、工具软件和测试环境介绍)
三·任务设计过程
1,信号的采集
2,回声信号的产生
3,回声延时量的分析与估算回声衰减系数
4,从带有回声的声音信号中恢复原信号
5,从带有回声的声音信号中估计反射物的距离
四·测试结果与分析
五·课程设计心得体会
六·参考文献
一·课程设计目的与要求
1、回声的产生与消除课程设计目的要求
阅读《信号与系统》(郑君里等编著第 3 版)第二章关于多径失真的讨论。
要求:
(1)利用声音信号文件x产生带有回声的声音文件y。
(2)从带有回声的文件y中消除回声。
(3)从 y 中估计反射物的距离。
二·选题背景(课题背景、原理、工具软
件和测试环境介绍)
(1)根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,
采样定理:回声信号,相关性分析;数字滤波器设计原理和方法)。
采样频率:采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并
成离散信号的采样个数。
采样位数:即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播
放声音文件时所使用数字声音信号的二进制位数。
采样定理:在进行模拟/数字信号的转换过程中,当采样频率 fs.max 大于信号中最高
频率 fmax 的 2 倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信
息,一般实际应用中保证采样频率为信号最高频率的 5~10 倍;采样定理又称奈奎斯特定
理。
相 关 函 数 : X(t) 为 随 机 过 程 , a(t)=EX(t) 为 期 望 , 则 相 关 函 数 定 义 为 :
B(s,t)=E(X(s)-a(t))(X(t)-a(t))。若 X(t)=Y(t)+i*Z(t),Y,Z 为实过程,则称 X(t)为复
随机过程,相关函数定义为:B(s,t)=E(X(s)-a(t))(X(t)-a(t))(后一个括号取共轭)
自相关函数的数学定义为:
同一时间函数在瞬时 t 和 t+a 的两个值相乘积的平均值作为延迟时间 t 的函数,它是
信号与延迟后信号之间相似性的度量。简单地说,自相关函数是用来表征一个信号在不同
时刻 t1,t2 状态之间的相关程度,其在某一时间点的值越大,相关程度越高。
在 matlab 中,对于一个混有回声的语音信号,可以利用 xcorr 自相关函数可以求出
回声信号与原始信号的采样点之差,进而求得延时量。
(2)熟悉 MATLAB 的编程语言。
(3)本课程设计采用的工具软件为 Matlab R2018a,测试环境为 Windows10(64 位)
三·任务设计过程
1,信号的采集
(1)已经采集好的一段语音信号,利用 matlab 的”audioread”命令可以对该信号进行
读取和采样,本项目中采用的文件为 wav 文件。
利用 plot 和 fft 函数可以对已采集的信号分别绘制时域波形图和经快速傅里叶变换
得到的频谱图;abs 和 angle 函数可以绘制信号频域的幅值与相位图。
我们选择的语音信号为老师提供的样本 speech_dft.wav
(2)Matlab 代码
%原始信号
[x,fs]=audioread('C:\Users\Desktop\keshe\speech_dft.wav');
N=length(x);
figure(1);
subplot(3,1,1);
plot(x(1:N));
title('原始信号(时域)');
y=fft(x);
subplot(3,1,2);
plot(abs(y));
title('幅值');
subplot(3,1,3);
plot(angle(y));
title('相位');
(3)图像
2,回声信号的产生
(1)在录制信号基础上产生带有回声的声音信号并绘制其时域波形,对其进行 FFT 频谱
分析,绘制频谱图。利用 zeros 函数创建空矩阵可以对原始信号进行延时,并产生回声。
我们加入了两个回声信号,拟定的回声延时点数分别为 ceil(N/6)与 ceil(N/3),衰减系
数分别为 0.7 与 0.4。最后生成名为 eacho1.wav 的回声信号并播放。
N1 = ceil(N/6)= 18339
N2 = ceil(N/3)=36678
(2)Matlab 代码
%回声信号的产生
[x,fs]=audioread('C:\Users\Desktop\keshe\speech_dft.wav');
N=length(x);
x1=x(1:N)';
x2=x(1:N)';
x3=x(1:N)';
N1=ceil(N/6)
N2=ceil(N/3)
a1=0.7;
a2=0.4;
x1=[x1,zeros(1,N1+N2)];
x2=[zeros(1,N1),0.7*x2,zeros(1,N2)];
x3=[zeros(1,N2),0.4*x3,zeros(1,N1)];
y=x1+x2+x3;
figure(2);
subplot(2,1,1);
plot(y(1:N+N1+N2));
title('回声(时域)');
y1=fft(y);
subplot(2,1,2);
plot(abs(y1));
title('幅值');
eacho1= 'C:\Users\Desktop\keshe\eacho1.wav';
audiowrite(eacho1,y,fs);
sound(y,fs);
(3)图像
3,回声延时量的分析与估算回声衰减系数
(1)利用 xcorr 自相关函数可以求出回声信号与原始信号的采样点之差、幅度之比,进
而求得延时量与衰减系数。从自相关函数图像中可以看到,在采样点的中心有一最大的幅
值,其含义就是当延时量为零时,信号相关程度最高;而在这一峰值的两侧有两个次大的
幅值,其含义就是在该处信号相关程度次高;而在别的点处其相关程度相对于该 2 个峰值
都可以忽略,因此算出这 2 个峰值所对应的采样点之差,就是回声信号中,原始信号与回
声信号对应的采样点之差。r1、r2、r3 分别为源信号与两个回声信号的幅度,它们的比便
是衰减系数。
(2)Matlab 代码
%从带有回声的声音信号中估计反射物的距离
[y,fs]=audioread('C:\Users\Desktop\keshe\eacho1.wav');
N=length(y);
h=xcorr(y);%对于一个混有回声的语音信号,可以利用 xcorr 自相关函数可以求出回声信
号与原始信号的采样点之差,进而求得延时量。
figure(4);
plot(abs(h));
title('最值');
h1=h(150000:170000);
[r1,t1]=max(h1);
t1=t1+150000;
h2=h(180000:200000);
[r2,t2]=max(h2);
t2=t2+180000-t1;
h3=h(200000:210000);
[r3,t3]=max(h3);
t3=t3+200000-t1;
t=[t2,t3]
%衰减系数计算
r2/r1
r3/r1
(3)自相关函数图像图像