基于SPW-FSM Editor的CPM調制器的建模
CPM調制是一種非線性有記憶調制方式,其信號內在的狀態轉移特性更適合于用有限狀態機(FSM)來描述。SPW的FSM Editor是一個簡單易用的FSM建模工具,用其生成的FSM模型可以直接用于SPW的BDE仿真環境中。本文給出了3RC-CPM信號的內在狀態及其轉移的分析,并對基于FSM Editor的建模過程進行了詳細敘述,最后給出了完整的CPM調制器系統模型及其仿真波形。
關鍵詞:SPW;FSM Editor;CPM調制器;有限狀態機
引言
CPM(連續相位調制)是典型的有記憶調制方式,其符號間的關聯特性使得這種調制方式具有不同的狀態。在對CPM系統進行仿真時,首先需要產生調制信號。產生調制信號的方法有很多,最直接的方法是按照CPM信號的表達式運算得到,但需要記憶很多中間狀態;還可以將所有可能的輸出波形存成一張表,采用查表法得到調制信號,但需要較大的存儲空間。事實上,CPM信號可以看作是一個有限狀態系統,在時間軸上具有清晰的狀態轉移關系,根據這一特性,我們采用SPW的建模工具FSM Editor成功地生成了CPM的調制信號。由于該方法實際上是對CPM本質特性的描述,因此物理意義清晰,且參數易于修改,非常適合CPM系統的建模仿真。
FSM Editor簡介
FSM Editor是SPW的一個可選工具,主要是以圖形化的方式對有限狀態機系統進行建模,應用對象包括控制系統、網絡協議以及有記憶調制系統等。一個完整的FSM模型由狀態集、狀態間的轉移、附加在狀態和轉移上的ADL(Action Description Language)文本、輸入/輸出端口、參數以及記憶變量構成,并且可以封裝成標準的SPW模塊。ADL事實上是C語言的一個子集,每一個狀態的入口動作和出口動作以及每一個轉移的驅動條件和執行動作都由ADL文本描述。
創建一個FSM模型包括以下步驟:啟動FSM Editor;定義輸入/輸出端口、參數和記憶變量;創建起始狀態和其它狀態,每一個FSM模型都必須有且僅有一個起始狀態(起始狀態以雙線環表示,其他狀態以單線環表示);編輯各狀態屬性,包括名稱、描述、入口動作和出口動作的定義;創建狀態間的轉移;編輯轉移屬性,包括名稱、描述、驅動條件和執行動作的定義;利用FSM Editor的Verify功能對模型進行驗證;保存模型,同時生成標準的SPW模塊。
模型創建完成即可以像普通的BDE模塊一樣添加到任何一個仿真系統中進行仿真。
CPM調制狀態分析
CPM調制信號的一般表達式為:
??? (1)
其中
?????????????????????????? (2)
T為符號周期,即波特率的倒數,e表示時間T內的信號能量,fc為載波頻率,h為有理調制指數,…}為M進制發送符號序列,取值范圍是…, ,q(t)為歸一化相位成形波形,滿足條件:
?????????????????? (3)
定義q(t)的微分形式為g(t),則g(t)是持續時間為LT的脈沖波形,稱為相位成形脈沖。如果L=1,相應的CPM信號稱為全響應CPM;如果L>1,則稱為部分響應CPM。
生成CPM調制信號的關鍵在于產生相位f(t;I),由(2)式可得:
(t-kT)
(t-kT)
??????????????????? (4)
其中qn可以遞歸的方式表示為:
???????????????????? (5)
由(4)式可知,時間內的f(t;I)可由qn及{In, In-1, …In-L+1}唯一確定,因此CPM信號在t=nT時刻的狀態可以定義為
…,In-L+1}??? (6)
由于,因此當m為偶數時,qn共有p個,即;當m為奇數時,qn共有2p個,即,所以CPM信號的狀態數為:
????????????? (7)
以二進制CPM(即M=2)為例,其他參數如下:L=3,h=1/2(m=1,p=2),則狀態數為2pML-1=2×2×23-1=16,以(qn, In-2, In-1)格式來表示狀態,16個狀態分別表示為(0,1,1)、(0,1,-1)、……(3p/2,-1,-1),各狀態間的轉移如圖1所示,其中虛線表示當前時刻接收符號為+1,實線表示當前時刻接收符號為-1。
假定系統0時刻前的輸入為I-1=1,I-2=I-3=…=0,以及q-1=0,則由(5)式可得q0=q-1+phI-3=0,因此系統0時刻的狀態不同于以上16種狀態,以( 0, 0, 1)表示。
建模過程與仿真波形
系統的FSM模型如圖2所示。由于系統的輸出(相位值)在每比特內都是一個連續變化的波形,因此輸出端口必須進行適當上采樣才能夠體現變化趨勢,本系統中采用了八倍上采樣,即用八個采樣點表示一比特時間內的相位輸出波形。該模型的建立分為以下幾個步驟:
1. 定義輸入/輸出端口分別為In和OutputPhase;定義參數h;定義記憶變量In-2、In-1、k和qn。
2. 創建起始狀態和其它17個狀態及各狀態間的轉移。
3. 編輯狀態屬性。為實現八倍上采樣,每個狀態除在每個符號起始時刻由輸入觸發外,還需利用@else條件觸發其余七次,每一次的入口動作完成以下運算:
OutputPhase=
k++;
每一次的出口動作完成以下運算:
if (k==8)? {k=0;}
4. 編輯轉移屬性。所有轉移分為三類:一是狀態自身的轉移,利用@else條件控制其跳轉,不需執行任何動作;二是輸入為+1起始時刻的轉移,驅動條件為(In==+1 && k==0),并用前一狀態的In-1更新In-2;三是輸入為-1起始時刻的轉移,驅動條件為(In==-1 && k==0),并用前一狀態的In-1更新In-2。
5. 為克服開始階段輸入信號不穩對系統工作的不利影響,在起始狀態加入邊沿檢測,以此作為系統工作的起始時刻。方法是將起始狀態自身轉移的驅動條件設為(In×In-1!=-1),執行動作設為(In-1= In),同時把起始狀態向0時刻狀態的轉移條件設為(In× In-1=-1)。
6. 對模型進行驗證。
7. 保存模型,生成標準的SPW模塊,創建好的3RC-CPM相位生成模塊參見圖3。
完整的CPM調制器模型如圖4所示。首先隨機產生+1、-1符號序列,送給相位生成模塊得到所需相位,然后對相位作正余弦運算得到基帶信號,再和載波信號混頻生成調制信號。由于載波信號采樣率較高,為使乘法運算速率匹配,還需對基帶信號進一步上采樣。
分別在CPM調制器模型的輸入符號、輸出相位、輸出相位余弦值、同相支路輸出、正交支路輸出、調制器輸出等處設置波形觀測點。各點輸出波形如圖5所示。
結語
本文利用SPW的有限狀態機建模工具FSM Editor實現了一個CPM的調制器模型。用FSM Editor創建模型具有物理意義清晰、易于修改和擴展等特點。用FSM Editor對通信系統進行建模的關鍵點在于狀態的提取以及對狀態間轉移的準確把握,只要正確地分析出所有的狀態和轉移,用FSM Editor建模就變得非常簡單了。
參考文獻
1 John G. Proakis. Digital Communications. McGraw-Hill,New York, third edition, 1995
2 J. B. Anderson,T. Aulin, and C-E. W. Sundberg. Digital Phase Modulation. New York. NY: Plenum. 1986
3 Carl-Erik Sundberg. Continuous phase modulation, IEEE Communications Magazine, vol. 24, pp. 25 - 38, April 1986
4 SPW Finite State Machine Editor User's Guide. Cadence Design Systems, Inc. March 2002
電子發燒友App
















































評論