1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,DSP,应用技术,MATLAB,举例,第一章例子,见书第,8,至,9,页(,1.m,),1,、用,MATLAB,打开一个,Windows,下的标准声音文件:“,WLS.Wav,”文件,2,、在,MATLAB,中对“,WLS.Wav,”文件进行操作,3,、设置工作空间为:“,D:DSPDSPEx,1,”,第二章例子,例,2.2.2,画出以下各序列在给定区间的波形,(a),x(n,)=1.5*,(n+1)-,(n-3)-4n5,(b),x(n,)=,nu(n,)u(n-8)-10e,xp(-0.3(n-10)u
2、n-10)u(n-16)0n20,(c),x(n,)=cos(0.07,n,)+0.2w(n),0n30,其中,w(n,),为具有零均值的单位方差的高斯随机序列,(d),求,(b),中函数,x(n,),的能量,E(n,),程序,hc222,,需要调用,impseq.M,与,stepseq.M,第二章例子,例,2.3.4,和,2.3.5,设,x=3,-3,7,0,-1,5,2;,nx,=-4:2;,h=2,3,0,-5,2,1;,nh,=-1:4;,求其卷积,y(n,),。,程序,hc234,hc235,,调用,convwthn.M,其中,hc234,为手工计算,画出计算过程,其中,hc235
3、为利用,MATLAB,程序中的卷积函数计算卷积,注意:卷积结果的长度为,N1,N2,1,第三章例子,例,3.2.5,求序列,x(n,)=1,3,5,3,1,的,DTFT,,画出它在,=-88,范围内的频率特性。并,把,x(n,),的位置零点左右移动,讨论时移对,DTFT,的影响。,计算公式为:,程序,hc325,说明:,1,、序列的,DTFT,是连续函数;,2,、序列的,DTFT,是周期函数,;,3,、实序列的,DTFT,具有对称性。,4,、信号在,时间轴上的平移不影响其,DTFT,的幅频特性,只影响它的相频特性。,5,、,时域对称的序列。它具有相位随频率线性变化的特点。对称中心所处的位置决
4、定了相频特性的斜率的大小。,第三章例子,例,3.5.1,求,x=2,-1,1,1,的离散傅立叶变换。并画到图上,与其,DTFT,比较。,其,DTFT,已经在程序,hc324,中求出,本例程序,hc351,例,3.5.2,:重做例,3.5.1,,频谱取,64,点。(尝试改变补零的点数),程序为,hc352,第四章例子,例,4.3.2,考虑长度为,11,的,矩形窗函数,(,关于,Y,轴对称,需循环移位,),序列,计算其频谱。,解:,假如选,N=20,作为重复周期,则要在序列后面补,9,个零,。使用,FFT,时,我们必须按,N=20,的周期延拓序列中取从,n=0,到,19,的主值部分,因此,FFT,
5、的输入为,x=ones(1,6),zeros(1,N-11),ones(1,5),在编写程序时,要准备给出不同的,N,进行比较。,所以程序,hc432,的写法应能适用于不同的,N,。,第四章例子,例,4.5.4,计算定义在全部,t,上的,xa(t,)=cos5t,的频谱,它的理论频谱是:,它包含了权重为,的位于,=,5,上的两个脉冲函数。,解:,在计算机计算中,正余弦函数必须截断为有限长度,L,。信号,cos5,t,的带宽限制于,5,。纯理论地看,只要采样周期小于,/,5=0.63,秒,就不会发生频率混叠。然而如果把,cos5t,截断为长,L,的信号,则它的频谱就不再是有限带宽了,所以必须采用
6、更小的采样周期,任选,T,0.1,,并选,N,50,,得到,L,TN,5,。按此来截断信号。,9,9.2,语音量化噪声的改善,脉冲编码调制,(Pulse Code ModulationPCM),是把模拟信号量化为二进制数的最简单的方法。以,N,个脉冲表示,N,位二进制数,以脉冲的有无判断它是,0,或,1,。它也是用数字方式传输或存贮信号的常用方法之一。,PCM,被广泛应用于电话通信和利用无线电传输的遥测系统中。,通过电话线传输的语音信号频带限于,4kHz,以下。因此其采样频率取,8KHz(,样本数,/,秒,),,并用,N,位二进制序列表示它的值,每个样本量化为,2,N,个电平之一。所以,传输数
7、字化语音信号所要求的速率为每秒,8000N,位。,10,语音量化噪声的改善,量化处理的数学模型为,x,q,(n,)=,x(n)+q(n,)(9.2.1),其中,x,q,(n,),表示,x(n,),的量化值,,q(n,),表示量化误差,将其看作一加型噪声。假设采用的是均匀的量化器,则可用如下均匀概率密度函数,p(q,),统计描述量化噪声特性,:,(9.2.2),其中,量化步长为,=2,N,。量化误差的均方值为,:,(9.2.3),11,语音量化噪声的改善,用分贝来度量的噪声均方值为,:,(9.2.4),可以看出,上述的量化器每增加一位,量化噪声减小,6dB,,高质量语音要求每个样本至少量化为,1
8、2,位,因此传送速率至少为,96000,位,/,秒。,最大幅度为,V,伏的,N,位(不含符号位)二进制,A/D,变换器的数学模型建立如下。它把电压,V,分解为,2,N,-1,份,故量化步长为,V/(2,N,-1),,得出二进制量化子程序,bqtize,。,12,语音量化的子程序,function y=,bqtize(x,N,V,),if,nargin,3 V=,max(abs(x);end,%V,缺省取最大,x,ax=,abs(x,);%,去掉符号,deltax,=V/(2N-1);%,求量化步长,xint,=fix(ax./deltax+0.5);%x,的量化整数,y=,sign(x,).*
9、xint,.*,deltax,;%,恢复量化原值,这个,A/D,变换子程序的输入是连续模拟电压,x,,输出则是量化了的模拟电压,y,。均匀量化器在信号的整个动态范围中的量化步长相同,所以量化噪声均方值不变。,13,语音量化噪声的改善,均匀量化器在信号的整个动态范围中的量化步长相同,所以量化噪声均方值不变。然而,语音信号的特性是小幅度比大幅度出现得频繁。对小信号而言,量化噪声使信噪比大大下降。解决的途径之一是用非均匀量化器。不过在技术上制造非均匀量化器的芯片是困难的。,得到非均匀量化器特性的另一个方法是用压缩,扩张器。可先使信号通过压缩幅度的非线性器件,后面再接一均匀量化器,再用逆向扩张幅度的
10、非线性器件恢复信号。如下图。,14,语音量化的压缩扩张器,压缩器的作用是把小信号放大,大信号缩小,所以把压缩器后的信号进行量化,小信号的信噪比就得到提高。而后通过扩张器,信号和量化噪声同时作非线性变换,信号复原为原来电平,小信号信噪比则保持较小的水平。,15,语音量化的压缩扩张器,在我国的通信系统中使用的对数压缩器,(,称为,律压缩器,),具有如下输入输出幅度特性,:,其中,,x,是归一化输入,,y,是归一化输出,,sign(.),是符号函数,,=255,是控制压缩特性的参数。,由量化数字信号恢复模拟信号时,逆关系,律为,:,16,语音量化的压缩扩张器,可以用,MATLAB,把压缩器和扩张器用
11、函数程序,mulawcom,和,mulawexp,来表示,,例如,把压缩器函数程序列写如下:,function y=,mulawcom(x,mu,V,),if,nargin,3|V,max(abs(x,),V=,max(abs(x,);,end,y=V/log(1+mu)*log(1+mu/V*,abs(x,).*,sign(x,);,对,律,扩张器和,A-,律的压扩器也可以按类似的方法写出相应的子程序。,17,语音量化压缩器的特性,例,9.2.1,画出,律和,A,律的压缩器输入输出曲线。,解:写出如下的,MATLAB,程序,hc921,x=0:0.01:1;,y=mulawcom(x,255
12、1);,y1=Alawcom(x,87.56,1);,plot(x,y,x,y1,:);grid on,legend(mu,律,A,律,),运行此程序的结果见图,9.2.1,。,调用,Alawcom.m,和,mulawcom.m,。,18,语音量化压缩器的特性,19,语音量化噪声的改善,例,9.2.2,设某,A/D,变换器把最大输入为,5,伏的信号量化为四位二进制(不含符号位),要求用图形描写其输入输出关系,并画出其绝对误差和相对误差的曲线。,又若信号像图,9.2.1,那样经过压缩扩张器,则输入输出关系有何变化?,解:,A/D,变换器的数学模型为绝对量化函数,bqtize,,已经在前面得出。
13、利用这个函数,加上求绝对误差和相对误差的语句,可以方便地列出以下的,MATLAB,程序,hc922,。,调用,bqtize.m,和,mulawexp.m,20,语音量化的信噪特性对比,x=-5:0.01:5;%,输入自变量数组,xq,=bqtize(x,4,5);%,求量化输出,e=,x-xq,;,er,=,e./abs(x,);%,求相对误差,er,plotyy(x,xq,x,er,)%,画输出及误差曲线,plot(x,e,-.,linewidth,3),运行此程序所得曲线见图,9.2.3,左图。,如在第二条语句的前后分别加上压扩语句:,x1=mulawcom(x,255,V);%,信号经过
14、压缩器,yq,=mulawexp(xq,255,V);%,信号经过扩张器,则所得曲线见图,9.2.3,右图。,21,语音量化的信噪特性对比,22,语音量化的信噪特性对比,从左图中可以看出,在输入为,-55V,范围内,绝对量化误差,e,呈等幅锯齿波形式,其最大值恒定,因而其相对误差,er,在小的输入幅度,x,处急遽增大,超过了,1,。,由右图从中可以看出它的绝对误差随,x,的增加而增大,其相对误差则在整个输入范围内呈等幅锯齿波形式,最大不到,0.2,。因此量化误差,yq-x1,引起的信噪比将比不用压扩器有显著的提高。,23,9.4,在双音拨号中的应用,双音多频,(DTMFDual Tone Mu
15、lti Frequency),是用按键进行电话拨号的体制。它不单用在电话中,还可以用于传输十进制数据的其它通信系统中。,DTMF,也广泛应用于电子邮件和银行系统。,4,个低频频率表示四行,,3,个高频频率表示三列,两者的组合共可提供,4,3,12,个字符。包括,0,到,9,的十个数字,加上字符,*,和,#,。本节要讨论如何解决双音变为数字的问题。,24,在双音拨号中的应用,DTMF,通信系统是一个很典型的小型信号处理系统,它既有模拟信号的生成和传输部分(这要用到,D/A,转换);又有把它转为数字信号(这要用到,A/D,转换)并进行数字处理的部分;而为了提高系统的检测速度和降低成本,还开发了一种
16、特殊的,DFT,算法,称为,Goertzel,算法;这种算法既可以用硬件(专用芯片)、也可以用软件实现,所以,DTMF,系统的设计问题是理论与工程相结合的一个很好的典范。,25,在双音拨号中的应用,先研究双音信号的生成问题:,DTMF,的两个,音频可以用计算法或查表法产生。用计算法得到正弦波形的缺点是要占一些运算时间;查表法的速度较快,缺点是要占一定的存贮空间;,两个正弦波的数字样本按比例相加在一起。因为采样频率是,8KHz,,硬件必须每,125,毫秒输出一个样本。将这个叠合信号送到,D/A,变换器变换成模拟音频信号,通过电话线路传送到交换机。,26,在双音拨号中的应用,在接收端,将收到的模拟
17、音频信号进行,A/D,变换,恢复为数字信号,然后检测其中的音频频谱来确定所发送的数字。检测算法可以用,FFT,,也可用一组滤波器来提取所需频率。当要检测的音频数目比较少时,用滤波器组更节省硬件。,如果用,FFT,算法实现该,DFT,计算,计算量,(,复数乘法和加法,),是,N log,2,N,。好处是立即得到,DFT,的所有,N,个值,但至少要,N,个存储器。然而,如果只希望计算,DFT,的,K,个点,而,KFs/D,,已知,Fs=8000,,而根据最小相邻基频间隔(,73Hz,)大于,2D,的要求,,D limit,break,end%,查找列号,end,for r=1:4;,if,val(
18、r,)limit,break,end%,查找行号,end,disp,(,接收端检测到的号码为,setstr(tm(r,s-4),%,显示接收到的字符,42,在双音拨号中的应用,在信号处理工具箱版本,5.1,中,也给出了,Goertzel,算法的子程序,goertzel.m,。它的调用格式与,gfft,相似,不同在于第二变元,k,可以是数组。所以编程时可以省去一个,for,循环。另外它的,k,指的是,fft,的下标,所以它等于频率的,fft,编号加一。因此在程序,hc941,中,有波纹线的三行,for,循环语句可以换成语句,X=goertzel(x(1:N),k+1),。,第三段程序中门限值,limit,的设定与,Goertzel,算法所得的,|,H(k,)|,应得值有关,理想值是,N/2,,实际应略小些。若取,N,不同,此门限也必须修改。,






