通訊工程課程設計報告

2021-03-14 10:26:10 字數 3371 閱讀 8068

附件1西安郵電學院

專業課程設計報告書

附件2西安郵電學院通訊工程系專業課程設計成績鑑定表

實驗一時間表排程實驗

一、 實驗目的

時間排程表實驗用來考查自己對時間表排程原理的掌握情況。

二、 實驗原理及設計

在程式控制數字交換的體系結構中,週期級程式(例如摘掛機檢測程式、脈衝識別程式、位間隔識別程式)是由時間表排程實現的。所謂時間表排程,是指每經過交換系統的最短有效時間(這通常是指各週期性程式週期的最大公約數),都會檢查排程表的排程要求,如果某個程式在這時需要執行,則排程程式開始執行它。排程表任務如下進行初始化:

這個交換系統提供了三個週期性排程程式(摘掛機檢測程式、脈衝識別程式和位間隔識別程式),它們的呼叫週期分別為200ms、10ms和100ms,所以我們系統的最小排程時間為10ms。如圖所示,每隔10ms,我們就會檢查這個表的一行,如果該行上某一列為1,我們就執列所對應的任務,如果為0,就什麼都不做。每當執行到這個表的最後一行,排程任務會返回第一行迴圈執行。

此實驗中排程表可定義為乙個20*3的二維陣列。

三、實驗過程

實驗主要資料結構:

函式功能:完成排程表的初始化;

函式原型:initschtable(int scheduletable[schtablen][schtabwdh]);

其中schtallen和schtabwdh為在bconstant.h中的巨集定義:

#define schtablen 20//代表這個排程表為20行(相鄰行之間的時間間隔為10ms);

#define schtabwdh 3 //代表三個週期性排程任務——0:摘掛機檢測任務;1:脈衝檢測任務;2:位間隔檢測任務;

4、實驗結果

1.源程式:

#include "bconstant.h"

extern "c" _declspec(dllexport) void initschtable(int scheduletable[schtablen][schtabwdh])

return;

}2、對此程式進行編譯後執行成功,然後再對其演示,撥打的號碼為:62283166,如下圖所示:

a.撥號圖:

b.撥號成功後接通如下圖所示:

五.實驗心得與分析

通過這次實驗,時間排程表的構成和初始化過程有了較深的了解,通過實驗分析手冊中所提供的實驗原理說明,自己也畫了相應的排程表草圖,因為相隔10ms即對排程表的一行進行任務是否執行檢查即第乙個10ms後檢測排程表第0行,以此類推100ms後檢測第9行,200ms後檢測第19行,而且摘掛機檢測程式、脈衝識別程式和位間隔識別程式的呼叫週期分別為200ms、10ms和100ms,依據這些我來確定20*3的二維排程表的0/1值儲存,從而正確的實現排程表初始化。

實驗二摘掛機檢測實驗

一、 實驗目的

摘掛機檢測實驗用來考查自己對摘掛機檢測原理的掌握情況。

二、 實驗原理及設計

設使用者在掛機狀態時掃瞄輸出為「0」,使用者在摘機狀態時掃瞄輸出為「1」,摘掛機掃瞄程式的執行週期為200ms,那麼摘機識別,就是在200ms的週期性掃瞄中找到從「0」到「1」的變化點,掛機識別就是在200ms的週期性掃瞄中找到從「1」到「0」的變化點,該原理的示意圖如下所示:

在我們的實驗中,我們把前200ms的線路狀態儲存以備這次可以讀取,同時讀出這次的線路狀態,把前200ms的線路狀態取反與這次的線路狀態相與,如果為1,就說明檢測到摘機訊息了。同理,我們把這次的線路狀態取反再與前200ms的線路狀態相與,如果為1就說明檢測到掛機訊息了,然後把摘掛機訊號作為事件放入摘掛機佇列中。

三、 實驗過程

1、實驗主要資料結構:

函式功能為:檢測到摘、掛機事件,並把該事件放入到摘掛機事件佇列中。

函式原型:void scanfor200(int linestate200[linemax],int linestate[linemax],uponnode * head1, uponnode* end1);其中linemax為線路總數,是定義在"bconstant.h"中的乙個巨集,linestate200[linemax]為已儲存的200ms前線路狀態,linestate[linemax]為當前的線路狀態,head1,end1為摘掛機佇列的首尾指標,該佇列已經在主程式中進行了初始化。

我們所要做的就是把檢測到的摘掛機事件以摘掛機佇列節點的形式插入到摘掛機事件佇列中。

資料結構說明:

標頭檔案:"bconstant.h";(以下的資料結構都已在該檔案中定義)

linemax:最大線路數;

int linestate200[linemax],linestate[linemax]:線路從0開始編號;狀態:1:有電流,0無電流;

enum uporon :為摘掛機區別符:ehandup表示摘機,ehandon表示掛機;

struct uponnode //摘掛機佇列節點結構

;2、實驗主體流程圖:

四、 實驗結果

1、 源程式

#include "bconstant.h"

#include "malloc.h"

#include "string.h"

extern "c" _declspec(dllexport) void scanfor200(int linestate200[linemax], int linestate[linemax],uponnode * head1,uponnode * end1)

if(linestate200[i]&&(!linestate[i])) //前200ms 線路狀態和現線路狀態取反相與(線路號一致)

linestate200[i]=linestate[i];//將本次線路號為i的線路狀態儲存

}return;

}//此函式不需修改

extern "c" _declspec(dllexport) void freenode(uponnode * node)

2、 對此程式進行編譯後執行成功,然後再對其演示,撥打的號碼為:62280886,如下圖所:

a、撥號圖:

b、撥號成功後的圖:

五、 實驗心得與分析

在這個實驗中我了解到摘掛機狀態的檢測方法:前200ms 線路狀態取反和現線路狀態相與(線路號一致)結果為真則為摘機、前200ms 線路狀態和現線路狀態取反相與(線路號一致)結果為真則為掛機,並且用程式實現,實驗中通過對摘機和掛機進行檢測並將其結果存入結構體變數中並放入摘掛機鍊錶佇列中。由於函式中運用了malloc函式和null故新增了相應的標頭檔案。

實驗三脈衝計數實驗

一、 實驗目的

脈衝計數實驗用來考察查自己對脈衝識別原理的掌握情況。

二、 實驗原理及設計

撥號盤所發出的撥號脈衝有規定的引數。我國規定的號盤脈衝的引數有:脈衝速度:

即每秒鐘送出的脈衝個數,規定的脈衝速度為每秒鐘8-16個脈衝; 脈衝斷續比:即脈衝寬度(斷)和間隔寬度(續)之比,規定的脈衝斷續比為1:1-3:1。

通訊原理課程設計報告

目錄第一章概述 4 第二章 systemview動態系統 軟體簡介 5 2.1 systemview系統特點 5 2.2 systemview 步驟 5 第三章課程設計內容 6 3.1 設計要求 6 3.2 2dpsk系統組成及原理簡介 7 3.3誤位元率簡介 9 第四章 模型的建立及結果分析 10...

《通訊原理》課程設計報告

報告 二 二 學年第學期學號姓名 班級電子工程系 設計任務書 設計題目 16qam調製與解調系統的設計 設計目的 通過此綜合設計,加深基本理論知識的理解,加強理論聯絡實際,增強動手能力,提高通訊系統 的設計技能。設計內容 1.設計任務 利用所學通訊知識,設計乙個16qam調製與解調系統,並用syst...

通訊原理》課程設計報告

報告題目16qam調製與解調系統的設計 二 一四 二 一五學年第二學期 學號 12160110 姓名王晶晶 班級通訊q1241 指導老師田浩 資訊工程學院 一.設計指標要求 2 1.1設計任務 2 1.2設計要求 2 二.設計原理 2 2.1 16qam調製解調原理及其框圖說明 2 三.system...