摘要
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB语言具备高效、可及推理能力强等特点,在数值计算方法、图形功能、用户界面设计编程手段和工具等方面有着重要的应用,随着MATLAB应用领域不断扩大,使其成为一种影响大、流行广的科学计算语言。
本次设计主要把原有WAV格式的声音文件通过MATLAB软件转换成声音文件。同时利用MATLAB产生原信号的延时衰减的回波信号附加到原信号形成回波信号。使用xcorr函数对延时和衰减进行估计。并对反射物的距离进行估计。
关键词:MATLAB;数字信号处理;回波;频谱分析;滤波器;xcorr函数
正文
1 设计目的和要求
已知技术参数和设计要求
本毕业设计要求用MATLAB语言编程实现回波信号的产生与消除。
具体要求
(1)利用声音信号x产生带有回声的声音文件y。
(2)从带有回声的文件y中消除回声。
(3)从y中估计反射物的距离。
采集语音:采集一段语音,绘制其时域波形,对此音频信号用FFT作谱分析。
加入回声:对采集的语音进行处理,加入一段回声,并绘制其时域波形,对其进行FFT频谱分析,绘制频谱图。
从带有回声的声音信号中恢复原信号:设计合适的滤波器,对带有回声的声音信号进行滤波,恢复原信号。绘制所设计滤波器的幅频和相频特性,及滤波后的信号的时域波形和频谱图。
从带有回声的声音信号中估计反射物的距离:采用相关分析法从带有回声的声音信号中估计反射物的距离。
(1)语音采集
(2)原始信号的时域波形,FFT频谱分析
[x,fs,bits] = wavread('LoopyMusic');
x=x(:,1);
x=x(1:16000);
figure(1);
subplot(3,1,1);
plot(x); grid on;
xlabel('时间'); ylabel('幅值'); title('原始信号时域波形');
subplot(3,1,2);
wx=fft(x);
plot(abs(wx)); grid on;
xlabel('频率'); ylabel('幅值'); title('幅频特性');
subplot(3,1,3);
plot(angle(wx)); grid on;
xlabel('频率'); ylabel('相位') ;title('相频特性');
(3)加入回声
N=36000;
y=[x;zeros(N,1)]+*[zeros(N,1);x];
wavwrite(y,'加回声后的信号');
figure(2);
subplot(3,1,1);
plot(y); grid on;
xlabel('时间'); ylabel('幅值'); title('加回声后信号时域波形');
subplot(3,1,2);
wy=fft(y);
plot(abs(wy)); grid on;
xlabel('频率'); ylabel('幅值'); title('幅频特性'
基于MATLAB的回波信号的产生与消除 来自淘豆网www.taodocs.com转载请标明出处.