《多采样率数字信处理课件》由会员分享,可在线阅读,更多相关《多采样率数字信处理课件(19页珍藏版)》请在金锄头文库上搜索。
1、第第8 8章章 多采样率数字信号处理多采样率数字信号处理MATLAB数字信号处理数字信号处理主主 要要 内内 容容 抽取;抽取; 内插;内插; 抽取和内插的多级设计;抽取和内插的多级设计; 任意因子的抽样率转换器设计。任意因子的抽样率转换器设计。 MATLAB数字信号处理数字信号处理引言引言 在现代数字系统中,随着对多种采样率数据处理需求的日益在现代数字系统中,随着对多种采样率数据处理需求的日益增长,出现了数字信号处理的一个新的分支增长,出现了数字信号处理的一个新的分支多采样率信号多采样率信号处理。多采样率处理中的两个主要操作是抽取和内插,它们能处理。多采样率处理中的两个主要操作是抽取和内插,
2、它们能够方便的改变数据速率。抽取降低采样率,有效的压缩数据,够方便的改变数据速率。抽取降低采样率,有效的压缩数据,只保留所希望的信息;内插则增加采样率。只保留所希望的信息;内插则增加采样率。 多采样率处理具有很多优点,在现代数字系统中得到越来越多采样率处理具有很多优点,在现代数字系统中得到越来越多的应用。实现数字信号采样率转换的原始方法是先将数字信多的应用。实现数字信号采样率转换的原始方法是先将数字信号转变成模拟信号,再按新的抽样率进行抽样得到新的数字信号转变成模拟信号,再按新的抽样率进行抽样得到新的数字信号。数号。数 模模 数转换过程中会引入误差,如量化误差和混数转换过程中会引入误差,如量化
3、误差和混叠误差等,导致信号失真。由于信号已经数字化了,可以使用叠误差等,导致信号失真。由于信号已经数字化了,可以使用多采样率变换的技术直接在数字域中进行采样率的变换,避免多采样率变换的技术直接在数字域中进行采样率的变换,避免信号的失真,节省信号处理的环节。多采样率处理是一种有效信号的失真,节省信号处理的环节。多采样率处理是一种有效改变数字信号抽样频率的方法,它的引人之处在于充分发挥了改变数字信号抽样频率的方法,它的引人之处在于充分发挥了传统数字信号处理的能力。传统数字信号处理的能力。 MATLAB数字信号处理数字信号处理1 1、抽取器、抽取器基本抽样率转换及基本抽样率转换及MATLABMATL
4、AB实现实现分析抽取对序列频谱的影响分析抽取对序列频谱的影响 抽取就是把原始采样序列每隔抽取就是把原始采样序列每隔D-1D-1点取点取一个值,形成一个新的序列一个值,形成一个新的序列MATLAB数字信号处理数字信号处理由于由于 中除了中除了m m为的整数倍处不为零,其他部分均为零,为的整数倍处不为零,其他部分均为零,所以上式可以写为所以上式可以写为把把 代入得到抽取序列的序列傅氏变换为代入得到抽取序列的序列傅氏变换为 基本抽样率转换及基本抽样率转换及MATLABMATLAB实现实现MATLAB数字信号处理数字信号处理抽取序列抽取序列 的频谱为抽取前序列的频谱经过频移和的频谱为抽取前序列的频谱经
5、过频移和D D倍倍展宽后的展宽后的D D个频谱的叠加之和个频谱的叠加之和 抽取前后抽取前后(D=2)(D=2)的的频谱结构的变化频谱结构的变化 抽取前后抽取前后(D=4)(D=4)的的频谱结构的变化频谱结构的变化 基本抽样率转换及基本抽样率转换及MATLABMATLAB实现实现MATLAB数字信号处理数字信号处理为了防止为了防止频谱混叠频谱混叠一般在抽一般在抽样前把序样前把序列通过一列通过一个过渡带个过渡带陡峭且截陡峭且截止频率为止频率为 的数的数字滤波器字滤波器进行滤波进行滤波, ,然后再然后再进行抽取进行抽取 基本抽样率转换及基本抽样率转换及MATLABMATLAB实现实现先滤波后抽先滤波
6、后抽取取(D=4)(D=4)的的频谱变化频谱变化 MATLAB数字信号处理数字信号处理基本抽样率转换及基本抽样率转换及MATLABMATLAB实现实现【例【例8-18-1】设序列】设序列 ,用,用MATLABMATLAB比比较较3 3倍抽取前后的频谱特性。倍抽取前后的频谱特性。 图图8-68-6MATLAB数字信号处理数字信号处理基本抽样率转换及基本抽样率转换及MATLABMATLAB实现实现 由图由图8-68-6可以观察到未经过滤波的序列在抽取后有频谱混叠可以观察到未经过滤波的序列在抽取后有频谱混叠的现象。如果经过一个抗混叠滤波器后再进行抽取则可以减轻的现象。如果经过一个抗混叠滤波器后再进行
7、抽取则可以减轻混叠现象。混叠现象。 图图8-78-7图图8-78-7中虚线中虚线是未经滤波是未经滤波直接抽取后直接抽取后的频谱的频谱, ,其中其中具有明显的具有明显的频谱混叠。频谱混叠。实线为经过实线为经过滤波后再抽滤波后再抽取的频谱取的频谱, ,则混叠得到则混叠得到很大的抑制很大的抑制. .因此一般在抽取前要先进行滤波以抑制频谱混叠因此一般在抽取前要先进行滤波以抑制频谱混叠. .MATLAB数字信号处理数字信号处理2 2、内插器、内插器内插器和抽取器的作用正好相反,它在两个原始序列的样点之内插器和抽取器的作用正好相反,它在两个原始序列的样点之间插入间插入I-1I-1个值。设原始序列为个值。设
8、原始序列为 ,则内插后的序列为,则内插后的序列为基本抽样率转换及基本抽样率转换及MATLABMATLAB实现实现内插过程内插过程 MATLAB数字信号处理数字信号处理由于由于 除了除了m m为为I I的整数倍处为的整数倍处为 外,其余都为零,外,其余都为零,所以有所以有基本抽样率转换及基本抽样率转换及MATLABMATLAB实现实现分析内插的序列频分析内插的序列频谱与原始序列的频谱与原始序列的频谱之间的关系谱之间的关系 代入代入 得到得到内插前后内插前后(I=2)(I=2)的的频谱结构的变化频谱结构的变化 MATLAB数字信号处理数字信号处理完整的内插器完整的内插器的结构框图的结构框图 基本抽
9、样率转换及基本抽样率转换及MATLABMATLAB实现实现内插前后的频域和时域的对比内插前后的频域和时域的对比 MATLAB数字信号处理数字信号处理 当抽取倍数当抽取倍数D D或者内插倍数或者内插倍数I I比较大时,所需要的低通滤波器的阶数比较大时,所需要的低通滤波器的阶数非常高,在实际中较难实现。非常高,在实际中较难实现。 设序列的采样频率为设序列的采样频率为1MHz1MHz,抽取倍数,抽取倍数D=500D=500,抽取后的采样频率为,抽取后的采样频率为2000Hz2000Hz,信号带宽为,信号带宽为500Hz500Hz。 假设滤波器的阻带最小衰减为假设滤波器的阻带最小衰减为60dB60dB
10、,选择布莱克曼窗的,选择布莱克曼窗的FIRFIR滤波器。滤波器。过渡带宽度为过渡带宽度为500Hz500Hz,根据布莱克曼窗的性质可以计算出,根据布莱克曼窗的性质可以计算出N=11000,N=11000,则这样则这样大阶数的滤波器在实际中很难实现。大阶数的滤波器在实际中很难实现。 抽取器和内插器的多级设计及抽取器和内插器的多级设计及MATLABMATLAB实现实现 可以采用多级抽取的方法克服滤波器阶数过高的问题。在上例的条可以采用多级抽取的方法克服滤波器阶数过高的问题。在上例的条件下,采用两级抽取的结构,有两级抽取中滤波器的频谱件下,采用两级抽取的结构,有两级抽取中滤波器的频谱 MATLAB数
11、字信号处理数字信号处理 在两级抽取的结构中,首先对序列抽取在两级抽取的结构中,首先对序列抽取5050倍,然后再抽取倍,然后再抽取1010倍,同样达到抽取倍,同样达到抽取500500倍的结果。经过第一次抽取采样频率倍的结果。经过第一次抽取采样频率下降到下降到20kHz20kHz,经过第二次抽取采样率下降到,经过第二次抽取采样率下降到2kHz2kHz。假设两次。假设两次抽取时的滤波器仍旧采用布莱克曼窗的抽取时的滤波器仍旧采用布莱克曼窗的FIRFIR滤波器,则第一次滤波器,则第一次抽取的滤波器阶数为抽取的滤波器阶数为578,578,第二次抽取的滤波器阶数为第二次抽取的滤波器阶数为220220。二。二
12、级抽取的结构总的滤波器的阶数为级抽取的结构总的滤波器的阶数为798798,而采用一级抽取结构,而采用一级抽取结构要的滤波器的阶数达到了要的滤波器的阶数达到了1100011000阶。阶。 抽取器和内插器的多级设计及抽取器和内插器的多级设计及MATLABMATLAB实现实现 对于内插,在插值后的序列也需要经过低通滤波器。和抽对于内插,在插值后的序列也需要经过低通滤波器。和抽取的分析类似,在内插中采用多级结构同样可以降低滤波器的取的分析类似,在内插中采用多级结构同样可以降低滤波器的阶数,获得较好的滤波特性。阶数,获得较好的滤波特性。 【例【例8-38-3】设有序列】设有序列采样频率为采样频率为1MH
13、z1MHz,按照两级抽取对序列进行,按照两级抽取对序列进行500500倍的倍的抽取,分析序列在每级抽取后的频谱。抽取,分析序列在每级抽取后的频谱。 MATLAB数字信号处理数字信号处理抽取器和内插器的多级设计及抽取器和内插器的多级设计及MATLABMATLAB实现实现图图8-14 8-14 两级抽取中序列幅度谱的变换两级抽取中序列幅度谱的变换a)a)原始序列的原始序列的FFT b)FFT b)第一次抽取后序列的第一次抽取后序列的FFT c)FFT c)第二次抽取后序列的第二次抽取后序列的FFT FFT 图图8-148-14(a a)为原始序列做)为原始序列做2000020000点点FFTFFT
14、的结果,由于序列太长,所的结果,由于序列太长,所以只能显示出大概的形状。图(以只能显示出大概的形状。图(b b)为)为5050倍抽取后的序列做倍抽取后的序列做424424点点FFTFFT的的结果,由于做了结果,由于做了5050倍的抽取,所以频谱展宽了倍的抽取,所以频谱展宽了5050倍,此时的幅度谱基本倍,此时的幅度谱基本能看出形状。图(能看出形状。图(c c)为第二次抽取)为第二次抽取1010倍后的序列做倍后的序列做8888点点FFTFFT的结果,此的结果,此时的采样率已经降到了时的采样率已经降到了2000Hz2000Hz,频谱在图(,频谱在图(b b)的基础上继续展宽)的基础上继续展宽101
15、0倍,倍,频谱的细节已经非常清晰了。频谱的细节已经非常清晰了。 MATLAB数字信号处理数字信号处理抽取器和内插器的多级设计及抽取器和内插器的多级设计及MATLABMATLAB实现实现。 图图8-158-15为例为例8-38-3中两级抽取中所用的低通滤波器的幅中两级抽取中所用的低通滤波器的幅度谱。需要注意的是,为了观察方便两个子图中的横坐标度谱。需要注意的是,为了观察方便两个子图中的横坐标的显示范围都不是的显示范围都不是 . .图图8-15 8-15 两级抽取的滤波器的幅度谱两级抽取的滤波器的幅度谱a)a)第一次抽取的滤波器的幅度谱第一次抽取的滤波器的幅度谱b)b)第二次抽取的滤波器的幅度谱第
16、二次抽取的滤波器的幅度谱 MATLAB数字信号处理数字信号处理经常用到任意因子的抽样率转换的问题。经常用到任意因子的抽样率转换的问题。假设任意因子抽样率的抽取倍数为假设任意因子抽样率的抽取倍数为 , ,通过先进行通过先进行I I倍内插然后进行倍内插然后进行D D倍抽取来实现倍抽取来实现. . 任意因子抽样率转换器设计及任意因子抽样率转换器设计及MATLABMATLAB实现实现两个级联的低通滤波器和工作在相同的采样频率两个级联的低通滤波器和工作在相同的采样频率 下,因此下,因此可以用一个滤波器来代替。要求替代的滤波器的频率特性满足可以用一个滤波器来代替。要求替代的滤波器的频率特性满足即替代滤波器
17、的截止频率为即替代滤波器的截止频率为 和和 截止频率的最小值截止频率的最小值. .MATLAB数字信号处理数字信号处理任意因子抽样率转换器设计及任意因子抽样率转换器设计及MATLABMATLAB实现实现 MATLAB MATLAB提供了函数提供了函数resampleresample用于采样率的变换用于采样率的变换, ,它它可以在一步中完成任意采样率的变换。该函数的调用格可以在一步中完成任意采样率的变换。该函数的调用格式为式为 其中其中x x为原始序列为原始序列,y,y为采样率变换后的序列为采样率变换后的序列,I,I为内插的为内插的倍数倍数,D,D为抽取的倍数。在变采样率的过程中需要一个低为抽取
18、的倍数。在变采样率的过程中需要一个低通滤波器通滤波器, ,在该函数中自动采用了低通滤波器在该函数中自动采用了低通滤波器, ,它是按照它是按照等波动最优化原理设计的等波动最优化原理设计的, ,因此使用者可以省去滤波器因此使用者可以省去滤波器设计的工作。设计的工作。【例【例8-48-4】设有序列】设有序列采样频率为采样频率为1MHz1MHz,把采样频率转换为,把采样频率转换为750kHz750kHz。 MATLAB数字信号处理数字信号处理任意因子抽样率转换器设计及任意因子抽样率转换器设计及MATLABMATLAB实现实现由图由图8-178-17可知采样速率变换后的序列长度为可知采样速率变换后的序列长度为7575,原始序列长度,原始序列长度为为100100,符合原始采样频率,符合原始采样频率1MHz1MHz,采样速率变为,采样速率变为750kHz750kHz的要求。的要求。 图图8-178-17