MATLAB课程设计报告语音信号的采集与处理.docx

上传人:b****1 文档编号:1747896 上传时间:2022-10-23 格式:DOCX 页数:24 大小:240.32KB
下载 相关 举报
MATLAB课程设计报告语音信号的采集与处理.docx_第1页
第1页 / 共24页
MATLAB课程设计报告语音信号的采集与处理.docx_第2页
第2页 / 共24页
MATLAB课程设计报告语音信号的采集与处理.docx_第3页
第3页 / 共24页
MATLAB课程设计报告语音信号的采集与处理.docx_第4页
第4页 / 共24页
MATLAB课程设计报告语音信号的采集与处理.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

MATLAB课程设计报告语音信号的采集与处理.docx

《MATLAB课程设计报告语音信号的采集与处理.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计报告语音信号的采集与处理.docx(24页珍藏版)》请在冰豆网上搜索。

MATLAB课程设计报告语音信号的采集与处理.docx

MATLAB课程设计报告语音信号的采集与处理

 

MATLAB

课程设计

 

 

学院:

电气信息工程学院

课题:

语音信号的采集与处理

班级:

电信1201

组长:

组员:

指导老师:

 

语音信号的采集与处理

一、实验要求

(1)本课程设计要求掌握MATLAB语言特性、数学运算和图形表示;掌握MATLAB程序设计方法在信息处理方面的一些应用;掌握在Windows环境下,利用MATLAB进行语音信号采集与处理的基本方法。

(2)本课程设计分为基础与综合设计题目,其中基础题目为MATLAB基本训练(必做);对于综合设计题,需按照任务书要求,对设计过程所进行的有关步骤进行理论分析,并对完成的设计作出评价,总结自己整个设计工作中的经验教训、收获;在课设最后一天提交课程设计报告,报告必须按照统一格式打印,装订成册。

二、实验内容

1、利用windows自带的录音机或者其它录音软件,录制几段语音信号(要有几种不同的声音,要有男声、女声)。

2、对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点(低沉or尖锐?

3、利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。

这里涉及到采样下重采样的问题,请大家思考如何去做。

4、实现语音信号的快放、慢放、倒放、回声、男女变声。

5、对采集到的语音信号进行调制与解调,观测调制与解调前后信号的变化。

6、对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响。

7、如果精力和时间允许,鼓励利用MATLABGUI制作语音信号采集与分析演示系统。

三、MATLAB仿真

任务一(陈康负责)

1.利用频谱的分析

利用Windows下的录音机,录制一段男生和女生的语音,存为*.WAV的文件。

然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。

首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换(FFT变换),得到信号的频谱特性,分析语音信号频谱。

源程序:

fs=44100;

[x,fs,Nbits]=wavread('E:

\GQQQ\leo');

derta_fs=fs/length(x);

t=0:

1/44100:

(length(x)-1)/44100;

sound(x,fs);%对加载的语音信号进行回放

figure

(1)

plot(t,x)%做原始语音信号的时域图形

title('原始语音信号');

xlabel('timen');

ylabel('fuzhin');

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都有分布,主要集中在300—1200Hz,声音尖锐,是女生频谱。

男生:

频谱分析:

从200hz到1000hz都有分布,集中在300—1000Hz声音低沉,是男生频谱。

任务二(詹筱珊负责)

利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。

这里涉及到采样下重采样的问题,请大家思考如何去做。

源程序:

clear;

[y,fs,bits]=wavread('E:

\GQQQ\WOMAN');%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:

\GQQQ\leo');%读取声音文件

derta_fs=fs/length(z);

x=z(:

1);%读入的y矩阵有两列,取第1列

y1=voice(x,1.5);%调整voice()第2个参数转换音调,>1降调,<1升调,y1为x转换后的声音

w=1.5;

F=w*fs;%w>1为快放,w<1为慢放

sound(y1,F)

N=length(x);M=length(y1);

n=0:

N-1;m=0:

M-1;

X=fft(x);Y=fft(y1);%傅里叶变换

T=1/fs;T1=1/(fs*w);

f=n/N*fs;f1=m/M*fs*w;

t=n*T;t1=m*T1;

figure;

subplot(2,1,1);

plot(t,x);

xlabel('t/s');ylabel('幅值');title('转换前的波形');

subplot(2,1,2);

plot(t1,y1);

xlabel('t/s');ylabel('幅值');title('转换后的波形');

figure;

subplot(2,1,1);

plot([-fs/2:

derta_fs:

fs/2-derta_fs],abs(fftshift(X))*2/N);

xlabel('frequency/Hz');ylabel('幅值');title('转换前的频谱');

subplot(2,1,2);

plot([-fs/2:

derta_fs:

fs/2-derta_fs],abs(fftshift(Y))*2/N);

xlabel('frequency/Hz');ylabel('幅值');title('转换后的频谱');

快放:

快放之后时间缩短。

慢放:

慢放之后时间变长。

倒放

fs=22050;

[x,fs,Nbits]=wavread('E:

\GQQQ\leo');

t=0:

1/22050:

(length(x)-1)/22050;%对加载的语音信号进行回放

y=flipud(x)%对加载的语音信号实现翻转函数

figure

(1)

subplot(2,1,1);

plot(x);%声音的时域波形

title('原声音的波形');

subplot(2,1,2);

plot(y);

title('倒放后声音的波形');

wavplay(y,fs);

回声:

[y,fs,nbits]=wavread('E:

\GQQQ\WOMAN');

x=y(:

1);

z=[zeros(50000,1);x];%延时50000个点

x1=[x;zeros(50000,1)];%使原声音长度与延时后相等

y1=x1+0.4*z;%原声+延时衰减

figure

(2)

subplot(2,1,1);

plot(x);%声音的时域波形

title('原声音的波形');

subplot(2,1,2);

plot(y1);

title('加入回声的波形');

sound(5*y1,fs,nbits);

男声转换为女声

[y,fs,nbits]=wavread('E:

\GQQQ\leo');%读取声音文件

x=y(:

1);%读入的y矩阵有两列,取第1列

y1=voice(x,0.71);%调整voice()第2个参数转换音调,>1降调,<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