已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB 课程设计学院: 电气信息工程学院 课题: 语音信号的采集与处理 班级: 电 信 1201 组长: 组员: 指导老师: 语音信号的采集与处理一、实验要求 (1) 本课程设计要求掌握 MATLAB 语言特性、数学运算和图形表示;掌握MATLAB 程序设计方法在信息处理方面的一些应用;掌握在 Windows 环境下,利用 MATLAB 进行语音信号采集与处理的基本方法。 (2) 本课程设计分为基础与综合设计题目,其中基础题目为 MATLAB 基本训练(必做) ;对于综合设计题,需按照任务书要求,对设计过程所进行的有关步骤进行理论分析,并对完成的设计作出评价,总结自己整个设计工作中的经验教训、收获;在课设最后一天提交课程设计报告,报告必须按照统一格式打印,装订成册。二、实验内容1、利用 windows 自带的录音机或者其它录音软件,录制几段语音信号(要有几种不同的声音,要有男声、女声) 。 2、对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点(低沉 or 尖锐?) 3、利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样) 对信号的影响。 这里涉及到采样下重采样的问题, 请大家思考如何去做。 4、实现语音信号的快放、慢放、倒放、回声、男女变声。 5、对采集到的语音信号进行调制与解调,观测调制与解调前后信号的变化。6、 对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响。 7、 如果精力和时间允许,鼓励利用 MATLAB GUI 制作语音信号采集与分析演示系统。三、MATLAB 仿真任务一(陈康负责)1.利用频谱的分析利用 Windows 下的录音机,录制一段男生和女生的语音 ,存为*.WAV 的文件。然后在 Matlab 软件平台下 ,利用函数 wavread 对语音信号进行采样,记住采样频率和采样点数。首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换(FFT 变换),得到信号的频谱特性,分析语音信号频谱。源程序:fs=44100; x,fs,Nbits =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); ); fuzhi nylabel(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(y1)*2/n); %做原始语音信号的 FFT 频谱图title(原始语音信号 FFT 频谱) 频谱分析对比运行结果:女生:频谱分析:从 300hz 到 2000hz 都有分布,主要集中在 3001200Hz,声音尖锐,是女生频谱。男生: 频谱分析:从 200hz 到 1000hz 都有分布,集中在 3001000Hz 声音低沉,是男生频谱。任务二(詹筱珊负责)利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样) 对信号的影响。 这里涉及到采样下重采样的问题, 请大家思考如何去做。 .源程序:clear; y,fs,bits=wavread(E:GQQQWOMAN); %x 语音数据 fs 采样频率 bits 采样点数 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(原始信号频谱);grid y1=decimate(y,2); %采样频率为 22050Hz,过采样fs1=fs/2; sound(y1,fs1,bits); %话音回放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(过采样信号频谱);grid y2=decimate(y,4); %每 4 个取一个,采样频率为 11025Hz 接近临界采样fs2=fs/4; sound(y2,fs2,bits); %话音回放n2 = 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(临界采样信号频谱);grid y3=decimate(y,8); %抽取函数,频率变为原来 1/8,欠采样fs2=fs/8; sound(y2,fs2,bits); %话音回放n3 = length (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); %读取声音文件derta_fs = fs/length(z); x=z(:,1); %读入的 y 矩阵有两列,取第 1 列y1=voice(x,1.5); %调整 voice()第 2 个参数转换音调,1 降调,1 为快放,w1 降调,1 降低;f1 升高f=round(f*1000); d=resample(x,f,1000); %时长整合使语音文件恢复原来时长 W=400; Wov=W/2; Kmax=W*2; Wsim=Wov; xdecim=8; kdecim=2; X=d; F=f/1000; Ss =W-Wov; xpts = size(X,2); ypts = round(xpts / F); Y = zeros(1, ypts); xfwin = (1:Wov)/(Wov+1); ovix = (1-Wov):0; newix = 1:(W-Wov); simix = (1:xdecim:Wsim) - Wsim; padX = zeros(1, Wsim), X, zeros(1,Kmax+W-Wov); Y(1:Wsim) = X(1:Wsim); lastxpos = 0; km = 0; for ypos = Wsim:Ss:(ypts-W) xpos = round(F * ypos); kmpred = km + (xpos - lastxpos); lastxpos = xpos; if (kmpred = Kmax) km = kmpred; elseysim = Y(ypos + simix); rxy = zeros(1, Kmax+1); rxx = zeros(1, Kmax+1); Kmin = 0; for k = Kmin:kdecim:Kmax xsim = padX(Wsim + xpos + k + simix); rxx(k+1) = norm(xsim); rxy(k+1) = (ysim * xsim); endRxy = (rxx = 0).*rxy./(rxx+(rxx=0); km = min(find(Rxy = max(Rxy)-1); endxabs = xpos+km; Y(ypos+ovix) = (1-xfwin).*Y(ypos+ovix) + (xfwin.*padX(Wsim+xabs+ovix); Y(ypos+newix) = padX(Wsim+xabs+newix); endend任务四(丁睿智负责)(1)调制:语音信号与高频正弦载波相调制,比较其频谱变化,回放信号,比较是与众语音信号变化。将调制后的信号进行解调,回放信号,比较时域中语音信号变化。所谓调制,就是在传送信号的一方将所要传送的信号附加在高频振荡上,再由天线发射出去。这里高频振荡波就是携带信号的运载工具,也叫载波。振幅调制,就是由调制信号去控制高频载波的振幅,直至随调制信号做线性变化。在线性调制系列中,最先应用的一种幅度调制是全调幅或常规调幅,简称为调幅(AM) 。已调波包络与在时域中,在频域中已调波频谱是基带调制信号频谱的线性位移;调制信号波形呈线性关系。为载波角频率;)式中,A 设正弦载波为:c(t)=Acos(为载波幅度;wtw0000=0). (假设为载波初始相位 0调制信号(基带信号)为 m(t)。根据调制的定义,振幅调制信号(已调信号)一般可以表示为: t)cos(wt)(sAm (t)m0设调制信号的频谱为,则已调信号的频谱为)ws(s(t )m(t)m(wmmAs(w)w(w)M(ww)M:m 002.)产生原理:标准调幅波(AM,这些信号可以是模拟的,亦调制信号是只来来自信源的调制信号(基带信号)亦可以它可以是正弦波,为首调制的高频振荡信号可称为载波,可以是数字的。 。载波由高频信号源直接产生即可,然后经过高)是非正弦波(如周期性脉冲序列频功率放大器进行放大,作为调幅波的载波,调制信号由低频信号源直接产生,二者经过乘法器后即可产生双边带的调幅波。设载波信号的表达式为,调制信号的表达式为,则调幅 twcostcoswt)Am(0mm信号的表达式为 tcost)wts()(Am00AM(2)解调从高频已调信号中恢复出调制信号的过程称为解调(demodulation ),又称为检波(detection )。对于振幅调制信号,解调(demodulation )就是从它的幅度变化上提取调制信号的过程。解调(demodulation )是调制的逆过程。可利用乘积型同步检波器实现振幅的解调,让已调信号与本地恢复载波信号相乘并通过低通滤波可获得解调信号。调制与解调:源程序:clear; f1,fs,nbits=wavread(E:GQQQWOMAN); %读入录音文件dt=1/fs; figure(1); %控制画图窗口 1subplot(2,1,1); %将多个图画到一个平面,2 行 1 列,共 2 个子图,定位第 1 个图进行操作N=length(f1); derta_fs = fs/length(f1); %设置频率间隔t=0:1/fs:(N-1)/fs; plot(t,f1); % 以 t 为横坐标,f1 为纵坐标绘制连线图title(信息信号的时域波形); %加标题fy1=fft(f1); w1=0:fs/(N-1):fs; subplot(2,1,2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(fy1)*2/N); title(信息信号的频谱); f2=cos(22000*pi*t); fy2 = fft(f2); N2=length(f2); w2=fs/N*0:N-1; figure(2); subplot(2,2,1); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(fy2)*2/N); title(载波信号的频谱); f1=f1(:,1); f3=f1.*f2; subplot(2,2,2); fy3 = fft(f3); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(fy3)*2/N); title(已调信号的频谱); sound(f3,fs,nbits); %播放语音信号f4=f3.*f2; subplot(2,1,2); fy4=fft(f4); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(fy4)*2/N); 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); % 用 kaiser 窗函数b1=fir1(M1,wc1/pi,Window); % fir1 是用窗函数法设计线性相位FIRDF 的工具箱函数figure(3); freqz(b1,1,512); title(FIR 低通滤波器的频率响应); %用于求离散系统频响特性的函数 freqzf4_low = filter(b1,1, f4); %一维数字滤波器plot(t,2*f4_low); title(滤波后的解调信号时域波形); sound(f4_low,fs,nbits); f5=fft(f4_low); figure(4); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(f5)*2/N); title(滤波后的解调信号频谱); 任务五(吴亚明负责)对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响加噪源程序:y,fs,nbits=wavread (E:GQQQWOMAN); N = length (y) ; %求出语音信号的长度derta_fs = fs/length(y); 随机函数产生噪声%Noise=0.05*randn(N,2); Si=y+Noise; %语音信号加入噪声 sound(Si,fs); figure(1); subplot(2,1,1); plot(y);title(原语音信号的时域波形); Y=fft(y); %傅里叶变换subplot(2,1,2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(Y)*2/N); title(原语音信号的频域波形); figure(2); subplot(2,1,1); plot(Si);title(加噪语音信号的时域波形); S=fft(Si); %傅里叶变换subplot(2,1,2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(S)*2/N); title(加噪语音信号的频域波形); 低通:y,fs,nbits=wavread (E:GQQQWOMAN); n = length (y) ; %求出语音信号的长度derta_fs = fs/length(y); noise=0.05*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声S=fft(s); %傅里叶变换Ft=8000; Fp=1000; Fs=1200; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; n11,wn11=buttord(wp,ws,1,50,s); %低通滤波器的阶数和截止频率域频率响应的参数%S b11,a11=butter(n11,wn11,s); num11,den11=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应 S 域到Z 域的变换z11=filter(num11,den11,s); %直接滤波器实现sound(z11,fs,nbits); m11=fft(z11); %求滤波后的信号subplot(2,2,1); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(S)*2/n); title(滤波前信号的频谱); grid; subplot(2,2,2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(m11)*2/n); title(滤波后信号的频谱); grid; subplot(2,2,3); plot(s); title(滤波前信号的波形); grid; subplot(2,2,4); plot(z11); title(滤波后的信号波形) 高通); y,fs,nbits=wavread (E:GQQQWOMAN求出语音信号的长度%n = length (y) ; derta_fs = fs/length(y); noise=0.001*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声S=fft(s); %傅里叶变换Fp1=300; Fs1=1000; Ft=8000; wp1=tan(pi*Fp1/Ft); ws1=tan(pi*Fs1/Ft); wp=1; ws=wp1*wp/ws1; n13,wn13=cheb1ord(wp,ws,1,50,s); %模拟的低通滤波器阶数和截止频率b13,a13=cheby1(n13,1,wn13,s); %S 域的频率响应的参数num,den=lp2hp(b13,a13,wn13); %S 域低通参数转为高通的num13,den13=bilinear(num,den,0.5); %利用双线性变换实现频率响应 S 域到 Z 域转换z13=filter(num13,den13,s); sound(z13); m13=fft(z13); %求滤波后的信号subplot(2,2,1); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(S)*2/n); title(滤波前信号的频谱); grid; subplot(2,2,2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(m13)*2/n); title(滤波后信号的频谱); grid; subplot(2,2,3); plot(s); title(滤波前信号的波形); grid; subplot(2,2,4); plot(z13); ); 滤波后的信号波形title(带通:y,fs,nbits=wavread (E:GQQQWOMAN); n = length (y) ; %求出语音信号的长度derta_fs = fs/length(y); Noise=0.05*randn(n,2); %随机函数产生噪声s=y+Noise; %语音信号加入噪声S=fft(s); %傅里叶变换Ft=8000; Fp=1000; Fs=1200; wp=2*Fp/Ft; ws=2*Fs/Ft; rp=1; rs=50; p=1-10.(-rp/20); %通带阻带波纹q=10.(-rs/20); fpts=wp ws; mag=1 0; dev=p q; n12,wn12,beta,ftype=kaiserord(fpts,mag,dev); %由 kaiserord 求滤波器的阶数和截止频率b12=fir1(n12,wn12,kaiser(n12+1,beta); %设计滤波器z12=fftfilt(b12,s); sound(z12,fs,nbits); 求滤波后的信号 m12=fft(z12); %subplot(2,2,1); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(S)*2/n); title(滤波前信号的频谱); grid; subplot(2,2,2); plot(-fs/2:derta_fs:fs/2-derta_fs,abs(fftshift(m12)*2/n); title(滤波后信号的频谱); grid; subplot(2,2,3); plot(s); title(滤波前信号的波形); grid; subplot(2,2,4); plot(z12); title(滤波后的信号波形); 课程设计总结:陈
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷、玻璃文物修复师风险评估强化考核试卷含答案
- 羽绒加工及制品充填工技术知识模拟考核试卷含答案
- 酒体设计师安全培训模拟考核试卷含答案
- 重金属回转窑焙烧工岗前教育考核试卷含答案
- 酵母制备工岗位环保及安全考核试卷含答案
- 换罐清渣工常识知识考核试卷含答案
- 罐头食品加工工岗位应急能力考核试卷含答案
- 灌区供水工岗位学习考核试卷含答案
- 2026中国液体化工物流云计算平台搭建与资源共享研究报告
- 2026光刻胶性能测试方法标准化进程与国际对标
- 2026年宿迁泗阳县公开招聘城市社区工作者17人笔试备考试题及答案解析
- 转科交接登记制度、流程及身份识别措施
- 2026年卫生健康委系统岗位招聘考试笔试试题(含答案)
- 译林版七年级英语上册知识清单
- 2026秋冀少版新教材七年级上册生物学每课知识点清单
- 2026年四川省高考历史真题试卷
- 中国重症患者液体管理专家共识(2026版)
- (2026)过敏性休克紧急处置课件
- 建筑电气设计统一技术措施-2021
- 2026年四川省拟任县处级领导干部理论(任职资格考试)全真模拟试题及答案
- 楼板拆除工程专项方案实施保证措施
评论
0/150
提交评论