黃永平, 于 含, 李 輝
(1. 河北大學 電子信息工程學院, 河北 保定 071002; 2. 石家莊郵電職業技術學院, 河北 石家莊 050021)
?
基于Matlab的線性調頻Z變換算法仿真
黃永平1, 于含2, 李輝2
(1. 河北大學 電子信息工程學院, 河北 保定071002; 2. 石家莊郵電職業技術學院, 河北 石家莊050021)
線性調頻Z變換(CZT)是一種比快速傅里葉變換(FFT)更有效計算信號頻譜的算法。針對CZT理論性強,不易理解和掌握的特點,基于Matlab GUI功能設計了線性調頻Z變換算法仿真界面,包括算法的計算路徑、3種典型序列的線性調頻Z變換、線性調頻Z變換算法中涉及的中間序列,以及3種典型序列的快速傅里葉變換。通過對CZT和FFT仿真結果的對比,可以直觀理解CZT更加靈活的特點;通過對算法計算路徑的仿真和算法中涉及的中間序列的仿真,使學生更容易理解和掌握CZT算法原理,進而提高教學效果。
線性調頻Z變換; Matlab; 快速傅里葉變換
作為數字信號處理的一種算法,線性調頻Z變換(CZT)是一種比快速傅里葉變換(FFT)更有效計算離散傅里葉變換(DFT)的算法[1],適用于一般情況下沿螺旋曲線作等角度取樣計算有限時寬Z變換的快速變換算法,它使得DFT的運算變得相當靈活,為數字信號處理技術應用于各種高速信號的快速處理創造了良好的條件,從而大大推動了數字信號處理技術的發展[2],廣泛應用于雷達信號檢測、雷達測距、電力系統間諧波檢測、電力預測等各個領域[3-4]。但是,該算法理論性較強,學生不易理解和掌握,為了激發學生的學習興趣、提高教學效果,基于Matlab GUI功能設計制作了CZT算法仿真界面。
Matlab是由美國Mathworks公司發布的主要面對科學計算、算法開發、數據可視化以及交互式程序設計的高科技計算語言和交互式環境。它將數值分析、矩陣計算、數據可視化以及非線性動態系統的建模和仿真等諸多功能集中在一個易于使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案[5]。其中包含的各種函數可以為數字信號處理的各項內容快捷、方便地提供正確的答案和直觀的圖形顯示[6],可以化抽象為具體,將課本上枯燥、難以理解的知識具體、形象化,加深學生對理論知識的理解和掌握,大大改進課程的教學方法,從而提高教學質量[7]。
1.1CZT算法原理
列長為N的有限長序列x(n)的Z變換[8]為:
(1)
在z平面一段螺旋線上等角度采樣,采樣點為
(2)
其中,M為要分析的復頻譜的點數,M不一定等于N。A和W可以是任意復數,分別表示為:
(3)
因此,
(4)
CZT計算路徑如圖1所示,沿路徑式(2),(1)式變為
(5)

圖1 CZT的計算路徑

(6)
定義新的序列:
(7)
(8)
則
(9)
因此X(zk)的計算流程如圖2所示。

圖2 CZT計算流程
根據圖2,CZT的實現步驟主要包括以下幾部分:
(1) 定圓周卷積周期L,L=2m且L≥N+M-1。
(2) 根據x(n)定義L點序列f(n)為
(10)
利用FFT計算f(n)的離散傅里葉變換F(k):
(3) 定義L點序列h(n):
(11)
或
(12)
利用FFT計算h(n)的離散傅里葉變換H(k);
(4) G(k)=F(k)H(k),利用IFFT計算G(k)的離散傅里葉反變換g(n);
1.2圓周卷積周期L的選取
CZT的實現步驟中的L=2m且L≥N+M-1,其中L=2m是因為要利用圓周卷積計算f(n)與h(n)兩序列的線性卷積,而計算圓周卷積時利用圓周卷積定理用基2-FFT計算。
L取值為L≥N+M-1,可以根據圖3通過以下證明得到:
因為f(n)中n的取值范圍為0≤n≤N-1,h(n)中n的取值范圍為-(N-1)≤n≤M-1;所以序列g(n)=f(n)*h(n)中n的取值范圍為-(N-1)≤n≤N+M-2。

圖3 線性卷積及其以L為圓周的周期卷積
而圓周卷積是線性卷積周期延拓后的主值序列,假設圓周卷積的周期為L,又因為求X(zk)時只用到了g(n)的前M個點g(k)。所以,線性卷積周期延拓時只要能保證n從0到M-1不混疊就可以。為此,g(n)左移1個周期時最右邊一個點的n值要滿足:N+M-2-L≤-1?L≥N+M-1;g(n)右移1個周期時最左邊一個點的n值要滿足:-(N-)+L≥M?L≥N+M-1。
所以,L的取值范圍為L≥N+M-1。
根據CZT算法原理,利用Matlab GUI功能設計的CZT算法仿真[10-11]界面,主要包括CZT的計算路徑和序列的CZT及FFT仿真兩部分。
2.1CZT的計算路徑
根據公式(2),設計了CZT的計算路徑仿真界面,如圖4中左上角部分,包括參數輸入部分和路徑仿真結果兩部分,其中仿真結果包括計算數據和仿真圖形兩部分。輸入參數以后,點擊“確定”按鈕,得到相應的仿真結果,不同類型的參數其仿真結果見圖4。

圖4 CZT的計算路徑仿真結果
主要的程序如下:
A=a*exp(1i*c*pi);
W=b*exp(-1i*d*pi);%compute A and W
Zk=A.*W.^(-k); %computeZk
Rezk=real(Zk);
Imzk=imag(Zk);
plot(Zk,′r.′); grid on;
title(′The computational path of CZT′);% draw the path of CZT
通過仿真,驗證了參數對計算路徑的影響:A0和θ0控制著路徑的起始位置,W0控制著路徑的盤旋趨勢,φ0控制著相鄰取樣點的角度差。
2.2序列CZT的仿真設計
根據CZT的計算流程圖和實現步驟,設計制作了3種序列的CZT的及FFT仿真部分,如圖5所示。這部分主要包括3種序列x(n)的參數輸入、計算過程中產生的序列f(n)、h(n)以及兩序列的卷積結果、序列的CZT和FFT仿真結果3部分。其中序列h(n)給出了根據式(11)和式(12)兩種定義形式產生的仿真結果,相應的f(n)和h(n)的卷積也給出了兩種仿真結果。通過對兩種仿真結果圖的對比,可以驗證根據公式(11)和(12)兩種定義形式產生的序列g(n)的前M個點g(k)完全相同。
主要程序如下:
L = 2^nextpow2(M+N-1);
sita0=pi*1/3;fai0=pi*0.1;
A=a*exp(j*sita0); w=b*exp(-j*fai0);
n1=0.5.*n.^2; w1=w.^n1;A1=A.^(-n);
fn1=x1.*A1.*w1; fn=[fn1,zeros(1,L-N)];
n2=-0.5.*k.^2; hn1=w.^n2;n3=-0.5.*(L-k1).^2; hn2=w.^n3;
n31=-0.5.*(L-k11).^2; hn21=w.^n31;
h1=[hn1,ones(1,L-N-M+1),hn21]; h2=[hn1,hn2];
y=conv(fn,h1);%The convolution of f(n) and h(n) in (10) and (11)
y=conv(fn,h2);% The convolution of f(n) and h(n) in (10) and (12)
y=czt(x1,M,W,A);%compute CZT ofx(n)
XK=fft(x1,N); %compute FFT ofx(n)
圖5(a)中x(n)是正弦序列,通過對比序列的CZT和FFT仿真結果得出結論:CZT較FFT更靈活,可以在某一頻段上取更多點來改善分辨率,達到頻域“細化”的目的,可以更好地分析窄帶信號[12]。
線性調頻Z變換算法使得DFT的運算變得相當靈活,理論性較強。本文從理論和實驗仿真兩方面對該算法中的難點進行了證明和驗證;利用Matlab GUI功能設計制作的算法仿真界面形象直觀,有助于提高學生的學習興趣和積極性,進而更好地理解和掌握基本理論,達到提高教學效果的目的。

圖5 序列的CZT及FFT仿真結果
References)
[1] 陶德元,馬代興.CZT數字計算法及其運用[J].四川大學學報:自然科學版,1987,24(4):501-506.
[2] 趙剛.基于MATLAB的線性調頻Z變換及應用[J].技術物理教學,2007,15(4):31-33.
[3] 王春艷,黃仁欣,宗成閣,等.基于Chirp-Z變換的LFMCW系統測距算法仿真研究[J].微計算機信息,2005,21(12-3):188-189.
[4] 黃小佳,劉亞梅,廖學靜,等.基于多峰譜線插值的間諧波檢測新方法[J].四川電力技術,2009,32(1):54-58.
[5] 羅軍輝,羅勇江,白義臣,等.Matlab7.0在數字信號處理中的應用[M].北京:機械工業出版社,2005.
[6] 周利清,蘇菲.數字信號處理基礎[M].2版.北京:北京郵電大學出版社,2008.
[7] 黃永平,李彩霞,田曉燕.基于MATLAB和雙線性變換法的IIR數字濾波器設計與仿真[J].河北軟件職業技術學院學報,2012(2):48-50.
[8] 李芬華,常鐵原,潘立冬,等.數字信號處理[M].北京:中國計量出版社,2007.
[9] Tien T Wang. The Segmented Chirp 2-Transform and Its Application in Spectrum Analysis[J]. IEEE TRANSACTIONS ON INSTRUMENTATION AND MEASUREMENT,1990,39(2):318-323.
[10] 唐向宏,岳恒立,鄭雪峰.MATLAB及在電子信息類課程中的應用[M].北京:電子工業出版社,2006.
[11] Huang Yongping, Li Caixia, Tian Xiuli. The Simulation of the Chirp-Z Transform Based on MATLAB GUI[C]//ICMT 2013.2013:48-54.
[12] 徐建軍,胡光,李錦明.線性調頻Z變換在信號頻譜分析中的應用[J].應用基礎與工程科學學報,2009,17(6):966-972.
Simulation of chirp-z transform based on Matlab
Huang Yongping1, Yu Han2, Li Hui2
(1. College of Electronics and Information Engineering, Hebei University, Baoding, 071002, China;2. Shijiazhuang Posts and Telecommunications Technical College, Shijiazhuang 050021, China)
The CZT is more flexible than the Fast Fourier Transform(FFT) in calculating the frequency spectrum. Aiming at the algorithm being strongly theoretical and difficult to understand and master, this paper designs the simulation interface of CZT based on Matlab GUI, including the computational path of CZT, realizing process, the intermediate sequences involved in the algorithm, three sequences and their simulation of CZT and FFT. The simulation will help students to understand and grasp the algorithm which can improve the teaching quality.
CZT; Matlab; FFT(Fast Fourier Transform)
DOI:10.16791/j.cnki.sjg.2016.04.017
2015- 09- 17修改日期:2016- 01- 19
河北大學第八批教學改革研究課題(JX08-YB-32);河北省科技計劃自籌經費項目(15210409);河北大學青年基金項目(2011Q01)
黃永平(1977— ),女, 河北定州,碩士,講師,主要研究方向為信號與信息處理.
E-mail:hyp2013@163.com
TN911.72; G423.07
A
1002-4956(2016)4- 0057- 04