版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)報告課程名稱:通信原理 指導(dǎo)老師:鄧焰 陳宏 成績:_實(shí)驗(yàn)名稱:偽隨機(jī)序列 編碼及解碼 實(shí)驗(yàn)類型:基礎(chǔ)規(guī)范型 同組學(xué)生姓名: 一、實(shí)驗(yàn)?zāi)康暮鸵螅ū靥睿┒?、?shí)驗(yàn)內(nèi)容和原理(必填)三、主要儀器設(shè)備(必填)四、操作方法和實(shí)驗(yàn)步驟五、實(shí)驗(yàn)數(shù)據(jù)記錄和處理六、實(shí)驗(yàn)結(jié)果與分析(必填)七、討論、心得裝 訂 線0 實(shí)驗(yàn)要求:1、環(huán)境與工具適應(yīng);2、偽隨機(jī)編碼,含5級m序列、M序列;3、歸零碼、差分碼的編碼與解碼;4、雙相碼、CMI的編碼與解碼;5、AMI、PST、HDB3的編碼與解碼。1 5級m序列:實(shí)驗(yàn)原理:查找本原多項(xiàng)式表,得到5級m序列的本原多項(xiàng)式為x5+x2+1,即有C0
2、=C2=C5=1,C1=C3=C4=0對照課本P380圖12-4,以邏輯運(yùn)算“異或”表示加法器的“加”運(yùn)算,則可以得到以下的電路圖:其中,上圖中右下角BNAND6器件的使用是為了避免序列“00000”的出現(xiàn)。當(dāng)只有為全零時,BNAND6輸出才為1,此時5個D觸發(fā)器的置位端有效,將“00000”置為“11111”仿真結(jié)果:上圖兩條粗線間恰為一個周期,共有31us,而一個狀態(tài)占1us,即為31個狀態(tài),這與5級m序列的總狀態(tài)數(shù)N=25-1=31相等。此外,經(jīng)檢驗(yàn)有 從而得以驗(yàn)證結(jié)果的正確性。實(shí)驗(yàn)波形:2 5級M序列:實(shí)驗(yàn)原理:查找本原多項(xiàng)式表,得到5級m序列的本原多項(xiàng)式為x5+x2+1,即有C0=C
3、2=C5=1,C1=C3=C4=0對照課本P380圖12-4,以邏輯運(yùn)算“異或”表示加法器的“加”運(yùn)算,并在此基礎(chǔ)上增加一條支路(a4、a3、a2、a1的或非)引到加法器,則可以得到以下的電路圖:下圖中左下角BAND6即為在5級m序列基礎(chǔ)中新增的支路,其中多余的2個端口直接接地。仿真結(jié)果:上圖兩條粗線間恰為一個周期,共有31us,而一個狀態(tài)占1us,即為31個狀態(tài),這與5級M序列的總狀態(tài)數(shù)N=25-1=31相等。此外,經(jīng)檢驗(yàn)符合課本P391遞推方程(12.2-47),從而得以驗(yàn)證結(jié)果的正確性。此外,上圖虛線框中為全零序列“00000”。實(shí)驗(yàn)波形:3 單極性歸零碼:實(shí)驗(yàn)原理:為方便起見,取占空比
4、為50%。當(dāng)原碼為1,則編碼為10;當(dāng)原碼為0,則編碼恒為0。比對上述偽隨機(jī)序列仿真結(jié)果的時鐘脈沖序列和5級m(或M)序列,發(fā)現(xiàn)單極性歸零碼可以通過兩者進(jìn)行邏輯“與”得到,示意圖如下所示。基于此可以得到歸零碼的編碼電路。 至于解碼電路的得到,比對上圖左下角的原碼(也即解碼)和右下角的編碼并結(jié)合時鐘脈沖,不難發(fā)現(xiàn),若將時鐘脈沖作為上升沿觸發(fā)而將編碼作為輸入則可以得到原碼波形。在此需要注意的是,雖然數(shù)電課程中講的是上升沿觸發(fā)要看觸發(fā)前的狀態(tài),但由于實(shí)際器件存在延時,故在Quartus2仿真及實(shí)驗(yàn)過程中均是由觸發(fā)后的狀態(tài)決定,這一點(diǎn)已在實(shí)踐中得到證明。由此借助上升沿觸發(fā)的D觸發(fā)器進(jìn)行歸零碼的解碼。其
5、中,之所以在解碼時又使用與門將時鐘脈沖和5級m序列進(jìn)行“與”運(yùn)算而非直接從編碼輸出引出的原因,是從編碼輸出引出的相位和編碼直接輸出的相位差了180度,盡管兩者都是同一點(diǎn)上的波形。仿真結(jié)果:實(shí)驗(yàn)波形:原碼編碼編碼解碼4 差分碼:實(shí)驗(yàn)原理:CP原碼編碼差分碼是以跳變來表示高電平,以不變表示低電平,即01和10表示高電平;00和11表示低電平。編碼過程如上所示,由編碼規(guī)則不難發(fā)現(xiàn),編碼中要發(fā)生跳變就必須當(dāng)原碼為1時。因而,可以借助T觸發(fā)器來實(shí)現(xiàn)。其中,CP脈沖作為上升沿觸發(fā),原碼作為T端口輸入。當(dāng)然,也可以借助于D觸發(fā)器,以下采用的是同組同學(xué)的電路圖,思想是通過D觸發(fā)器保存前一個狀態(tài),并將與當(dāng)前狀態(tài)
6、進(jìn)行異或運(yùn)算。顯然,若前后兩個狀態(tài)不同,異或后得到“1”,否則為“0”,這與差分的編碼思想一致,只是此方法會至少滯后1個周期。基于此便可得到差分碼的編碼電路圖。至于解碼過程,若仍采用上述編碼的后一種思想,則解碼與編碼同效。這是因?yàn)榻獯a的差分碼便是原碼,可以說是兩者處于相同的地位。當(dāng)然,這也可以從“異或”邏輯運(yùn)算的特點(diǎn)得到。因此,仍將編碼的前后狀態(tài)進(jìn)行“異或”運(yùn)算便得到解碼,只不過又至少滯后編碼一個周期以上。正是因?yàn)樵摲椒ǖ木幋a和解碼必然會有較大的延時滯后,故電路圖上右上角存在兩個為減少滯后時間而采用的D觸發(fā)器,當(dāng)然這其中的性價比不高。仿真結(jié)果:實(shí)驗(yàn)波形:編碼原碼原碼解碼5 雙相碼:實(shí)驗(yàn)原理:雙
7、相碼的編碼規(guī)則是當(dāng)原碼為1時,則編碼為10;當(dāng)原碼為0時,則編碼為01。具體的波形表示為CP原碼編碼由上面波形圖,不難發(fā)現(xiàn),編碼為CP脈沖與原碼的“同或”,且解碼為CP脈沖與編碼的“同或”運(yùn)算?;诖丝傻玫诫娐穲D如下所示。仿真結(jié)果:實(shí)驗(yàn)波形:原碼編碼原碼解碼6 CMI:實(shí)驗(yàn)原理:CMI的編碼規(guī)則為當(dāng)原碼為1,編碼為11與00相互交替;當(dāng)原碼為0,編碼為01。由此可見,CMI碼為1B2B碼。由于當(dāng)原碼為1時存在交替現(xiàn)象,因此考慮采用VHDL語言進(jìn)行編碼。其中,設(shè)定一個變量用于記錄“1”出現(xiàn)的狀態(tài),以此判別輸出為11還是00。其中,編碼為位于右下角偏上模塊而解碼為其下方的模塊,具體VHDL語言在下
8、文給出。仿真結(jié)果:實(shí)驗(yàn)波形:原碼編碼解碼原碼編 碼 解 碼LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY CMI_code ISPORT( Clk : in std_logic; CP : in std_logic;DataInput : in std_logic; DataOutput : out std_logic);END CMI_code;ARCHITECTURE CMIcode OF CMI_code IS signal ControlSig : std_logic;-CM
9、I碼元控制信號 signal count: std_logic;-'00''11' signal DataBuffer : std_logic_vector(1 downto 0);-CMI碼元寄存 begin process(CP)-CMI編碼進(jìn)程 begin if CP'event and CP = '1' then CASE DataInput IS WHEN '0'=> DataBuffer <= "01" WHEN '1' => -基帶信號為'1
10、9; 則交替編為"11" 和 "00" if count = '0' then DataBuffer <= "11" count<='1' else DataBuffer <= "00" count<='0' end if; END CASE; end if; end process; process(Clk)-CMI碼元輸出進(jìn)程 begin if Clk'event and Clk = '1' then if Cont
11、rolSig = '1' then DataOutput<= DataBuffer(0); ControlSig<= '0' else DataOutput<= DataBuffer(1); ControlSig <= '1' end if; end if; end process; end CMIcode;LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY CMI_decode ISPORT( Clk : in s
12、td_logic; CP : in std_logic; DataInput : in std_logic; DataOutput : out std_logic );END CMI_decode;ARCHITECTURE CMIdecode OF CMI_decode IS signal ControlSig : std_logic;-CMI碼元控制信號 signal count: std_logic;-'00''11' signal DataBuffer : std_logic_vector(1 downto 0);-CMI碼元寄存 begin proces
13、s(Clk)-CMI碼元輸出進(jìn)程 begin if Clk'event and Clk = '1' then if ControlSig = '1' then DataBuffer(1)<= DataInput; ControlSig<= '0' DataOutput<=DataBuffer(1) xnor DataBuffer(0); else DataBuffer(0)<= DataInput; ControlSig <= '1' end if; end if; end process;
14、end CMIdecode;7 AMI:實(shí)驗(yàn)原理:AMI的編碼規(guī)則為當(dāng)原碼為1時,編碼為+1與-1相互交替;當(dāng)原碼為0時,編碼為0保持不變。由于AMI為三電平碼,故可以通過兩路二電平碼來表示,如下所示:CP原碼編碼(+)(-) 其中,當(dāng)(+)為高電平、(-)零電平時,表示+1;當(dāng)(+)為零電平、(-)高電平時,表示-1;而(+)與(-)均為零電平時,表示0。 因此,可以將三電平碼AMI的編解碼化為兩路二電平碼的編解碼。為避免兩路二電平碼的不同步造成編碼、解碼出錯,故采用VHDL語言對AMI進(jìn)行編碼,而解碼部分則直接由兩路二電平碼進(jìn)行“異或”運(yùn)算得到。仿真結(jié)果:實(shí)驗(yàn)波形:原碼編碼原碼解碼編 碼
15、LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY AMI_code ISPORT( Clk : in std_logic; DataInput : in std_logic; DataOutput1 : out std_logic; DataOutput0 : out std_logic );END AMI_code;ARCHITECTURE AMIcode OF AMI_code IS signal count: std_logic;-'01''10'
16、 signal DataBuffer : std_logic_vector(1 downto 0);begin process(Clk) begin if Clk'event and Clk = '1' then CASE DataInput IS WHEN '0'=> DataBuffer <= "00" WHEN '1' => if count = '0' then DataBuffer <= "01" count<='1' else
17、 DataBuffer <= "10" count<='0' end if; END CASE; DataOutput1 <=DataBuffer(1); DataOutput0 <=DataBuffer(0); end if; end process; end AMIcode;8 PST:實(shí)驗(yàn)原理:PST為2B1T碼,其編碼規(guī)則如下所示,實(shí)驗(yàn)要求正負(fù)模式無條件輪流切換。其中,編碼時需要設(shè)置一個變量用于記錄此次編碼所采用的模式。在該狀態(tài)變量已決定所采用的編碼模式后,對兩位二進(jìn)制原碼進(jìn)行相應(yīng)的編碼,這就是編碼乃至解碼部分所基于的思想。仿
18、真結(jié)果:編 碼 解 碼LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY PST_code ISPORT( Clk : in std_logic; DataInput : in std_logic; DataOutput1 : out std_logic; DataOutput0 : out std_logic);END PST_code;ARCHITECTURE PSTcode OF PST_code IS signal count: std_logic;-'01'
19、39;10' signal DataBuffer : std_logic_vector(1 downto 0); signal Dbuffer : std_logic_vector(1 downto 0); signal c1:std_logic; signal c2:std_logic;begin process(Clk) begin if Clk'event and Clk = '1' then if count = '0' then Dbuffer<=DataBuffer; DataBuffer(1) <= DataInput;
20、 count<='1' else DataBuffer(0) <= DataInput; count<='0' end if; if count = '0' then CASE Dbuffer IS WHEN "00" => DataOutput1 <='0' DataOutput0 <='1' WHEN "01" => DataOutput1 <='0'DataOutput0 <='0'
21、WHEN "10" => if c1='0' then DataOutput1 <='1'DataOutput0 <='0'c1<='1' else DataOutput1 <='0'DataOutput0 <='1'c1<='0' end if; WHEN "11" => DataOutput1 <='1'DataOutput0 <='0' END C
22、ASE; else CASE Dbuffer IS WHEN "00" =>DataOutput1 <='1'DataOutput0 <='0' WHEN "01" => if c2='0' then DataOutput1 <='1'DataOutput0 <='0'c2<='1' else DataOutput1 <='0'DataOutput0 <='1'c2<=
23、'0' end if ; WHEN "10" =>DataOutput1 <='0'DataOutput0 <='0' WHEN "11" => DataOutput1<='0'DataOutput0 <='1' END CASE; end if; end if; end process; end PSTcode;LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsi
24、gned.ALL;ENTITY PST_decode ISPORT( Clk : in std_logic;DataInput1 : in std_logic; DataInput0 : in std_logic;DataOutput : out std_logic);END PST_decode;ARCHITECTURE PSTdecode OF PST_decode ISsignal count: std_logic; signal DBuffer0: std_logic_vector(1 downto 0);signal DataBuffer1 : std_logic_vector(1
25、downto 0);signal DataBuffer0 : std_logic_vector(1 downto 0);signal DBuffer1: std_logic_vector(1 downto 0);signal DBuffer11: std_logic_vector(1 downto 0);begin process(Clk) begin if Clk'event and Clk = '1' then if count = '0' then DBuffer11<=DBuffer1; DBuffer1<=DataBuffer1;
26、count<='1' DataBuffer1(1) <=DataInput1; DataBuffer1(0) <= DataInput0; else DBuffer0<=DataBuffer0;DataBuffer0(1) <= DataInput1; DataBuffer0(0) <= DataInput0; count<='0' end if; if count = '0' then if DBuffer1="01" and DBuffer0="10" then
27、 DataOutput<='0' end if; if (DBuffer1="00" and DBuffer0="10") or (DBuffer1="00" and DBuffer0="01") then DataOutput<='0' end if; if (DBuffer1="10" and DBuffer0="00") or (DBuffer1="01" and DBuffer0="00") then DataOutput<='1'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防暑安全的應(yīng)急預(yù)案
- 運(yùn)動傷害對日常生活的影響及預(yù)防措施
- 買賣居間合同范本
- 專利權(quán)轉(zhuǎn)讓合同(二)
- 一帶一路沿線國家貿(mào)易合同分析
- 專項(xiàng)法律顧問聘請合同
- 個人貸款合同官方版樣本
- 個人信用抵押借款合同
- 中外合資飯店特許經(jīng)營合同
- 上海市建設(shè)工程合同
- 行政處罰-行政處罰種類和設(shè)定(行政法課件)
- 柔性機(jī)械臂的振動控制
- DB34T 4510-2023 靜脈用藥調(diào)配中心潔凈區(qū)管理規(guī)范
- 【課件】免疫系統(tǒng)組成和功能(人教版2019選擇性必修1)
- 土力學(xué)與地基基礎(chǔ)(課件)
- IT系統(tǒng)災(zāi)備和容災(zāi)解決方案項(xiàng)目設(shè)計(jì)方案
- 青島版二年級數(shù)學(xué)下冊(六三制)全冊課件【完整版】
- 馬蹄焰玻璃窯爐設(shè)計(jì)技術(shù)培訓(xùn)-課件
- 2023年主治醫(yī)師(中級)-眼科學(xué)(中級)代碼:334考試歷年真題集錦附答案
- 電力安全工作規(guī)程-(電網(wǎng)建設(shè)部分)
- 新加坡小學(xué)二年級英語試卷practice 2
評論
0/150
提交評論