1、MATLAB课程设计报告语音信号的采集与处理MATLAB课程设计 学院: 电气信息工程学院 课题: 语音信号的采集与处理 班级: 电 信 1201 组长: 组员: 指导老师: 语音信号的采集与处理一、实验要求 (1) 本课程设计要求掌握 MATLAB 语言特性、数学运算和图形表示;掌握 MATLAB 程序设计方法在信息处理方面的一些应用;掌握在 Windows 环境下,利用 MATLAB 进行语音信号采集与处理的基本方法。 (2) 本课程设计分为基础与综合设计题目,其中基础题目为 MATLAB 基本训练(必做) ;对于综合设计题,需按照任务书要求,对设计过程所进行的有关步骤进行理论分析,并对完
2、成的设计作出评价,总结自己整个设计工作中的经验教训、收获;在课设最后一天提交课程设计报告,报告必须按照统一格式打印,装订成册。二、实验内容1、利用 windows 自带的录音机或者其它录音软件,录制几段语音信号(要有几种不同的声音,要有男声、女声) 。 2、对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点(低沉 or 尖锐?) 3、利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样) 对信号的影响。 这里涉及到采样下重采样的问题, 请大家思考如何去做。 4、实现语音信号的快放、慢放、倒放、回声、男女变声。 5、对采集到的
3、语音信号进行调制与解调,观测调制与解调前后信号的变化。 6、 对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响。 7、 如果精力和时间允许,鼓励利用 MATLAB GUI 制作语音信号采集与分析演示系统。三、MATLAB仿真任务一(陈康负责)1.利用频谱的分析利用Windows下的录音机,录制一段男生和女生的语音,存为*.WAV的文件。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换(FFT变换),得到信号的频谱特性,分析语音信号频谱。源程序:fs=44100; x,fs,Nb
4、its =wavread(E:GQQQleo) ;derta_fs = fs/length(x);t=0:1/44100:(length(x)-1)/44100;sound(x,fs) ; %对加载的语音信号进行回放figure(1)plot(t,x) %做原始语音信号的时域图形title(原始语音信号);xlabel(time n);ylabel(fuzhi n);n=length(x); %求出语音信号的长度y1=fft(x,n) ; %傅里叶变换w=1/n*0:n-1*fs;figure(2) plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(
5、y1)*2/n); %做原始语音信号的FFT频谱图title(原始语音信号FFT频谱)频谱分析对比运行结果:女生:频谱分析:从300hz到2000hz都有分布,主要集中在3001200Hz,声音尖锐,是女生频谱。男生:频谱分析:从200hz到1000hz都有分布,集中在3001000Hz声音低沉,是男生频谱。任务二(詹筱珊负责)利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样) 对信号的影响。 这里涉及到采样下重采样的问题, 请大家思考如何去做。 源程序:clear;y,fs,bits=wavread(E:GQQQWOMAN); %x语音数据fs采样频率bits
6、采样点数 sound(y,fs,bits); %话音回放n = length (y) ; %求出语音信号的长度derta_fs = fs/length(y);Y=fft(y,n); %傅里叶变换figure(1);subplot(2,1,1);plot(y);title(原始信号波形); subplot(2,1,2);plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(Y)*2/n); title(原始信号频谱);gridy1=decimate(y,2); %采样频率为22050Hz,过采样fs1=fs/2;sound(y1,fs1,bits); %话
7、音回放n1 = length (y1) ; %求出语音信号的长度derta_fs = fs/length(y1);Y1=fft(y1,n1); %傅里叶变换figure(2);subplot(2,1,1);plot(y1);title(过采样信号波形); subplot(2,1,2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(Y1)*2/n1);title(过采样信号频谱);gridy2=decimate(y,4); %每4个取一个,采样频率为11025Hz接近临界采样fs2=fs/4;sound(y2,fs2,bits); %话音回放n2
8、 = length (y2) ; %求出语音信号的长度derta_fs = fs/length(y2);Y2=fft(y2,n2); %傅里叶变换figure(3);subplot(2,1,1);plot(y2);title(临界采样信号波形); subplot(2,1,2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(Y2)*2/n2);title(临界采样信号频谱);gridy3=decimate(y,8); %抽取函数,频率变为原来1/8,欠采样fs2=fs/8;sound(y2,fs2,bits); %话音回放n3 = length
9、(y3) ; %求出语音信号的长度derta_fs = fs/length(y3);Y3=fft(y3,n3); %傅里叶变换figure(4);subplot(2,1,1);plot(y3);title(欠采样信号波形); subplot(2,1,2);plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(Y3)*2/n3);title(欠采样信号频谱);grid运行结果:任务三(郭前负责)实现语音信号的快放、慢放、倒放、回声、男女变声源程序:%变速-快放%fs=25600;z,fs,nbits=wavread(E:GQQQleo); %读取声音文件d
10、erta_fs = fs/length(z);x=z(:,1); %读入的y矩阵有两列,取第1列y1=voice(x,1.5); %调整voice()第2个参数转换音调,1降调,1为快放,w1降调,1升调,y1为x转换后的声音N=length(x); M=length(y1);n=0:N-1; m=0:M-1;X= fft(x); Y=fft(y1); %傅里叶变换Fs=2*fs; %2倍频T=1/Fs; T1=1/Fs*0.71;f=n/N*Fs; f1=m/M*Fs/0.71;derta_Fs =Fs/length(x);derta_Fs1 =Fs/length(y1);t=n*T; t1=m*T1;figure;subplot(2,1,1);plot(t,x); xlabel(t/s);ylabel(magnitude);title(转换前的波形);subplot(2,1,2);plot(t1,y1); xlabel(t/s);ylabel(magnitude);title(转换后的波形);figure;subplot(2,1,1);plot(-Fs/2:derta_Fs:Fs/2-derta_Fs,abs(fftshift(X)*2/N); xlabel(frequency/Hz);ylabel(magnitude);title(转换前的频谱);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1