dsp在通信系统中实现对三种音频信号的采样和分析的应用。
一、前言:数字信号处理(dsp)是一门涉及许多方面而又广泛应用于很多领域的学科,它是一种使用数学手段转换或提取消息,来处理现实信号的方法。随着信息时代和数字世界的到来,数字信号处理技术得到了迅速的发展,已经成为了一个极其重要的研究领域。
本次设计可以算是对于数字信号处理技术一个基础的应用实例,主要是通过matlab软件对现实中的音频信号进行采样以及分析研究。
二、设计目的:
通过此次课程设计,让我们能够更好地巩固和运用在数字信号课程中学习到的理论知识和实验方法,加强我们将理论知识化为实践技巧的能力,主要是熟悉和学习如何使用matlab对信号进行采集、截取、显示、存储和分析。
三、主要内容:
这次课程设计将对三种音频信号进行分析研究与相互比较,其中的两种信号是用matlab软件来录制的一段自己发出的声音和用汤匙敲击不锈钢杯的声音,然后再截取出它们的有效部分。另一种是从电脑里找的windows xp的开机启动声音。完成这三种信号的采集工作之后,就分别用音频分析软件spectrogram和matlab两种手段对它们进行分析研究和相互比较,得出相应的结论。
四、设计步骤:
1.采集声音信号。
windows xp开机启动的声音可直接由电脑中找出,这里主要是采集自己发出的声音和汤匙敲击不锈钢杯的声音。一般来说,我们采集声音信号最简便的方法就是直接使用windows自带的录音器。但为了帮助学习matlab,这里我们使用该软件来进行声音的录制。
下面就是录制自己发出的声音的一段程序:
fs=8000;
channel=1;
t=3;fprintf('°d',t);pause;
fprintf('.
x=w**record(t*fs,fs,channel,'double');
fprintf('án');
w**write(x,fs,'c:\program files\matlab\r2007a\work\')
fprintfpause
w**play(x,fs);
这里不同于一般的命令操作方式,而是采用的编程操作方式。即这段程序不是在命令窗口输入,而是录入到了程序编辑窗口,然后以。m为后缀保存在work目录下,最后在命令窗口输入文件名即可执行程序,按照文字提示进行语音信号的录制。
此次录制的语音信号是本人说的一句“uestc”。
要录制汤匙敲击不锈钢杯的声音只需将上面程序中的存储语句“w**write(x,fs,'c:\program files\matlab\r2007a\')
改为“w**write(x,fs,'c:\programfiles\matlab\r2007a\×÷w**')
。这样就完成了两种信号的采集工作,并将它们以w**格式存储到了matlab文件目录中。
下面用w**eread函数读出三种语音信号得到它们的时域波形图,程序如下:
x1=w**read(''
x2=w**read('×w**');
x3=w**read('windows xpú.w**');
subplot(3,1,1),plot(x1),title('uestc'),grid;
subplot(3,1,2),plot(x2),title('×grid;
subplot(3,1,3),plot(x3),title('windows xpú')grid;
得到的时域波形图为:
2.截取有效部分。
从上面的时域波形图中我们可以看到,由于matlab在录制过程中的误差、麦克风(或是文件)自身因素以及本人对时间掌握不准等原因,三种音频信号中或多或少都有一些无效的点。我们可以通过对上面的程序稍加改动来滤除掉信号中无效的点,截取中有效部分并存储起来。程序如下:
x1,fs1]=w**read(''5000,20000]);
subplot(3,1,1),plot(x1),title('uestc()'grid;
w**write(x1,fs1,'c:\program files\matlab\r2007a\work\uestc(')
x2,fs2]=w**read('×w**',[3500,23000]);
subplot(3,1,2),plot(x2),titlegrid;
w**write(x2,fs2,'c:\program files\matlab\r2007a\work\×÷
x3,fs3]=w**read('windows xpú.w**',[1,78000]);
subplot(3,1,3),plot(x3),title('window xpú()grid;
w**write(x3,fs3,'c:\program files\matlab\r2007a\work\windows xpú('
截取后的信号时域图像如下所示:
3.频谱分析。
这里我们分别用音频频谱分析软件spectrogram和matlab来对三种信号进行研究。
1) 真人声音:uestc。
用spectrogram软件打开文件“uesc(新).w**”得到分析图像如下所示:
因为我们录制声音的时候是单声道录制的,而spectrogram是一个双通道音频分析软件,所以得到的图像只有一半。由这个分析图像我们可以看出,声音的音色有变化但并不丰富,这也是一般人声音的基本特性。该信号大概可以分为五部分,对应于“uestc”的五个字母,各部分间断不是很大,说明声音比较连续,中间没什么明显停顿的地方。
再用matlab对信号实行fft变换得到其幅频响应曲线和相频响应曲线,程序如下:
x1=w**read('uestc().w**');
y=fftshift(fft(x1));
subplot(2,1,1);
plot(angle(y));title('à
subplot(2,1,2);plot(abs(y));title('·
grid;得到的信号频谱曲线如图所示:
由频谱图像我们可以看出,声音总体强度一般,有一定起伏。信号集中在某一频率附近,说明声音比较稳定,这与本人说话时的情况基本一致。
2) 物体碰撞声音:汤匙敲击不锈钢杯。
一样用spectrogram打开文件“汤匙敲击不锈钢杯(新)”得到分析图像如下:
与真人声音一样,由于单声道录制所以也只能得到一半的图像,声音的音色相较于真人声音更加单一,基本没有变化。在录制时汤匙一共敲击了五下不锈钢杯,由图像可以看出第二下和第四下比较突出,第五下只有一半,说明在敲击当中录制就停止了。信号各部分之间间断较大,说明有很明显的停顿过程。
只需将前面的fft变换程序中“x1=w**read('uestc().w**')
改为“x1=w**read('×w**')
即可得到该信号的频谱响应曲线:
由图像可以看出声音的强度起伏较大,说明了敲击的力度有大有小,这与实际情况也是一致的。同时信号频率分布较广,并没有像真人声音一样集中在某一频率附近,这也表示了物体碰撞的声音较难保持稳定。
3) 电脑合成声音:windows xp开机启动。
一样先用spectrogram打开文件“windows xp开机启动(新).w**”得到分析图像:
与前面两种音频信号不同,该声音在制作时是双声道合成的,所以我们可以得到整个分析图像。从图中可以看出声音十分连续,毫无停顿的地方,而且音色也十分丰富,这也体现了机器合成的声音相比于现实中真实声音的优势所在。
参照前面的方法同样得到信号的频谱响应曲线:
这里我们可以明显看出和前两种信号不同,合成的声音信号频谱十分清晰、完整、有规律,说明了音质较好,声音比较平滑清晰。而且信号在某一频率附近很集中,也体现了声音的稳定性很好。
五、结论。通过对于三种不同音频信号的分析研究以及相互比较,我们可以看出物体碰撞的声音最为单调,起伏很大,而且频率很不稳定,这也是其听起来比较刺耳的原因。电脑合成的声音在总体上的质量来说要明显好于现实中的两种声音,它具有清晰平滑的特性,再加上音色丰富多彩,使其听起来比较舒服。
真人的声音则介于二者之间,音色有变化,频率也有一定的稳定性。但其可塑性较强,可以通过一些训练来改善音质,让它接近于合成的声音。
这次实验是数字信号处理中的一个应用,涉及到的知识都比较基础,主要运用了课堂上所学的内容和网络上查阅的一些资料完成了对现实中的声音信号的采集、截取、显示、存储和分析。通过这次试验,对数字信号处理有了更加系统和全面的认识,对于其涉及到的一些方法和手段有了深入的了解。
DSP作业
51 以ya i1ixi为例,编写完整的。asm汇编源程序以及。cmd命令文件,写出程序注释,并叙述在ccs2.0集成开发环境下,调试程序的基本步骤。其中a和x的值由自己确定。解 title mpy mmregs 将存储映像寄存器导入列表。stack 10h 给堆栈段分配空间。bssa,5 将11个...
DSP作业
1 以y ax为例,编写完整的。asm汇编源程序以及。cmd命令文件,写出程序注释,iii1 并叙述在ccs2.0集成开发环境下,调试程序的基本步骤。其中a和x的值由自己确定。解 title mpy mmregs 将存储映像寄存器导入列表。stack 10h 给堆栈段分配空间。bssa,5 将11个...
DSP作业
第一章。1 什么是dsp?2.dsp芯片的特点有哪些?3.dsp采用改进的哈佛总线结构,画出改进的哈佛总线结构示意图。4.dsp中由哪些地址和数据总线组成多总线结构?5.dsp芯片的选型一般是从哪几个方面进行考虑?6.简述ti公司的dsp三大平台和它们各自的应用场合。7.dsp芯片发展趋势应该朝着哪...