资源描述:
《用czt求解系统函数零极点:算法说明及matlab程序演示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、求解变换的零、极点设是实序列,其变换一般是或的实系数有理分式。当的分子多项式和分母多项式的阶数很高时,分解因式求的零、极点就十分困难。在语音信号处理过程中,往往需要知道其变换极点所在的频率,利用CZT就能准确地测出来。具体的做法是:利用不同半径的同心圆,进行等间隔的采样,即令,,,改变,计算,由的峰点决定的零、极点:(3-31)由此可见,有两个零点,,;有两个极点,,。由上式还可以看出,通过长除,把展成的67次多项式的形式,根据,就可以得到的前68个数值,例如,,,这样,对长度的有限长序列,在平面的半径为、、、和等5个同心圆上,分别等间隔地采样个点
2、,利用CZT计算,如图3.29所示。由图可见,在半径为0.4、相角为处,出现峰值,对应于的极点,而在半径为0.8、相角为处,出现谷点,对应于的极点。这与式(3-31)的结果是一致的。可见CZT确能求解的零、极点。%G079.M%用Chirp-z变换求解系统函数的零极点%h_fig1=figure;set(h_fig1,'unit','normalized','position',[0.0,0.0,0.99,0.94]);set(h_fig1,'defaultuicontrolunits','normalized');h_text1=uicontro
3、l(gcf,'Style','text','Position',[0.05,0.90,0.92,0.07],...'String','用Chirp-z变换求解系统函数的零极点','FontName','黑体','ForegroundColor','r',...'FontSize',26,'FontWeight','Bold','BackgroundColor',[1,1,1]);set(gcf,'color','w')h_pushbutton1=uicontrol(h_fig1,'Style','PushButton','Position',[0.
4、9,0.9,0.06,0.06],...'string','退出','BackgroundColor',[0.80.90.8],'ForegroundColor','r','FontSize',14,'FontWeight','Bold',...'callback','delete(h_fig1)')h_text2=uicontrol(h_fig1,'Style','text','Position',[0.31,0.87,0.35,0.04],'FontSize',14,'FontWeight','Bold',...'BackgroundColor
5、',[111],'ForegroundColor','k',...'string','(系统函数模值
6、H
7、=
8、B
9、/
10、A
11、)')h_axes00=axes('Box','on','Position',[0.08,0.215,0.25,0.55],'FontSize',8)%在第2个图形窗中创建轴对象h_axes01=axes('Box','on','Position',[0.4,0.14,0.53,0.68],'FontSize',8)%在第2个图形窗中创建轴对象%------------------------------------------
12、----------b=[1,-1.13137,0.64];a=[1,0.56569,0.16];%分子分母系数向量[z,p]=tf2zp(b,a)hz=subplot(h_axes00)a=1:129;theta=2*pi/128;plot(sin(a*theta),cos(a*theta),'LineWidth',2);holdon;plot(real(p(1)),imag(p(1)),'marker','*')plot(real(p(2)),imag(p(2)),'marker','*')plot(real(z(1)),imag(z(1)),
13、'marker','o')plot(real(z(2)),imag(z(2)),'marker','o')a1=angle(z(1))a2=angle(p(1))abp=abs(p(1))abz=abs(z(1))axis([-1.1,1.1,-1.35,1.35]);line([-1.1,1.1],[0,0]);line([0,0],[-1.4,1.4]);line([0,real(p(1))],[0,imag(p(1))]);line([0,real(z(1))],[0,imag(z(1))]);text(0.33,0.3,'R2=0.8','
14、FontWeight','Bold');text(-0.5,0.15,'R1=0.4','FontWeight','Bol