信号与系统实验 基本信号的产生语音的读取与播放.docx
《信号与系统实验 基本信号的产生语音的读取与播放.docx》由会员分享,可在线阅读,更多相关《信号与系统实验 基本信号的产生语音的读取与播放.docx(10页珍藏版)》请在冰豆网上搜索。
![信号与系统实验 基本信号的产生语音的读取与播放.docx](https://file1.bdocx.com/fileroot1/2022-12/14/c65b3860-a370-44dc-a875-46f6b5d7ba34/c65b3860-a370-44dc-a875-46f6b5d7ba341.gif)
信号与系统实验基本信号的产生语音的读取与播放
《信号与系统》课程研究性实验记录1
姓名
学号
年级专业及班级
指导教师
提交日期
信号的时域分析(MATLAB仿真)
【目的】
(1)掌握基本信号及其特性,了解实际信号的建模。
(2)掌握基本信号的运算,加深对信号时域分析基本原理和方法的理解,并建立时频之间的感性认识。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB进行信号表示和信号运算。
【研讨内容】——基础题
题目1:
基本信号的产生,语音的读取与播放
1)生成一个正弦信号,改变正弦信号的角频率和初始相位,观察波形变化(可利用subplot分割图形窗口,同时绘制多个图对比观察),并听其声音的变化。
2)完成P72M2-3、M2-4、M2-6、M2-9(可适当参考P58-P66)
3)分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其时域波形。
【温馨提示】
(1)利用MATLAB函数wavread(file)读取.wav格式文件。
(2)利用MATLAB函数sound(x,fs)或者wavplay(x,fs)播放正弦信号和声音信号。
【仿真程序】
参考代码:
1生成一个正弦信号
A=1;w0=2*pi;phi=pi/6;
t=1:
0.001:
8;
xt=A*sin(w0*t+phi);
plot(t,xt)
sound(xt,1000)
2改变角频率
(1)增大角频率
A=1;w0=4*pi;phi=pi/6;
t=1:
0.001:
8;
xt=A*sin(w0*t+phi);
plot(t,xt)
3改变初始相位
(1)减小初始相位
A=1;w0=2*pi;phi=0;
t=1:
0.001:
8;
xt=A*sin(w0*t+phi);
plot(t,xt)
4分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其时域波形
女声[y,Fs,nbits]=wavread('youth.wav');
wavplay(y,Fs);
subplot(2,1,1)
plot(y)
t=0:
1/Fs:
(length(y)-1)*1/Fs;
subplot(2,1,2)
plot(t,y)
男声[y,Fs,nbits]=wavread('time.wav');
wavplay(y,Fs);
subplot(2,1,1)
plot(y)
t=0:
1/Fs:
(length(y)-1)*1/Fs;
subplot(2,1,2)
plot(t,y)
【仿真结果】
女声频谱图
男生频谱图
正弦信号波形图改变角频率波形图改变初始相位波形图
【结果分析】
提示:
应从以下几方面对结果进行分析:
(1)随着正弦信号角频率的变化,其波形有什么变化,听到的声音又有变化?
它们之间有什么关系?
频率越大波形越密集,声音更尖锐。
(2)男声和女声信号的时域波形有什么区别?
男声幅度比女声低。
【研讨内容】——提高题
题目2:
信号的基本运算(语音信号的翻转、展缩)
1)将原始音频信号在时域上进行延展、压缩,
2)将原始音频信号在时域上进行幅度放大与缩小,
3)将原始音频信号在时域上进行翻转,
【温馨提示】
1.把时间变为原来的a倍,即能压缩(a大于1)或延展(a小于1)为原来的a倍。
2.直接在原信号前乘以a,即能使幅度放大(a大于1)或缩小(a小于1)
3.使用flipud函数,实现信号翻转。
【仿真程序】
参考代码:
程序如下:
(1)原信号的2倍压缩
[x,fs,nbits]=wavread('youth.wav');
x1=x(1:
2:
end);wavplay(x1,fs)
plot(x1)
【仿真结果】
【结果分析】原信号压缩两倍后,音频效果速度变为原来的两倍,声音也变得更加尖锐。
完成P72M2-3、M2-4、M2-6、M2-9(可适当参考P58-P66)
M2-3:
(1)x(t)的mtlab函数:
functionyt=x(t)
yt=t.*(t>=0&t<=2)+2*(t>2&t<=3)-1*(t>3&t<=5);
(2)x(t)x(0.5t)x(2-0.5t)的波形图:
程序:
functionyt=x2_1(t)
yt=t.*(t>=0&2>t)+2*(t>=2&3>t)-1*(t>=3&5>t);end
%example2_3
t=-1:
0.01:
5;
subplot(3,1,1);
plot(t,x2_1(t));
title('x(t)');
axis([-1,6,-2,3]);
subplot(3,1,2);
plot(t,x2_1(0.5*t));
title('x(0.5*t)');
axis([-1,6,-2,3]);
subplot(3,1,3);
plot(t,x2_1(2-0.5*t));
title('x(2-0.5*t)');
axis([-1,6,-2,3]);
M2-4
functionyt=m(t)
yt=1*(1+t).*(t>=-1&t<=0);
end%example2_4
t=-3:
0.001:
3;
subplot(3,1,1);
plot(t,m(t));
axis([-2,2,-2,2]);
xt2=0.5*(m(t)+m(-t));
subplot(3,1,2);
plot(t,xt2);
axis([-2,2,-2,2]);
xt3=0.5*(m(t)-m(-t));
subplot(3,1,3);
plot(t,xt3);
axis([-2,2,-2,2]);
M2-6
%example2_4discrete-timesinusoidalsignal
K=0:
40;
xk=sin(0.1*pi*k);
stem(k,xk)
xk=sin(0.5*pi*k);
stem(k,xk)
xk=sin(0.9*pi*k);
stem(k,xk)
xk=sin(1.1*pi*k);
stem(k,xk)
xk=sin(1.5*pi*k);
stem(k,xk)
xk=sin(1.9*pi*k);
stem(k,xk)
M2-9
M2-9
(1)
代码:
k=-4:
7;x=[-3,-2,3,1,-2,-3,-4,2,-1,4,1,1];
stem(k,x)
(2)
(3)代码:
k=-12:
21;x=[-3,0,0,-2,0,0,3,0,0,1,0,0,-2,0,0,-3,0,0,-4,0,0,2,0,0,-1,0,0,4,0,0,1,0,0,-1];
subplot(2,1,1)
stem(k,x,'file')
title('3±¶ÄÚ²å')
t=-1:
2;
y=[-2,-2,2,1];
subplot(2,1,2)
stem(t,y,'file')
title('3±¶³éÈ¡')a
xis([-3,4,-4,4])
代码:
k=-4:
7;
x=[-3,-2,3,1,-2,-3,-4,2,-1,4,1,-1];
subplot(2,1,1)
stem(k+2,x,'file')
title('x[k+2]')
subplot(2,1,2)
stem(k-4,x,'file')
title('x[k-4]')
代码:
k=-4:
7
x=[-3,-2,3,1,-2,-3,-4,2,-1,4,1,-1];stem(-fliplr(k),fliplr(x),'file')title('x[-k]')