MATLAB语音信号采集与处理(DOC)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB课程设计报告课题:语音信号采集与处理
目录
一、实践目的 (3)
二、实践原理: (3)
三、课题要求: (3)
四、MATLAB仿真 (4)
1、频谱分析: (4)
2、调制与解调: (5)
3、信号变化: (8)
快放: (8)
慢放: (8)
倒放: (8)
回声: (8)
男女变声: (9)
4、信号加噪 (10)
5、用窗函数法设计FIR滤波器 (11)
FIR低通滤波器: (12)
FIR高通滤波器: (13)
FIR带通滤波: (14)
一、实践目的
本次课程设计的课题为《基于MATLAB的语音信号采集与处理》,学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟练使用MATLAB进行系统的分析仿真和设计奠定基础。
此次实习课程主要是为了进一步熟悉对matlab软件的使用,以及学会利用matlab对声音信号这种实际问题进行处理,将理论应用于实际,加深对它的理解。
二、实践原理:
利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。语音信号的“短时谱”对于非平稳信号, 它是非周期的, 频谱随时间连续变化, 因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。如果利用加窗的方法从语音流中取出其中一个短断, 再进行傅里叶变换, 就可以得到该语音的短时谱。
三、课题要求:
○1利用windows 自带的录音机或者其它录音软件,录制几段语音信号(要有几种不同的声音,要有男声、女声)。
○2对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点(低沉or 尖锐)。
○3利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。
○4对采集到的语音信号进行调制与解调,观测调制与解调前后信号的变化。
○5实现语音信号的快放、慢放、倒放、回声、男女变声。
○6对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响。
○7利用MATLAB GUI 制作语音信号采集与分析演示系统。
四、MATLAB仿真
1、频谱分析:
用WINDOWS下的录音机,用单声道录制一段音乐或声音,时间在5S内。然后MATLAB 软件平台下,利用函数WAVREAD对语音信号进行采样,记住采样频率和采样点数。对语音信号进行快速傅立叶变换,在一个窗口同时画出信号的时域波形图和频谱图,分析语音信号的频谱特点
程序:
fs =22050;
Nbits =16;
[x,fs,Nbits] =wavread('D:\matlab\22hexian.wav') ; %读声音文件
n=length(x);
t=0:1/fs:(length(x)-1)/fs; %求出语音信号的长度
y1=fft(x,n) ; %傅里叶变换
y2=fftshift(y1); %对频谱图进行平移
f=0:fs/n:fs*(n-1)/n; %得出频点
subplot(2,1,1);
plot(t/2,x) %做原始语音信号的时域图形
title('原始信号时域波形图');
subplot(2,1,2);
plot(f,abs(y2));
title('原始信号频谱图')
仿真波形:
○1门铃:
○2和弦:
○3男女声:
2、调制与解调:
首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在Matlab 中可以利用函数fft 对信号行快速傅里叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。
程序:
clear;
dt=1/44100;
fs=44100;
[f1,fs,nbits]=wavread('D:\1huan.wav');
figure(1);
subplot(1,1,1);
N=length(f1);
t=0:1/fs:(N-1)/fs;
plot(t,f1);
title('信息信号的时域波形');
fy1=fft(f1);
w1=0:fs/(N-1):fs;
figure(2);
subplot(1,1,1);
plot(w1,abs(fy1));
title('信息信号的频谱');
f2=cos(22000*pi*t);
figure(3);
subplot(1,1,1);
fy2 = fft(f2);
N2=length(f2);
w2=fs/N*[0:N-1];
plot(w2,abs(abs(fy2)));
title('载波信号的频谱');
f1=f1(:,1);
f3=f1'.*f2;
figure(4);
subplot(1,1,1);
fy3 = fft(f3);
plot(w1,abs(abs(fy3)));
title('已调信号的频谱');
sound(f3,fs,nbits);
f4=f3.*f2;
figure(5);
subplot(1,1,1);
fy4=fft(f4);
plot(w1,abs(abs(fy4)));
title('解调信号的频谱');
sound(f4,fs,nbits);
fp1=0;
fs1=5000;
As1=100;
wp1=2*pi*fp1/fs;
ws1=2*pi*fs1/fs;
BF1=ws1-wp1;
wc1=(wp1+ws1)/2;
M1=ceil((As1-7.95)/(2.286*BF1))+1; N1=M1+1;
beta1=0.1102*(As1-8.7);
Window=(kaiser(N1,beta1));
b1=fir1(M1,wc1/pi,Window);
figure(6);
subplot(1,1,1);