MATLAB举例

上传人:206****923 文档编号:54163073 上传时间:2018-09-08 格式:PPT 页数:42 大小:340KB
返回 下载 相关 举报
MATLAB举例_第1页
第1页 / 共42页
MATLAB举例_第2页
第2页 / 共42页
MATLAB举例_第3页
第3页 / 共42页
MATLAB举例_第4页
第4页 / 共42页
MATLAB举例_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《MATLAB举例》由会员分享,可在线阅读,更多相关《MATLAB举例(42页珍藏版)》请在金锄头文库上搜索。

1、DSP应用技术,MATLAB举例,第一章例子,见书第8至9页(1.m) 1、用MATLAB打开一个Windows 下的标准声音文件:“WLS.Wav”文件2、在MATLAB中对“WLS.Wav”文件进行操作3、设置工作空间为:“D:DSPDSPEx1”,第二章例子,例2.2.2画出以下各序列在给定区间的波形(a) x(n)=1.5*(n+1) - (n-3) -4n5(b) x(n)=nu(n) u(n-8) - 10exp(-0.3(n-10)u(n-10) u(n-16) 0n20(c) x(n)=cos(0.07n) + 0.2w(n) 0n30其中w(n)为具有零均值的单位方差的高斯随

2、机序列(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为利用MATLAB程序中的卷积函数计算卷积 注意:卷积结果的长度为N1N21,第三章例子,例3.2.5 求序列x(n)=1,3,5,3,1的DTFT,画出它在=-88范围内的频率特性。并把x(n)的位置零点

3、左右移动,讨论时移对DTFT的影响。计算公式为:程序hc325 说明: 1、序列的DTFT是连续函数; 2、序列的DTFT是周期函数 ; 3、实序列的DTFT具有对称性。 4、信号在时间轴上的平移不影响其DTFT的幅频特性,只影响它的相频特性。 5、时域对称的序列。它具有相位随频率线性变化的特点。对称中心所处的位置决定了相频特性的斜率的大小。,第三章例子,例3.5.1 求x=2,-1,1,1的离散傅立叶变换。并画到图上,与其DTFT比较。其DTFT已经在程序hc324中求出,本例程序hc351例3.5.2:重做例3.5.1,频谱取64点。(尝试改变补零的点数)程序为hc352,第四章例子,例4

4、.3.2 考虑长度为11的矩形窗函数(关于Y轴对称,需循环移位)序列,计算其频谱。 解:假如选N=20作为重复周期,则要在序列后面补9个零。使用FFT时,我们必须按N=20的周期延拓序列中取从n=0到19的主值部分,因此FFT的输入为x=ones(1,6),zeros(1,N-11),ones(1,5) 在编写程序时,要准备给出不同的N进行比较。 所以程序hc432的写法应能适用于不同的N。,第四章例子,例4.5.4 计算定义在全部t上的xa(t)=cos5t的频谱,它的理论频谱是: 它包含了权重为的位于=5上的两个脉冲函数。 解:在计算机计算中,正余弦函数必须截断为有限长度L。信号cos5t

5、的带宽限制于5。纯理论地看,只要采样周期小于/5=0.63秒,就不会发生频率混叠。然而如果把cos5t截断为长L的信号,则它的频谱就不再是有限带宽了,所以必须采用更小的采样周期,任选T0.1,并选N50,得到LTN5。按此来截断信号。,9,9.2 语音量化噪声的改善,脉冲编码调制(Pulse Code ModulationPCM)是把模拟信号量化为二进制数的最简单的方法。以N个脉冲表示N位二进制数,以脉冲的有无判断它是0或1。它也是用数字方式传输或存贮信号的常用方法之一。PCM被广泛应用于电话通信和利用无线电传输的遥测系统中。通过电话线传输的语音信号频带限于4kHz以下。因此其采样频率取8KH

6、z(样本数/秒),并用N位二进制序列表示它的值,每个样本量化为2N个电平之一。所以,传输数字化语音信号所要求的速率为每秒8000N位。,10,语音量化噪声的改善,量化处理的数学模型为xq(n) =x(n)+q(n) (9.2.1)其中xq(n)表示x(n)的量化值,q(n)表示量化误差,将其看作一加型噪声。假设采用的是均匀的量化器,则可用如下均匀概率密度函数p(q)统计描述量化噪声特性:(9.2.2)其中,量化步长为=2N。量化误差的均方值为:(9.2.3),11,语音量化噪声的改善,用分贝来度量的噪声均方值为:(9.2.4)可以看出,上述的量化器每增加一位,量化噪声减小6dB,高质量语音要求

7、每个样本至少量化为12位,因此传送速率至少为96000位/秒。最大幅度为V伏的N位(不含符号位)二进制A/D变换器的数学模型建立如下。它把电压V分解为2N-1份,故量化步长为V/(2N-1),得出二进制量化子程序bqtize。,12,语音量化的子程序,function y=bqtize(x,N,V) if nargin3 V=max(abs(x);end % V缺省取最大x ax=abs(x); % 去掉符号 deltax=V/(2N-1); % 求量化步长 xint=fix(ax./deltax+0.5); % x的量化整数 y=sign(x).*xint.*deltax; % 恢复量化原值

8、这个A/D变换子程序的输入是连续模拟电压x,输出则是量化了的模拟电压y。均匀量化器在信号的整个动态范围中的量化步长相同,所以量化噪声均方值不变。,13,语音量化噪声的改善,均匀量化器在信号的整个动态范围中的量化步长相同,所以量化噪声均方值不变。然而,语音信号的特性是小幅度比大幅度出现得频繁。对小信号而言,量化噪声使信噪比大大下降。解决的途径之一是用非均匀量化器。不过在技术上制造非均匀量化器的芯片是困难的。得到非均匀量化器特性的另一个方法是用压缩扩张器。可先使信号通过压缩幅度的非线性器件,后面再接一均匀量化器,再用逆向扩张幅度的非线性器件恢复信号。如下图。,14,语音量化的压缩扩张器,压缩器的作

9、用是把小信号放大,大信号缩小,所以把压缩器后的信号进行量化,小信号的信噪比就得到提高。而后通过扩张器,信号和量化噪声同时作非线性变换,信号复原为原来电平,小信号信噪比则保持较小的水平。,15,语音量化的压缩扩张器,在我国的通信系统中使用的对数压缩器(称为律压缩器)具有如下输入输出幅度特性:其中,x是归一化输入,y是归一化输出,sign(.)是符号函数,=255,是控制压缩特性的参数。由量化数字信号恢复模拟信号时,逆关系律为:,16,语音量化的压缩扩张器,可以用MATLAB把压缩器和扩张器用函数程序mulawcom和mulawexp来表示,例如把压缩器函数程序列写如下: function y=

10、mulawcom(x,mu,V) if nargin3 | 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,1); y1=Alawcom(x,87.56,1); plot(x,y,x,y1,:);grid on legend(mu律,A律)运行此程序的结果见图9

11、.2.1。调用Alawcom.m和mulawcom.m 。,18,语音量化压缩器的特性,19,语音量化噪声的改善,例9.2.2 设某A/D变换器把最大输入为5伏的信号量化为四位二进制(不含符号位),要求用图形描写其输入输出关系,并画出其绝对误差和相对误差的曲线。又若信号像图9.2.1那样经过压缩扩张器,则输入输出关系有何变化?解: A/D变换器的数学模型为绝对量化函数bqtize,已经在前面得出。利用这个函数,加上求绝对误差和相对误差的语句,可以方便地列出以下的MATLAB程序hc922。调用bqtize.m和mulawexp.m,20,语音量化的信噪特性对比,x=-5:0.01:5; % 输

12、入自变量数组 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); % 信号经过压缩器 yq=mulawexp(xq,255,V); % 信号经过扩张器 则所得曲线见图9.2.3右图。,21,语音量化的信噪特性对比,22,语音量化的信噪特性对比,从左图中可以看出,在输入为-55V范围内,绝对量化误差e呈等

13、幅锯齿波形式,其最大值恒定,因而其相对误差er在小的输入幅度x处急遽增大,超过了1。 由右图从中可以看出它的绝对误差随x的增加而增大,其相对误差则在整个输入范围内呈等幅锯齿波形式,最大不到0.2。因此量化误差yq-x1引起的信噪比将比不用压扩器有显著的提高。,23,9.4 在双音拨号中的应用,双音多频(DTMFDual Tone Multi Frequency)是用按键进行电话拨号的体制。它不单用在电话中,还可以用于传输十进制数据的其它通信系统中。DTMF也广泛应用于电子邮件和银行系统。4个低频频率表示四行,3个高频频率表示三列,两者的组合共可提供4312个字符。包括0到9的十个数字,加上字符

14、*和#。本节要讨论如何解决双音变为数字的问题。,24,在双音拨号中的应用,DTMF通信系统是一个很典型的小型信号处理系统,它既有模拟信号的生成和传输部分(这要用到D/A转换);又有把它转为数字信号(这要用到A/D转换)并进行数字处理的部分;而为了提高系统的检测速度和降低成本,还开发了一种特殊的DFT算法,称为Goertzel算法;这种算法既可以用硬件(专用芯片)、也可以用软件实现,所以DTMF系统的设计问题是理论与工程相结合的一个很好的典范。,25,在双音拨号中的应用,先研究双音信号的生成问题:DTMF的两个音频可以用计算法或查表法产生。用计算法得到正弦波形的缺点是要占一些运算时间;查表法的速

15、度较快,缺点是要占一定的存贮空间;两个正弦波的数字样本按比例相加在一起。因为采样频率是8KHz,硬件必须每125毫秒输出一个样本。将这个叠合信号送到D/A变换器变换成模拟音频信号,通过电话线路传送到交换机。,26,在双音拨号中的应用,在接收端,将收到的模拟音频信号进行A/D变换,恢复为数字信号,然后检测其中的音频频谱来确定所发送的数字。检测算法可以用FFT,也可用一组滤波器来提取所需频率。当要检测的音频数目比较少时,用滤波器组更节省硬件。如果用FFT算法实现该DFT计算,计算量(复数乘法和加法)是N log 2 N。好处是立即得到DFT的所有N个值,但至少要N个存储器。然而,如果只希望计算DF

16、T的K个点,而K N ,则直接计算可以节省很多内存。下面介绍的Goertzel算法就属于后者。,27,DFT的Goertzel算法,Goertzel算法利用相位因子Wnk的周期性,将DFT运算表示为线性滤波运算,由于WN - kN =1,可用该因子去乘DFT,则它是两个序列的卷积。一是长度为N的输入序列x(n),另一则是脉冲响应序列 可以看作x(n)通过具有该脉冲响应的滤波器。该滤波器在nN点的输出就是频点k处的DFT.,28,DFT的Goertzel算法,单位脉冲响应为hk(n)的滤波器的系统函数就是(9.4.4)式的z变换,容易求出为这个滤波器只有一个位于单位圆上频率为k=2k/N处的极点。Goertzel算法的好处不在于节省时间,而在于节省空间。如果只需要K个DFT样本,可以只用K个并行的单极点滤波器来分别计算这K个样本,这就可以大大节省硬软件资源。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号