资源描述:
《拓展作业之二—音频信号采集与频谱分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、拓展作业之二音频信号的采集及频谱分析一.目的rti于音频信号是一种连续变化的模拟信号,而计算机只能处理和记录二进制的数字信号,因此,由口然咅而得的咅频信号必须经过采样,量化和编码,变成二进制数据后才能送到计算机进行再编辑和存贮。本作业的目的:1、掌握用声咅编辑工具软件录制Wav文件的方法;2、对音频信号波形进行分析,认识;3、以不同的采样率采样生成Wav文件,并试听回放效果,作出比较,以此体会采样定理的内容。二原理如果对某一模拟信号进行采样,则釆用后可述原的最高信号频率只有采样频率的一半或者只要采样频率高于输入信号最高频率的两倍就能从采样信号序列重构原始信号,三个标准的采样频率分别为:44」
2、kHz,22.05kHz,11.025kHz。量化和编码都是由声卡自动完成。数字咅频产生的数据一般用Wav文件格式存储,以“.wav”作为文件扩展名。Wav格式是Windows下通用的数字咅频标准。三.内容1.音频卡配有话筒输入,线性输入接口,数字音频源可以是话筒,收录音机和CD唱片;选择不同的采样率,生产Wave文件。利用计算机上的录咅机(具体位置是在开始/程序/附件/娱乐)录下一段自己的讲话声音,时间约2秒。将录音机的属性调为44.1kHz,16比特,双声道。如此录下的语音信号当然是数字信号,但为了方便,我们假设它是模拟的语音信号。2.采用M3(13b辅助完成,下面先介绍几个成员函数:[
3、x,fs,bits]=wavreadCfilename')这是一个Matlab中读取wav文件的数据的函数。其中的x表示一长串的数据,一般是两列(立体声);fs是该wav文件在采集时用的采样频率;bits是指在进行A/D转化时用的量化位长(一般是8bits或16bits)o[d]=ITl(w,l)这是mallab中fft函数的一种输入输出形式。w是一列波形数据;1是指示用多少点的fft,我们应该选择2的乘方的数(如16,128,1024等),因为这样就可以使用优化的蝶形算法;d是频域的输出。由于HI(dft)的对称性,又输入的是实数,01的结果的复数序列是共辘反对称的,所以它们的模的大小对称
4、,一般来说只用取一半的数据就可以了。sound(w,fs,bits)和前面的wavread一样的参数表示,它将数列的数据通过声卡转化为声音。wavwrite(w,fs,'filename*)向一个由字符串filename所指定的文件中写入WAVE文件。通过fs参数指定以赫兹为单位的数据文件的取样率。1.可参照步骤如下:步骤一用麦克录一段声咅存为Wav文件作为分析的对象;步骤二用Matlab进行分析[x,fs,bits]二wavreadCcjlu.wav');sound(x,fs,bits);y=x(:,l);%%因为x有两列,这里用其中的一列來进行富氏变化%%看一下要处理的数据的大小size
5、(y)%ans=993631%数据量很大figurepiot(y);[k]二fft@262144);%%对其进行fft,点数为262144(2八18)figureplot(abs(k));%%显示频域的幅值从上图可以看岀它是以X二262144/2对称的。[in,i]=max(abs(y))m=0.4378i=44091最大值在44091的位置上,它代表的频率和时域的釆样时间有关,相邻的两点之间的距离为仁l/(NXTs)。N是离散富氏变换用的点数,Ts是釆样的时间,前面在读取wav文件时得到了采样频率fs=l/Ts。F=44091/262144*fs%可得到F=7.4173e+003,主频即为
6、7.417kHz由图上可知除了44091—点外,在坐标16000^23000之间还有一个峰值。[m,i]=max(abs(y(16000:23000)))m=0.0198i=5924从而知道该波的频率为(16000+5924)/262144*fsans=3.6882e+003即为3688赫兹,这样我们就分析了该声波的主要频谱。步骤三既然我们知道的它的频谱,我们就可以反演它的时域值。当然可以使用傅氏反变换,但这里我们利用刚才分析的两个主要的冲击峰值來重构。t二[0:0.0001:1];%%在一秒钟内采样一万次p二[sin(2*pi*7417*t)*l+sin(2*pi*3688*t)*(2/4
7、4)]*0.18;%%包括两个正弦波的叠加(2/44)是两个波幅度的比由于没有考虑相位和其他的频谱分量,所以波形和原来的波形相去甚远,但大体的频率是没有错的。听一听sound(p,10000);步骤四重复步骤一,用不同的采样率录制Wav文件,然后试听其效果,分析它们的差别的原因。