基于FPGA的MFSK調(diào)制電路設(shè)計(jì)與仿真
摘要:數(shù)字調(diào)制解調(diào)技術(shù)在數(shù)字通信中占有非常重要的地位,數(shù)字通信技術(shù)與FPGA的結(jié)合是現(xiàn)代通信系統(tǒng)發(fā)展的一個(gè)必然趨勢。文中介紹了MFSK調(diào)制解調(diào)的原理,并基于FPGA實(shí)現(xiàn)了MFSK調(diào)制電路,仿真結(jié)果表明了該設(shè)計(jì)的正確性。
關(guān)鍵詞:MFSK;FPGA;調(diào)制;解調(diào)
數(shù)字信號(hào)傳輸系統(tǒng)分為基帶傳輸系統(tǒng)和頻帶傳輸系統(tǒng).頻帶傳輸系統(tǒng)也叫數(shù)字調(diào)制系統(tǒng)。數(shù)字調(diào)制信號(hào)又稱為鍵控信號(hào),數(shù)字調(diào)制過程中處理的是數(shù)字信號(hào),而載波有振幅、頻率和相位3個(gè)變量,且二進(jìn)制的信號(hào)只有高低電平兩個(gè)邏輯量1和0,所以調(diào)制的過程可用鍵控的方法由基帶信號(hào)對(duì)載頻信號(hào)的振幅、頻率及相位進(jìn)行調(diào)制,最基本的方法有3種:正交幅度調(diào)制(QAM)、頻移鍵控(FSK)、相移鍵控(PSK).根據(jù)所處理的基帶信號(hào)的進(jìn)制不同分為二進(jìn)制和多進(jìn)制調(diào)制(M 進(jìn)制).多進(jìn)制數(shù)字調(diào)制與二進(jìn)制相比,其頻譜利用率更高。本文研究了基于FPGA的MFSK(多頻鍵控)調(diào)制電路的實(shí)現(xiàn)方法,并給出了MAX+PLUSII環(huán)境下的仿真結(jié)果。
1 MFSK簡介
MFSK系統(tǒng)是2FSK(二頻鍵控)系統(tǒng)的推廣,該系統(tǒng)有M個(gè)不同的載波頻率可供選擇,每一個(gè)載波頻率對(duì)應(yīng)一個(gè)M進(jìn)制碼元信息,即用多個(gè)頻率不同的正弦波分別代表不同的數(shù)字信號(hào),在某一碼元時(shí)間內(nèi)只發(fā)送其中一個(gè)頻率。MFSK信號(hào)可表示為:
為載波角頻率,通常采用相位不連續(xù)的振蕩頻率,這樣便于利用合成器來提供穩(wěn)定的信號(hào)頻率。圖1 為MFSK系統(tǒng)的原理框圖。在發(fā)送端,輸入的二進(jìn)制碼元經(jīng)過邏輯電路和串/并變換電路轉(zhuǎn)換為M進(jìn)制碼元,每k位二進(jìn)制碼分為一組,用來選擇不同的發(fā)送頻率。在接收端,當(dāng)某一載波頻率到來時(shí),只有相應(yīng)頻率的帶通濾波器能收到信號(hào),其它帶通濾波器輸出的都是噪聲。抽樣判決器的任務(wù)就是在某一時(shí)刻比較所有包絡(luò)檢波器的輸出電壓,通過選擇最大值來進(jìn)行判決。將最大值輸出就得到一個(gè)M進(jìn)制碼元,然后,再經(jīng)過邏輯電路轉(zhuǎn)換成k位二進(jìn)制并行碼,再經(jīng)過并/串變換電路轉(zhuǎn)換成串行二進(jìn)制碼,從而完成解調(diào)過程。
圖1 MFSK系統(tǒng)原理框圖
2 MFSK調(diào)制電路的FPGA實(shí)現(xiàn)
2.1 基于FPGA的MFSK調(diào)制電路方框圖
調(diào)制電路方框圖如圖2所示。基帶信號(hào)通過串/并轉(zhuǎn)換得到2位并行信號(hào);四選一開關(guān)根據(jù)兩位并行信號(hào)選擇相應(yīng)的載波輸出(例中M取4)。
圖2 MFSK調(diào)制電路方框圖
2.2 MFSK調(diào)制電路VHDL程序
調(diào)制電路VHDL關(guān)鍵代碼如下:
entity MFSK is
port(clk :in std_logic; --系統(tǒng)時(shí)鐘
start :in std_logic; --開始調(diào)制信號(hào)
x :in std_logic; --基帶信號(hào)
y :out std_logic); --調(diào)制信號(hào)
end MFSK;
architecture behav of MFSK is
signal q :integer range 0 to 15; --計(jì)數(shù)器
signal f :std_logic_vector(3 downto 0); --分頻器
signal xx:std_logic_vector(1 downto 0); --寄存輸入信號(hào)x的2位寄存器
signal yy:std_logic_vector(1 downto 0); --寄存xx信號(hào)的寄存器
begin
process(clk) --此進(jìn)程過對(duì)clk進(jìn)行分頻,得到4種載波信號(hào)f3、f2、 f1、f0。
begin
if clk'event and clk='1' then
if start='0' then f="0000";
elsif f="1111" then f="0000";
else f=f+1;
end if;
end if;
end process;
process(clk) --對(duì)輸入的基帶信號(hào)x進(jìn)行串/并轉(zhuǎn)換,得到2位并行信號(hào)的yy
begin
if clk'event and clk='1' then
if start='0' then q=0;
elsif q=0 then q=1;xx(1)=x;yy=xx;
elsif q=8 then q=9;xx(0)=x;
else q=q+1;
end if;
end if;
end process;
process(clk,yy) --此進(jìn)程完成對(duì)輸入基帶信號(hào)x的MFSK調(diào)制
begin
if clk'event and clk='1' then
if start='0' then y='0'; -- if語句完成2位碼并行碼到4種載波的選通
elsif yy="00" then y=not f(3);
elsif yy="01" then y=not f(2);
elsif yy="10" then y=not f(1);
else y=not f(0);
end if;
end if;
end process;
end behav;
2.3 仿真結(jié)果
MAX+PLUSII環(huán)境下的仿真結(jié)果如圖3所示。
圖3 MFSK調(diào)制程序仿真結(jié)果
注:中間信號(hào)yy與輸出調(diào)制信號(hào)y的對(duì)應(yīng)關(guān)系:“00”=f3;“01”=f2;“10”=f1;“11”=f0。
3 結(jié)束語
多進(jìn)制數(shù)字調(diào)制技術(shù)與FPGA的結(jié)合使得通信系統(tǒng)的性能得到了迅速的提高。本文基于FPGA實(shí)現(xiàn)了MFSK調(diào)制電路部分,限于篇幅,沒有對(duì)解調(diào)部分的電路進(jìn)行討論。在實(shí)際應(yīng)用中,完全可以把調(diào)制部分和解調(diào)部分電路都集成到一片F(xiàn)PGA芯片內(nèi),這樣即提高了FPGA內(nèi)部結(jié)構(gòu)的利用率,又可以降低系統(tǒng)的成本。
參考文獻(xiàn):
[1] 張學(xué)平,王應(yīng)生等.基于FPGA的OQPSK解調(diào)器的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,第4-2期:155-157
[2] 黃智偉.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005
[3] 董在望.通信電路原理[M].北京:高等教育出版社,2002
評(píng)論