2013年4月信号抽取的多相形式实现一、理论基础理论情况下对信号进行多速率处理时,要在信号的抽取之前和信号的插值之后进行信号的限带滤波。
因为抽取是信号频谱扩展的过程、插值是信号频谱压缩的过程,若不进行限带滤波,则抽取后信号频谱在周期延拓扩展的过程中将会引起频谱的混叠造成信号的改变,使信号信息产生变化;同理,插值的过程没有限带时,也将会使我们不感兴趣的冗余信息压缩进信号的频谱中,造成信号携带信息的改变,使信号失真。
理论框图如下:内插器及其框图表示但这显然不是最优化的处理方法:因为多速率信号处理的核心目的之一就是在不改变信号携带信息的条件下降低信号的流速率,以减轻对信号处理器件的运算速度的压力,来最大化的提高系统效能。
可理论框图中:滤波器分别放置在抽取器之前和内插器之后。
而这两个位置恰恰是信号流速率相较另一侧更高的一端,显然这会加大硬件的处理负担。
由于这次实验是对抽取进行验证所以下文内容只讨论抽取的结构优化过程。
我们通过对限带滤波器h[n]的Z变换进行分析,结构变化可以发现H(z)可以转化为如下形式:()()nn H z h n z +∞-=-∞=∙∑()()()1M nkMk n Hz zh nMk z-+∞--==-∞=+∑∑()()()nnkk n n E z e n zh nM k z +∞+∞--=-∞=-∞==+∑∑()()1M k Mkk Hz z Ez --==∑再根据,抽取与滤波器之间的恒等变换,可以把抽取系统转化等效的多相形式表示如下:可见等效结构中:滤波器的运算是在对信号进行抽取之后的,这就显而易见的降低了原信号的信号流速率,使后续对信号处理过程的运算量大大的降低了。
这就体现出了多相滤波形式的一大优势,并且还可以根据后续处理的要求,采取不同的多相形式来提高系统的效率,节省了系统的内部资源。
2.实验过程上一节对多相滤波形式的优势及实用性进行了分析和阐述。
这一节将对其实现过程进行叙述。
(作业题目:5.设计一个5路5:1多相减采样滤波器满足下面的参数要求:输入样值频率: 100kHz通带: 0-8kHz 带内波纹: 0.1dB阻带: 12-50kHz 阻带抑制: 60dB输出样值频率: 20kHz试设计一个滤波器,通过如下带外信号的1000个样本处理来测试带外抑制效果。
带外信号如下X1=exp(j*2*Pi(0:999)*21/100);画出多相滤波器对带外信号X1的时域响应以及它的幅频响应;构造一个带内及带外信号的合成信号,如下X2=X1+exp(j*2*Pi(0:999)*1.5/100);画出多相滤波器对带外信号X1的时域响应以及它的幅频响应.)1.滤波器设计由上一节可知:多相滤波形式中各个子道的滤波器实际为原抽取滤波器等效多相形式各个系数进行重构后所得到的滤波器。
所以,设计的核心还是要对原滤波器的性能、阶数、系数有确切的认识后才能进行。
在这里利用MATLAB中的滤波器设计工具fdatool按照题目所要求的滤波器性能进行设计,生成所需滤波器的参数。
设计的参数设置如图2所示,生成滤波器的系数如图1所示图1图2然后将滤波器多相形式中的每个子带滤波器的系数逐一获得,过程如下:h0=filter_coe(1:5:65);h1=filter_coe(2:5:66);h2=filter_coe(3:5:67);h3=filter_coe(4:5:68);h4=filter_coe(5:5:69);2.子带信号抽取然后利用downsample函数以及对信号自变量进行简单的移位得到每个子道的待处理信号,过程如下:y1=downsample(x2,5);t=t+1;y2=downsample(x2,5);t=t+1;y3=downsample(x2,5);t=t+1;y4=downsample(x2,5);t=t+1; %%%%%%%%%%%¶Ôÿ¸ö×ÓµÀµÄÐźŽøÐÐÐźÅÏàÓ¦µÄÑÓ³Ù%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%y5=downsample(x2,5); %%%%%%%%%%%¶Ô×ÓµÀÐźŽøÐÐ5±»³éÈ¡之后对每个子道的信号进行滤波处理(与多相滤波器系数进行卷积)过程如下:y1_filter=conv(y1,h0); %%%%%%%%%%¶Ôÿ¸ö×ÓµÀÐźÅÂ˲¨y2_filter=conv(y2,h1);y3_filter=conv(y3,h2);y4_filter=conv(y4,h3);y5_filter=conv(y5,h4);最后求和:y_sample_practical=y1_filter+y2_filter+y3_filter+y4_filter+y5_filter;得到抽取后的实际信号。
三、结果分析1.待抽取信号波形及频谱.2.利用decimate函数获得的理想抽样信号波形和频谱3.实际进行多相滤波时的波形及频谱分析:由于多相滤波器的性能肯定不是理想滤波器的性能,所以输出信号的反应能力需要一个逐渐“抬起”的过程。
但总体来看,与理想情况相比失真还是较小的。
程序:%%%%%%%%%%%%%%%%%%%%%%ÐźųéÈ¡Æ÷µÄ¶àÏàÂ˲¨ÑéÖ¤%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%clc;clear;t=0:999;x1=exp(j*2*pi*(t)*21/100); %%%´øÍâ¸ÉÈÅÐźÅx2=x1+exp(j*2*pi*(t)*1.5/100); %%%%´ý½µËÙÂÊÐźÅfigure(1); %%%Ô-ÐźŲ¨ÐÎÆµÆ×subplot(2,1,1);stem(x2);title('´ý²ÉÑùÐźŲ¨ÐÎ')xlabel('t');ylabel('x2')subplot(2,1,2);x2_dsample=decimate(x2,5);x2_fft=fft(x2);x2_jw=abs(x2_fft);plot(x2_jw);title('´ý²ÉÑùÐźÅÐÅºÅÆµÆ×');xlabel('w');ylabel('x2_jw');figure(2); %%%ÀíÏë²ÉÑùºóµÄ²¨ÐÎÆµÆ×subplot(2,1,1);stem(x2_dsample);x2_fft=fft(x2);title('ÀíÏë5±¶³éÈ¡ºóµÄÐźŲ¨ÐÎ')xlabel('t');ylabel('x2_ideal_sample')subplot(2,1,2);x2_s_fft=fft(x2_dsample);x2_djw=abs(x2_s_fft);plot(x2_djw);title('ÀíÏë³éÈ¡ºóµÄƵÆ×');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%filter_coe=[0.000970901370435345,0.000694455614508237,0.0003928052124 45594,-0.000402683462001256,-0.00155442824349306,-0.00267687592548342 ,-0.00323266620155247,-0.00274210445610719,-0.00103685309921385,0.001 55179338328282,0.00418360871213802,0.00573633456217277,0.005231467168 16728,0.00231297769666173,-0.00242022931618224,-0.00742000311708443,-0.0106122780749474,-0.0101573483478657,-0.00529778714829308,0.00305142354409011,0.0122725305661450,0.0187125784185694,0.0189314576071086,0 .0111519820961392,-0.00361629539195533,-0.0212646837287722,-0.0353458 965790170,-0.0388153305272291,-0.0262759448274400,0.00398464080046948 ,0.0488682379773236,0.100744427308079,0.149148670287429,0.183******** 0274,0.195884990563207,0.183478420440274,0.149148670287429,0.10074442 7308079,0.0488682379773236,0.00398464080046948,-0.0262759448274400,-0 .0388153305272291,-0.0353458965790170,-0.0212646837287722,-0.00361629 539195533,0.0111519820961392,0.0189314576071086,0.0187125784185694,0. 0122725305661450,0.00305142354409011,-0.00529778714829308,-0.01015734 83478657,-0.0106122780749474,-0.00742000311708443,-0.0024202293161822 4,0.00231297769666173,0.00523146716816728,0.00573633456217277,0.00418 360871213802,0.00155179338328282,-0.00103685309921385,-0.002742104456 10719,-0.00323266620155247,-0.00267687592548342,-0.00155442824349306, -0.000402683462001256,0.000392805212445594,0.000694455614508237,0.000 970901370435345;]h0=filter_coe(1:5:65);h1=filter_coe(2:5:66);h2=filter_coe(3:5:67);h3=filter_coe(4:5:68);h4=filter_coe(5:5:69); %%%%%%%%%%%%%%%%%%%%ÀûÓÃfdatool¹¤¾ßÉè¼Æ·ûºÏÒªÇóµÄÂ˲¨Æ÷£¬²¢Éù³ÆÂ˲¨Æ÷ϵÊý£¬ÕâÀïÊÇ67½×µÄFIRÂ˲¨Æ÷%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%ÒòΪÊÇ5±¶³éÈ¡£¬ËùÒÔ´ÓÉÏÊöµÄÂ˲¨Æ÷ϵÊýÖÐÑ¡³öÿһ¸ö×ÓµÀ¶àÏàÂ˲¨Æ÷µÄϵÊý£¬·Ö±ðΪh0,h1,h2,h3,h4;%%%%%%%%%%%%%y1=downsample(x2,5);t=t+1;y2=downsample(x2,5);t=t+1;y3=downsample(x2,5);t=t+1;y4=downsample(x2,5);t=t+1; %%%%%%%%%%%¶Ôÿ¸ö×ÓµÀµÄÐźŽøÐÐÐźÅÏàÓ¦µÄÑÓ³Ù%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%y5=downsample(x2,5); %%%%%%%%%%%¶Ô×ÓµÀÐźŽøÐÐ5±»³éÈ¡y1_filter=conv(y1,h0); %%%%%%%%%%¶Ôÿ¸ö×ÓµÀÐźÅÂ˲¨y2_filter=conv(y2,h1);y3_filter=conv(y3,h2);y4_filter=conv(y4,h3);y5_filter=conv(y5,h4);figure(3);subplot(2,1,1);y_sample_practical=y1_filter+y2_filter+y3_filter+y4_filter+y5_filter; stem(y_sample_practical);title('Éè¼Æ5±¶³éÈ¡ÔÙ½øÐжàÏàÂ˲¨ºóµÄ²¨ÐÎ');subplot(2,1,2);y_sample_practical_jw=fft(y_sample_practical);yabs=abs(y_sample_practical_jw);plot(yabs);title('Éè¼Æ5±¶³éÈ¡ÔÙ½øÐжàÏàÂ˲¨ºóµÄƵÆ×');。