版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、循環(huán)碼梅吉特譯碼原理實驗一、設(shè)計內(nèi)容本實驗根據(jù)梅吉特譯碼器的原理設(shè)計循環(huán)碼梅吉特譯碼器,該譯碼器具有糾一位錯碼的能力。在輸入窗口中輸入七位的二進制接收碼字,在輸出窗口中輸出譯碼后的碼字,并可根據(jù)選擇畫出波形圖。二、設(shè)計工具:MATLAB三、流程圖主程序流程圖梅吉特譯碼核心部分流程圖四、運行方法在“Input code”輸入文本框中輸入要譯碼的七位循環(huán)碼碼字,選擇“Draw”(選擇輸入和輸出的碼字的波形)或“Undraw”(不顯示輸入和輸出的波形),點擊“Decode”,會在“Output”輸出文本框里輸出譯碼后的碼字,并根據(jù)“Draw”或“Undraw”的選擇是否顯示碼字波形。點擊“Reset
2、”會清空所有的圖形和文本框,點擊“Help”會顯示操作幫助。五、運行結(jié)果截圖下圖為當(dāng)輸入“1101011”時的譯碼結(jié)果及波形顯示: 六、實驗心得:通過本次實驗,使我不僅掌握了梅吉特譯碼器的原理,而且也學(xué)會了如何用軟件去實現(xiàn)其邏輯功能,并且對MATLAB仿真工具的使用有了進一步的認(rèn)識。七、程序代碼部分%界面程序-decode的回調(diào)函數(shù)部分input1=get(handles.Input,'String');input1=size(input1);input2=input1(2);check=get(handles.Input,'String');check=str
3、2num(check);check2=checkout(check);if (input2=7)|(check=0) set(handles.Input,'String',''); set(handles.Output,'String',''); axes(handles.axes1); cla reset; axes(handles.axes2); cla reset; errordlg('Please input 7 bit binary number!','Error input !');el
4、se a=get(handles.Input,'String'); code=str2num(a); code1=converter(code); decoder=MJTdecoder(code); decoder2=num2str(decoder); set(handles.Output,'String',decoder2); a=get(handles.Draw,'Value'); if a=1 axes(handles.axes1); %plot wave stairs(0:7,code1,1); axis(0 7 -0.1 1.5); t
5、itle('Input code'); axes(handles.axes2); stairs(0:7,decoder,1); axis(0 7 -0.1 1.5); title('Output code'); else axes(handles.axes1); cla reset; axes(handles.axes2); cla reset; endend%回調(diào)函數(shù)部分結(jié)束%檢測輸入的數(shù)據(jù)是否合法的函數(shù)部分function dataout=checkout(R)%先將輸入的十進制數(shù)變成二進制數(shù) R1=floor(R/1000000); R2=floor(mo
6、d(R,1000000)/100000); R3=floor(mod(R,100000)/10000); R4=floor(mod(R,10000)/1000); R5=floor(mod(R,1000)/100); R6=floor(mod(R,100)/10); R7=mod(R,10);%判斷輸入的碼是否合法,該判斷只能判斷小于等于七位的二進制數(shù),如果輸入的是小于七位的二進制數(shù),也默認(rèn)合法,將小于七位的二進制的數(shù)的判定放在decode的回調(diào)函數(shù)里 if(R1=0&R1=1)|(R2=0&R2=1)|(R3=0&R3=1)|(R4=0&R4=1)|(R5=0
7、&R5=1)|(R6=0&R6=1)|(R7=0&R7=1) dataout=0; %如果是非法輸入就置dataout為0,否則為1 else dataout=1; end%模2加法器的實現(xiàn)部分function y=add2(x,y)if (x=0&y=0)|(x=1&y=1) y=0;elseif (x=0&y=1)|(x=1&y=0) y=1;end%模2加法器的實現(xiàn)部分結(jié)束if(R1=0&R1=1)|(R2=0&R2=1)|(R3=0&R3=1)|(R4=0&R4=1)|(R5=0&R5=1)
8、|(R6=0&R6=1)|(R7=0&R7=1) dataout=0; %如果是非法輸入就置dataout為0,否則為1 else dataout=1;end%檢測輸入的數(shù)據(jù)是否合法的函數(shù)部分%將輸入的數(shù)據(jù)轉(zhuǎn)換成二進制數(shù)據(jù)的函數(shù)部分function C=converter(R)R1=floor(R/1000000);R2=floor(mod(R,1000000)/100000); R3=floor(mod(R,100000)/10000);R4=floor(mod(R,10000)/1000);R5=floor(mod(R,1000)/100);R6=floor(mod(R,1
9、00)/10);R7=mod(R,10);C=R1,R2,R3,R4,R5,R6,R7;%將輸入的數(shù)據(jù)轉(zhuǎn)換成二進制數(shù)據(jù)的函數(shù)部分結(jié)束%梅吉特譯碼器的核心部分function dataout=Mjtdecoder(R) R1=floor(R/1000000); R2=floor(mod(R,1000000)/100000); R3=floor(mod(R,100000)/10000); R4=floor(mod(R,10000)/1000); R5=floor(mod(R,1000)/100); R6=floor(mod(R,100)/10); R7=mod(R,10); R_new=R1,R2
10、,R3,R4,R5,R6,R7;C(7)=0;D0=0;D1=0;D2=0;D00=0;D11=0;D22=0;for i=1:14 D00=D0; D11=D1; D22=D2; if i<=7 D0=add2(D22,R_new(i); D1=add2(D00,D22); D2=D11; S=D0&D1&D2; else D0=add2(S,D22); D1=add2(D00,D22); D2=D11; C(i-7)=add2(S,R_new(i-7); S=D0&D1&D2; endenddataout=C;%梅吉特譯碼器的核心部分結(jié)束循環(huán)碼梅吉特譯
11、碼原理實驗(2)設(shè)計內(nèi)容本實驗根據(jù)梅吉特譯碼器的原理設(shè)計循環(huán)碼梅吉特譯碼器,該譯碼器具有糾一位錯碼的能力。在輸入窗口中輸入七位的二進制接收碼字,在輸出窗口中輸出譯碼后的碼字,并可根據(jù)選擇畫出波形圖。(3)設(shè)計工具:MATLAB(4)流程圖:(6)運行方法:在“Input code”輸入文本框中輸入要譯碼的七位循環(huán)碼碼字,選擇“Draw”(選擇輸入和輸出的碼字的波形)或“Undraw”(不顯示輸入和輸出的波形),點擊“Decode”,會在“Output”輸出文本框里輸出譯碼后的碼字,并根據(jù)“Draw”或“Undraw”的選擇是否顯示碼字波形。點擊“Reset”會清空所有的圖形和文本框,點擊“He
12、lp”會顯示操作幫助。(7)運行結(jié)果截圖:下圖為當(dāng)輸入“1101011”時的譯碼結(jié)果及波形顯示:(8)實驗心得:通過本次實驗,使我不僅掌握了梅吉特譯碼器的原理,而且也學(xué)會了如何用軟件去實現(xiàn)其邏輯功能,并且對MATLAB仿真工具的使用有了進一步的認(rèn)識。(5)程序代碼部分%界面程序-decode的回調(diào)函數(shù)部分input1=get(handles.Input,'String');input1=size(input1);input2=input1(2);check=get(handles.Input,'String');check=str2num(check);chec
13、k2=checkout(check);if (input2=7)|(check=0) set(handles.Input,'String',''); set(handles.Output,'String',''); axes(handles.axes1); cla reset; axes(handles.axes2); cla reset; errordlg('Please input 7 bit binary number!','Error input !');else a=get(handles
14、.Input,'String'); code=str2num(a); code1=converter(code); decoder=MJTdecoder(code); decoder2=num2str(decoder); set(handles.Output,'String',decoder2); a=get(handles.Draw,'Value'); if a=1 axes(handles.axes1); %plot wave stairs(0:7,code1,1); axis(0 7 -0.1 1.5); title('Input
15、code'); axes(handles.axes2); stairs(0:7,decoder,1); axis(0 7 -0.1 1.5); title('Output code'); else axes(handles.axes1); cla reset; axes(handles.axes2); cla reset; endend%回調(diào)函數(shù)部分結(jié)束%檢測輸入的數(shù)據(jù)是否合法的函數(shù)部分function dataout=checkout(R)%先將輸入的十進制數(shù)變成二進制數(shù) R1=floor(R/1000000); R2=floor(mod(R,1000000)/100
16、000); R3=floor(mod(R,100000)/10000); R4=floor(mod(R,10000)/1000); R5=floor(mod(R,1000)/100); R6=floor(mod(R,100)/10); R7=mod(R,10);%判斷輸入的碼是否合法,該判斷只能判斷小于等于七位的二進制數(shù),如果輸入的是小于七位的二進制數(shù),也默認(rèn)合法,將小于七位的二進制的數(shù)的判定放在decode的回調(diào)函數(shù)里 if(R1=0&R1=1)|(R2=0&R2=1)|(R3=0&R3=1)|(R4=0&R4=1)|(R5=0&R5=1)|(R6=0
17、&R6=1)|(R7=0&R7=1) dataout=0; %如果是非法輸入就置dataout為0,否則為1 else dataout=1; end%模2加法器的實現(xiàn)部分function y=add2(x,y)if (x=0&y=0)|(x=1&y=1) y=0;elseif (x=0&y=1)|(x=1&y=0) y=1;end%模2加法器的實現(xiàn)部分結(jié)束if(R1=0&R1=1)|(R2=0&R2=1)|(R3=0&R3=1)|(R4=0&R4=1)|(R5=0&R5=1)|(R6=0&R6=1)
18、|(R7=0&R7=1) dataout=0; %如果是非法輸入就置dataout為0,否則為1 else dataout=1;end%檢測輸入的數(shù)據(jù)是否合法的函數(shù)部分%將輸入的數(shù)據(jù)轉(zhuǎn)換成二進制數(shù)據(jù)的函數(shù)部分function C=converter(R)R1=floor(R/1000000);R2=floor(mod(R,1000000)/100000); R3=floor(mod(R,100000)/10000);R4=floor(mod(R,10000)/1000);R5=floor(mod(R,1000)/100);R6=floor(mod(R,100)/10);R7=mod(R,10);C=R1,R2,R3,R4,R5,R6,R7;%將輸入的數(shù)據(jù)轉(zhuǎn)換成二進制數(shù)據(jù)的函數(shù)部分結(jié)束%梅吉特譯碼器的核心部分function dataout=Mjtdecoder(R) R1=floor(R/1000000); R2=floor(mod(R,1000000)/100000); R3=floor(mod(R,100000)/10000); R4=floor(mod(R,10000)/1000); R5=floor(mod(R,1000)/100); R6=floor(mod(R,100)/10); R7=mod(R,10); R_new=
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)人才資源代理協(xié)議書
- 2025年商業(yè)承兌匯票質(zhì)押合同
- 2025年度特種車輛買賣及售后服務(wù)協(xié)議3篇
- 《稅款征收基本制度》課件
- 二零二五年度2025版木材碳排放權(quán)交易合同2篇
- 2025版門窗產(chǎn)品進出口貿(mào)易合同4篇
- 二零二五年度商業(yè)步行街鋪面租賃及品牌管理合同
- 二零二五版行政合同行政主體特權(quán)與公眾權(quán)益保護協(xié)議3篇
- 二零二五年度餐飲店兩人合伙經(jīng)營風(fēng)險承擔(dān)協(xié)議
- 二零二五年度家居用品貼牌設(shè)計與市場拓展協(xié)議
- 廣西桂林市2023-2024學(xué)年高二上學(xué)期期末考試物理試卷
- 財務(wù)指標(biāo)與財務(wù)管理
- 2023-2024學(xué)年西安市高二數(shù)學(xué)第一學(xué)期期末考試卷附答案解析
- 部編版二年級下冊道德與法治第三單元《綠色小衛(wèi)士》全部教案
- 【京東倉庫出庫作業(yè)優(yōu)化設(shè)計13000字(論文)】
- 保安春節(jié)安全生產(chǎn)培訓(xùn)
- 初一語文上冊基礎(chǔ)知識訓(xùn)練及答案(5篇)
- 勞務(wù)合同樣本下載
- 血液透析水處理系統(tǒng)演示
- GB/T 27030-2006合格評定第三方符合性標(biāo)志的通用要求
- GB/T 13663.2-2018給水用聚乙烯(PE)管道系統(tǒng)第2部分:管材
評論
0/150
提交評論