基于matlab的回波,基于MATLAB回波信号产生与消除.doc
基于MATLAB回波信號產生與消除
摘 要
MATLAB可以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。 MATLAB語言具備高效、可及推理能力強等特點,在數值計算方法、圖形功能、用戶界面設計編程手段和工具等方面有著重要的應用,隨著MATLAB應用領域不斷擴大,使其成為一種影響大、流行廣的科學計算語言。
本次設計主要把原有WAV格式的聲音文件通過MATLAB軟件轉換成聲音文件。同時利用MATLAB產生原信號的延時衰減的回波信號附加到原信號形成回波信號。使用xcorr函數對延時和衰減進行估計。并對反射物的距離進行估計。
關鍵詞:MATLAB;數字信號處理;回波 ;頻譜分析;濾波器;xcorr函數
正 文
1 設計目的和要求
1.1 已知技術參數和設計要求
本畢業設計要求用MATLAB語言編程實現回波信號的產生與消除。
1.2 具體要求
(1)利用聲音信號x產生帶有回聲的聲音文件y。
(2)從帶有回聲的文件y中消除回聲。
(3)從y中估計反射物的距離。
2.設計原理
采集語音:采集一段語音,繪制其時域波形,對此音頻信號用FFT作譜分析。
加入回聲:對采集的語音進行處理,加入一段回聲,并繪制其時域波形,對其進行FFT頻譜分析,繪制頻譜圖。
從帶有回聲的聲音信號中恢復原信號:設計合適的濾波器,對帶有回聲的聲音信號進行濾波,恢復原信號。繪制所設計濾波器的幅頻和相頻特性,及濾波后的信號的時域波形和頻譜圖。
從帶有回聲的聲音信號中估計反射物的距離:采用相關分析法從帶有回聲的聲音信號中估計反射物的距離。
3.設計內容
(1)語音采集
讀取本地音頻文件LoopyMusic.wav
(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)]+0.5*[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('幅頻特性');
subplot(3,1,3);
plot(angle(wy)); grid on;
xlabel('頻率'); ylabel('相位') ;title('相頻特性');
(4) 加回聲后信號的時域波形,FFT頻譜分析
r=xcorr(y);
figure(3);
plot(r);
grid on;
title('y的自相關函數');
[u,v]=max(r);
r1=r;
r1(v-5000:v+5000,1)=0;
[u1,v1]=max(r1);
N=v-v1;
title(N);
N
for k=1:2
t(k)=(-1)^k*y(36000*(k-1)+1,1);
end
roots(t)
(5) 從帶有回聲的聲音信號中恢復原信號且估計反射物的距離
a=[1,zeros(1,35999),0.5];
b=[1];
x1=filter(b,a,y);
wavwrite(x1,'恢復后的信號')
figure(4);
subplot(3,1,1);
plot(x1); grid on;
xlabel('時間'); ylabel('幅值'); title('恢復后的信號時域波形');
subplot(3,1,2);
wx1=fft(x1);
plot(abs(wx1)); grid on;
xlabel('頻率'); ylabel('幅值'); title('幅頻特性');
subplot(3,1,3);
plot(angle(
總結
以上是生活随笔為你收集整理的基于matlab的回波,基于MATLAB回波信号产生与消除.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab解调2fsk,2FSK调制解
- 下一篇: c语言程序与设计第三版-苏小红--第一轮