第一篇:Android實(shí)驗(yàn)報(bào)告—網(wǎng)絡(luò)通信
實(shí)驗(yàn)三
Android網(wǎng)絡(luò)通信
實(shí)驗(yàn)?zāi)康模?/p>
本實(shí)驗(yàn)的目的是使學(xué)生深入了解利用Intent實(shí)現(xiàn)進(jìn)程間的通信過程。學(xué)會(huì)利用Intent進(jìn)行Activity的跳轉(zhuǎn),以及鏈接網(wǎng)頁信息;學(xué)會(huì)利用Intent將其他Activity的信息返回到Activity中的方法。體會(huì)Activity間通信的過程。
實(shí)驗(yàn)要求:
編程實(shí)現(xiàn)下述功能:主界面上有一個(gè)“登錄”按鈕和“鏈接網(wǎng)頁”按鈕,點(diǎn)擊“登錄”按鈕后打開一個(gè)新的Activity;新的Activity上面有輸入用戶名和密碼的控件(如下圖所示)點(diǎn)擊“鏈接網(wǎng)頁”按鈕,新的Activity上面有輸入U(xiǎn)ri信息的控件,可以鏈接到相應(yīng)的網(wǎng)站,在用戶關(guān)閉這個(gè)Activity后,返回到主界面中
程序界面如下圖所示:
[實(shí)現(xiàn)提示]
1、建立Android工程,其中 工程名稱:WebCommunication579
包名稱:cn.edu.bistu.dj1001.WebCommunication579 Activity名稱:WebCommunication579
2、工程建立完畢后,首先進(jìn)行界面設(shè)計(jì),建立相應(yīng)的子Layout界面
3、在工程中添加相應(yīng)的.java文件,處理各個(gè)Activity的事件響應(yīng)
4、在Manifest中添加新建的Activity信息,進(jìn)行注冊(cè)。
程序源碼:
主界面java文件代碼: package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;
public class WebCommunication579 extends Activity { private Button btnLogin,btnGoToWeb;private TextView show;private static final int SUBACTIVITY1 = 1;@Override
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);btnLogin=(Button)findViewById(R.id.btnLogin);btnGoToWeb=(Button)findViewById(R.id.btnGoToWeb);show=(TextView)findViewById(R.id.A1show);
btnLogin.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(WebCommunication592.this, activity1.class);
startActivityForResult(intent, SUBACTIVITY1);
}});btnGoToWeb.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(WebCommunication592.this, activity2.class);startActivity(intent);}});} protected void onActivityResult(int requestCode, int resultCode, Intent data){ super.onActivityResult(requestCode, resultCode, data);switch(requestCode){ case SUBACTIVITY1: if(resultCode == RESULT_OK){Uri uriData = data.getData();show.setText(uriData.toString());} break;}};} 界面一java文件代碼:
package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;
public class activity1 extends Activity { private Button btnOK,btnCancel;private EditText edtInput;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity1);edtInput=(EditText)findViewById(R.id.edtA1Input);btnOK=(Button)findViewById(R.id.btnA1OK);btnCancel=(Button)findViewById(R.id.btnA1Cancel);btnOK.setOnClickListener(new OnClickListener(){
public void onClick(View v){ String uriString = edtInput.getText().toString();Uri data = Uri.parse(uriString);Intent result = new Intent(null, data);setResult(RESULT_OK, result);finish();}});btnCancel.setOnClickListener(new OnClickListener(){ public void onClick(View view){ finish();}});}} 界面二java文件代碼:
package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;
import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;
public class activity2 extends Activity { private EditText edtInput;private Button btnOK,btnCancel;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity2);edtInput=(EditText)findViewById(R.id.edtA2Input);btnOK=(Button)findViewById(R.id.btnA2OK);btnCancel=(Button)findViewById(R.id.btnA2Cancel);btnOK.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(edtInput.getText().toString()));startActivity(intent);}});btnCancel.setOnClickListener(new OnClickListener(){
public void onClick(View v){
finish();
}});}} 主界面的xml文件代碼:
xmlns:android=“http://schemas.android.com/apk/res/android” android:orientation=“Horizontal” android:layout_width=“fill_parent” android:layout_height=“fill_parent”> android:text=“" android:id=”@+id/A1show“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“>
界面一的xml文件代碼:
android:orientation=”Horizontal“ android:layout_width=”fill_parent“ android:layout_height=”fill_parent“ xmlns:android=”http://schemas.android.com/apk/res/android“> android:layout_width=”wrap_content“ android:layout_height=”wrap_content“> android:text=”用戶名和密碼:“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“> android:text=”“ android:id=”@+id/edtA1Input“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“> android:layout_width=”wrap_content“ android:layout_height=”wrap_content“>
界面二的xml文件代碼: xmlns:android=”http://schemas.android.com/apk/res/android“> android:text=”“ android:id=”@+id/edtA2Input“ android:layout_width=”match_parent“ android:layout_height=”wrap_content“>
程序運(yùn)行結(jié)果:
程序包:
主界面:
點(diǎn)擊登錄按鈕后:
點(diǎn)擊確定按鈕后:
點(diǎn)擊鏈接網(wǎng)頁按鈕后:
點(diǎn)擊確定按鈕后:
實(shí)驗(yàn)心得體會(huì):
通過本次實(shí)驗(yàn)深入了解了Intent實(shí)現(xiàn)進(jìn)程間的通信過程。熟悉了利用Intent將其他Activity的信息返回到Activity中的方法,可以更熟練的使用安卓編程軟件。
第二篇:android實(shí)驗(yàn)報(bào)告
移動(dòng)應(yīng)用開發(fā)實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)名稱
音樂播放器
班
級(jí)
學(xué)
號(hào)
姓
名
指導(dǎo)教師
實(shí)驗(yàn)成績
2016 年04月
一、實(shí)驗(yàn)?zāi)康?/p>
本項(xiàng)目是一款基于Android手機(jī)平臺(tái)的音樂播放器,使Android手機(jī)擁有個(gè)性的多媒體播放器,使手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設(shè)計(jì)者更加熟練Android的技術(shù)和其它在市場(chǎng)上的特點(diǎn)。
二、實(shí)驗(yàn)內(nèi)容及要求
在其中寫清楚這個(gè)實(shí)驗(yàn)具體要你做什么,怎么做,要達(dá)到什么樣的效果等。本設(shè)計(jì)實(shí)現(xiàn)的主要功能是播放Mp3,Wav多種格式的音樂文件,并且能夠控制播放,暫停,停止,下一首,上一首播放列等基本播放控制功能,界面簡(jiǎn)明,操作簡(jiǎn)單。
三、實(shí)驗(yàn)方案設(shè)計(jì)
在其中寫清楚你的程序的詳細(xì)設(shè)計(jì),用流程圖配文字的形式描述。如果其中涉及到算法,一定要把算法闡述清楚。
3.1.1假設(shè)安裝了音樂播放器的用戶是系統(tǒng)的主要設(shè)計(jì)對(duì)象,其擁有以下操作,啟動(dòng)軟件、播放音樂、暫停播放、停止播放、退出軟件,其用例圖如下
圖2.1 播放器基本用例圖
3.1.2用例分析 ?用例名稱:?jiǎn)?dòng)軟件 參與者:用戶
目標(biāo):使得用戶啟動(dòng)軟件并加載手機(jī)和sd卡上的音頻文件到播放列表 前置條件:無
基本事件流:1.用戶啟動(dòng)軟件
2.播放器將播放列表中的當(dāng)前的歌曲
?用例名稱:播放 參與者:用戶
目標(biāo):使得用戶可以播放在播放列表中選中的歌曲 前置條件:播放器正在運(yùn)行
基本事件流:1.用戶單擊“播放”按鈕
2.播放器將播放列表中的當(dāng)前的歌曲
?用例名稱:暫停 參與者:用戶
目標(biāo):使得用戶可以暫停正在播放的歌曲 前置條件:歌曲正在播放且未停止和暫停 基本事件流:1.用戶單擊“暫?!卑粹o
2.播放器將暫停當(dāng)前的歌曲
④用例名稱:停止 參與者:用戶
目標(biāo):使得用戶可以停止正在播放的歌曲 前置條件:歌曲正在播放或暫停 基本事件流:1.用戶單擊“停止”按鈕
2.播放器將停止當(dāng)前播放的歌曲
⑤用例名稱:推出 參與者:用戶
目標(biāo):使得用戶退出或者后臺(tái)播放音樂 前置條件:程序在運(yùn)行
基本事件流:1.用戶按返回鍵
2.播放器退出或者進(jìn)入后臺(tái)播放
四、實(shí)驗(yàn)測(cè)試
Step1.啟動(dòng)軟件后,軟件自動(dòng)檢索手機(jī)和sd卡的音頻文件,并組織顯示成列表.Step2.點(diǎn)擊列表的歌曲名字。
Step3.播放音樂。
Step4.點(diǎn)擊暫停,音樂暫停
Step5.點(diǎn)擊播放 轉(zhuǎn)到step3 Step6.點(diǎn)擊停止 停止播放音樂
Step7.點(diǎn)擊退出,若音樂處于播放狀態(tài),則音樂轉(zhuǎn)向后臺(tái)播放,界面退出。
Step8.點(diǎn)擊退戶,若音樂處于暫?;蛘咄V?fàn)顟B(tài),直接退出。
音樂播放器流程圖
4.1MusicInfoController類
這個(gè)類繼承于service,是播放音樂的服務(wù)類。播放音樂,暫停音樂,停止播放等操作都封裝在這個(gè)類中。
主要的執(zhí)行動(dòng)作有:
4.1.1.類啟動(dòng) onCreate(){
mMediaPlayer = new MediaPlayer();//分配一個(gè)播放對(duì)象
mMediaPlayer.setOnPreparedListener(mPrepareListener);//綁定之前
mMediaPlayer.setOnCompletionListener(mCompleteListener);//綁定之 后
}
4.1.2.服務(wù)綁定activity
MediaPlayer.OnCompletionListener mCompleteListener = new
MediaPlayer.OnCompletionListener()//實(shí)例化一個(gè)綁定監(jiān)聽器的匿名類
{
public void onCompletion(MediaPlayer mp)//完成綁定后
{
broadcastEvent(PLAY_COMPLETED);//廣播消息
}
};
4.2MusicInfoController類
這個(gè)類主要用于獲取android系統(tǒng)中的音頻文件,并提供訪問接口,它是一個(gè)單例類。
4.2.1獲得播放文件列表
private Cursor query(Uri uri, String[] prjs, String selections, String[] selectArgs, String order){ ContentResolver resolver = pApp.getContentResolver();//取得一個(gè)連接對(duì)象if(resolver == null){
return null;
}
return resolver.query(uri, prjs, selections, selectArgs, order);} public Cursor getAllSongs(){
return query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);//查詢ContentResolver 的所有音頻文件
} 4.3MusicList類
改類繼承于ListActivity,主要用于顯示歌曲列表,并且封裝部分操作,以及與父級(jí)目標(biāo)通信。
4.3.1播放
protected void onListItemClick(ListView l, View v, int position, long id){ //歌曲列表的某項(xiàng)被點(diǎn)擊
super.onListItemClick(l, v, position, id);
if(mCursor == null ||mCursor.getCount()== 0){
return;
}
mCursor.moveToPosition(position);//游標(biāo)移動(dòng)到當(dāng)前路徑
String url = mCursor.getString(mCursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));//取得絕對(duì)路徑
mMusicPlayerService.setDataSource(url);//傳遞絕對(duì)路徑
mMusicPlayerService.start();//播放音樂
}
4.3.2暫停/播放
mPlayPauseButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
if(mMusicPlayerService!= null &&
mMusicPlayerService.isPlaying()){
mMusicPlayerService.pause();//音樂播放的服務(wù)暫停
mPlayPauseButton.setText(R.string.play);//改變按鈕文字
} else if(mMusicPlayerService!= null){
mMusicPlayerService.start();//如果已經(jīng)是暫停,則播放音樂
mPlayPauseButton.setText(R.string.pause);//改變文字
}
}
});
4.3.3停止
mStopButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
// Perform action on click
if(mMusicPlayerService!= null){
mTextView.setVisibility(View.VISIBLE);//改變文字狀態(tài)
mPlayPauseButton.setVisibility(View.INVISIBLE);//隱藏按鈕
mStopButton.setVisibility(View.INVISIBLE);//隱藏停止按鈕
mMusicPlayerService.stop();//后臺(tái)音樂停止播放
}
}
});4.4MusicPlayerApp類
該類繼承與Application,是程序的生存類??梢詷?biāo)識(shí)音樂播放器的生命周期,包括音樂在后臺(tái)播放等。
4.4.1單例模式
public void onCreate(){
super.onCreate();
mMusicInfoController = MusicInfoController.getInstance(this);//返回該類的一個(gè)唯一實(shí)例
}
public MusicInfoController getMusicInfoController(){
return mMusicInfoController;}
五、程序的使用手冊(cè)
系統(tǒng)編譯生成apk文件,將apk文件拷到手機(jī)或者sd卡中,直接打開即可安裝,或者安裝360手機(jī)助手通過usb調(diào)試的方式進(jìn)行安裝。
啟動(dòng)軟件后,加載歌曲列表現(xiàn)在這個(gè)界面上,如01表示歌曲名,unknown表示歌曲的演唱者
軟件啟動(dòng)界面
從加載的歌曲列表中點(diǎn)擊要播放的歌曲,開始播放
音樂播放界面
六、心得體會(huì)
通過對(duì)Android手機(jī)平臺(tái)的音樂播放器軟件的開發(fā),使我對(duì)Android音樂播放器系統(tǒng)的整體設(shè)計(jì)有一個(gè)深入的了解,對(duì)整個(gè)流程也會(huì)有一個(gè)清晰的認(rèn)識(shí)。開發(fā)Android音樂播放器,要抓住開發(fā)的核心部分,音樂播放器大體由播放主界面、播放列表、菜單、播放設(shè)置、文件瀏覽、歌曲搜索六大核心組成,只要掌握了這六部分的開發(fā),音樂播放器就能初具規(guī)模。而其它的功能都是在這六個(gè)功能的基礎(chǔ)上去補(bǔ)充添加的,但是這是功能的確是必不可少的功能,否則就不能算是音樂播放器了。
第三篇:無線網(wǎng)絡(luò)通信實(shí)驗(yàn)報(bào)告
Compilation of reports 20XX 報(bào) 告 匯 編
實(shí)
驗(yàn)
報(bào)
告
課程名稱:
無線網(wǎng)絡(luò)通信技術(shù)
實(shí)驗(yàn)項(xiàng)目:
無線網(wǎng)絡(luò)通信技術(shù)實(shí)驗(yàn)
實(shí)驗(yàn)地點(diǎn):
逸夫樓
404
教室
專業(yè)班級(jí):
軟 1121 班 學(xué)號(hào):
2011005541
學(xué)生姓名:
高
貝
指導(dǎo)教師:
張巍
2014 年月
日
報(bào)告文檔·借鑒學(xué)習(xí)
太原理工大學(xué)實(shí)驗(yàn)報(bào)告一
學(xué)院名稱 軟件學(xué)院 專業(yè)班級(jí) 1121 實(shí)驗(yàn)成績
學(xué)生姓名 高貝 學(xué)號(hào) 2011005541
實(shí)驗(yàn)日期 2014.5.9 課程名稱 無線網(wǎng)絡(luò)通信技術(shù)
實(shí)驗(yàn)題目 實(shí)驗(yàn)一
四相移相鍵控(QPSK)調(diào)制及解調(diào)實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康暮鸵螅?/p>
1、掌握 QPSK 調(diào)制解調(diào)原理及特性。
2、掌握利用 MATLAB 編程實(shí)現(xiàn)調(diào)制及解調(diào)的方法。
二、實(shí)驗(yàn)內(nèi)容: 1、利用 MATLAB 編程實(shí)現(xiàn) QPSK 調(diào)制及解調(diào)。
2、觀察 I、Q 兩路基帶信號(hào)的特征及與輸入 NRZ 碼的關(guān)系。
3、觀察 I、Q 調(diào)制解調(diào)過程中各信號(hào)變化。
三、主要儀器設(shè)備 Win7 32 位操作系統(tǒng)筆記本電腦及 MATLAB R2009a 四、主要操作方法與實(shí)驗(yàn)步驟 在 matlab 下運(yùn)行下列代碼:
程序代碼 %日期
2013.1.14 %功能
QPSK的調(diào)制解調(diào),基帶信號(hào)點(diǎn)數(shù)t(限偶數(shù)),基波頻率w0可設(shè)置 clear all;
nb=32;
% 傳輸?shù)谋忍財(cái)?shù)
T=1;
% 基帶信號(hào)寬度,也就是基波頻率 fc=8/T;
% 載波頻率 ml=2;
% 調(diào)制信號(hào)類型的一個(gè)標(biāo)志位(選取2的原因見23行)
c = 4*nb;
%單周期采樣點(diǎn)數(shù) delta_T=T/c;
% 采樣間隔 fs=1/delta_T;
% 采樣頻率 t=0:delta_T:nb*T-delta_T
% 限定t的取值范圍 c * nb N=length(t);
% 采樣數(shù)
報(bào)告文檔·借鑒學(xué)習(xí)%%%%%%%%%%%%%%%%%%%
調(diào)制部分 % 基帶信號(hào)的產(chǎn)生 data=fix(2*rand(1,nb));
% 調(diào)用一個(gè)隨機(jī)函數(shù)(0 or 1),輸出到一個(gè)1*100的矩陣 datanrz=data.*2-1;
% 變成極性碼 for i=1:nb
data1((i-1)/delta_T+1:i/delta_T)=datanrz(i);% 將極性碼變成對(duì)應(yīng)的波形信號(hào) end
% 將基帶信號(hào)變換成對(duì)應(yīng)波形信號(hào) for i=1:nb
data0((i-1)/delta_T+1:i/delta_T)=data(i);% 將基帶信號(hào)變成對(duì)應(yīng)的波形信號(hào) end
% 串并轉(zhuǎn)換,將奇偶位數(shù)據(jù)分開 idata=datanrz(1:ml:(nb-1));
% 將奇偶位分開,因此間隔m1為2
qdata=datanrz(2:ml:nb);% QPSK信號(hào)的調(diào)制 for i=1:nb/2
ich(2*((i-1)/delta_T+1):2*(i/delta_T))=idata(i);end for ii=1:N/T
a(ii)=(1/sqrt(2))*cos(2*pi*fc*t(ii));
end idata1=ich.*a;
% 奇數(shù)位數(shù)據(jù)與余弦函數(shù)相乘,得到一路的調(diào)制信號(hào) for j=1:nb/2
qch(2*((j-1)/delta_T+1):2*(j/delta_T))=qdata(j);end
for jj=1:N/T
b(jj)=(1/sqrt(2))*sin(2*pi*fc*t(jj));end qdata1=qch.*b;% 偶數(shù)位數(shù)據(jù)與余弦函數(shù)相乘,得到另一路的調(diào)制信號(hào) st = idata1-qdata1;%%%%%%%%%%%%%%%%%%%%%%%%信道中 SNR=0;
% 信噪比 stn = awgn(st,SNR);%%%%%%%%%%%%%%%%%%%%%%%%解調(diào)%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%設(shè)計(jì)濾波器%%%%%%%% [B,A] = butter(3,0.01,“l(fā)ow”);[h1,w] = freqz(B,A);%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解調(diào) ist = stn.* a;p =length(ist)qst = stn.*(-b);
報(bào)告文檔·借鑒學(xué)習(xí)%%%%%%%%%%%%%%%%%%%%濾波 istl = filter(B,A,ist);qstl = filter(B,A,qst);%%%%%%%%%%%%%%%%%%%%%%%%%抽樣判決%%%%%%%%%%
for i = 1 : nb/2
if istl(2*(p/nb)*(i-1)+(1*(p/nb)))>= 0
in(i)= 1;
else in(i)= 0;
end
if qstl(2*(p/nb)*(i-1)+(1*(p/nb)))>= 0
qn(i)= 1;
else qn(i)= 0;
end end %%%%%%%%%%%%%%%%%并串轉(zhuǎn)換 for i = 1 : nb/2
y(2*i-1)= in(i);
y(2*i)= qn(i);end for i = 1 : nb
yy((i-1)/delta_T+1:i/delta_T)= y(i);end data y N figure;subplot(4,1,1)plot(data0*0.7),title(“基帶信號(hào),4096維二進(jìn)制序列,對(duì)應(yīng)向量是data0”);subplot(4,1,2)plot(data1*0.7),title(“雙極性信號(hào),4096維雙極性序列,對(duì)應(yīng)向量是data1”);subplot(4,1,3)plot(ich*0.7),title(“I路數(shù)據(jù),4096維雙極性序列,對(duì)應(yīng)向量是ich”);subplot(4,1,4)plot(qch*0.7),title(“Q路數(shù)據(jù),4096維雙極性序列,對(duì)應(yīng)向量是qch ”);figure;subplot(4,1,1)plot(ist),title(“相干解調(diào)I路信號(hào),4096維且值為(-1,1)的序列,對(duì)應(yīng)向量是ist ”);subplot(4,1,2)plot(qst),title(“相干解調(diào)Q路信號(hào),4096維且值為(-1,1)的序列,對(duì)應(yīng)向量是qst ”);subplot(4,1,3)plot(istl),title(“I路解調(diào)波形,4096維且值為(-1,1)的序列,對(duì)應(yīng)向量是istl ”);subplot(4,1,4)plot(qstl),title(“Q路解調(diào)波形,4096維且值為(-1,1)的序列,對(duì)應(yīng)向量是qstl ”);
報(bào)告文檔·借鑒學(xué)習(xí)%%%%%%%%%%%%%%%%%畫圖%%%%%%%%%%%%%%%%%%%%%%%%%%% figure;subplot(4,2,1);plot(data0*0.7),title(“基帶信號(hào)”);subplot(4,2,2);psd(abs(fft(data0))),title(“基帶信號(hào)頻譜”);subplot(4,2,3);plot(st),title(“調(diào)制信號(hào)”);subplot(4,2,4);psd(abs(fft(st))),title(“調(diào)制信號(hào)頻譜”);subplot(4,2,5);plot(stn),title(“stn信道波形”);subplot(4,2,6);psd(abs(fft(stn))),title(“經(jīng)過高斯信道信號(hào)頻譜”);subplot(4,2,7);plot(yy*0.7),title(“解調(diào)后的基帶信號(hào)”);subplot(4,2,8);psd(abs(fft(yy))),title(“解調(diào)后的基帶信號(hào)頻譜”);五、實(shí)驗(yàn)結(jié)果與分析 結(jié)果附圖:
報(bào)告文檔·借鑒學(xué)習(xí)
報(bào)告文檔·借鑒學(xué)習(xí)
六、討論、心得 第一個(gè)實(shí)驗(yàn)因?yàn)槔蠋煱汛a已經(jīng)附給我們,直接在 MATLAB 下運(yùn)行此代碼就可出現(xiàn)結(jié)果。通過學(xué)習(xí)老師的實(shí)驗(yàn)一 PPT 以及實(shí)驗(yàn)指導(dǎo)書,了解 掌握 QPSK 調(diào)制解調(diào)原理及特性,和掌握利用 MATLAB 編程實(shí)現(xiàn)調(diào)制及解調(diào)的方法。
七 七.輔導(dǎo)教師點(diǎn)評(píng):
教師簽字:
報(bào)告文檔·借鑒學(xué)習(xí)
太原理工大學(xué)實(shí)驗(yàn)報(bào)告二
學(xué)院名稱 軟件學(xué)院 專業(yè)班級(jí) 1121 實(shí)驗(yàn)成績
學(xué)生姓名 高貝 學(xué)號(hào) 2011005541
實(shí)驗(yàn)日期 2014.5.10 課程名稱 無線網(wǎng)絡(luò)通信技術(shù)
實(shí)驗(yàn)題目 m 序列產(chǎn)生及其特性實(shí)驗(yàn) 一.
實(shí)驗(yàn)?zāi)康暮鸵螅?/p>
通過本實(shí)驗(yàn)掌握 m 序列的產(chǎn)生方法、特性及應(yīng)用。
二、實(shí)驗(yàn)內(nèi)容: 1、編寫 MATLAB 程序生成并觀察 m 序列,識(shí)別其特征。
2、編寫程序驗(yàn)證 m 序列的相關(guān)性質(zhì),要求至少驗(yàn)證一條性質(zhì)。
三、主要儀器設(shè)備 Win7 32 位操作系統(tǒng)筆記本電腦及 MATLAB R2009a 四、主要操作方法與實(shí)驗(yàn)步驟:
(1)按照?qǐng)D 2-1,設(shè)計(jì) 4 階 m 序列產(chǎn)生方法。
?1a2a3a4a移位時(shí)鐘信號(hào)模 模2 相加器序列輸出
圖 2-1階移位寄存器序列生成器
編寫MATLAB程序并上機(jī)調(diào)試,最后要求輸出周期為15的m序列
(3)編寫程序驗(yàn)證 m 序列的相關(guān)性質(zhì),要求至少驗(yàn)證一條性質(zhì)。
m m 序列的特點(diǎn) ①平衡特性 ?
在 m 序列的一周期中,“1”的個(gè)數(shù)僅比“0”的個(gè)數(shù)多 1,即“1”的個(gè)數(shù)為(N+1)/2,“0”的個(gè)數(shù)為(N-1)/2。(N 為周期)
報(bào)告文檔·借鑒學(xué)習(xí)? 例如,由 4 階移位寄存器序列生成器產(chǎn)生的序列 *** 中,“1”的個(gè)數(shù)為 8,“0”的個(gè)數(shù)為 7。
②游程分布特性
? 把一個(gè)序列中取值相同的那些連在一起的元素合稱為一個(gè)“游程”。
? 在一個(gè)游程中元素的個(gè)數(shù)稱為游程長度。例如,同樣是在*** 序列,共有 000、1111、0、1、0、11、00 和 1 共 8 個(gè)游程。
? 其中,長度為 4 的游程有 1 個(gè);長度為 3 的游程有 1 個(gè);長度為 2 的游程有 2 個(gè);長度為 1 的游程有 4 個(gè)。
? 在 m 序列中,長度為 1 的游程占游程總數(shù)的 1/2;長度為 2 的游程占游程總數(shù)的 1/4;長度為 3 的游程占游程總數(shù)的 1/8……。
③延位相加特性
一個(gè) m 序列 M1 與其經(jīng)任意次遲延移位產(chǎn)生的另一個(gè)不同序列 M2 進(jìn)行模 2 相加,得到的仍是 M1 的某次遲延移位序列 M3。即:
M3=M1 ⊕ M2 例如,m=7 的 m 序列 M1 =1110010,M2 =0111001,1110010⊕0111001=1001011。而將 M1向右移位 5 次即得到 1001011 序列。
五、實(shí)驗(yàn)結(jié)果與分析 1、按照課本 P182 圖 5-5,設(shè)計(jì) 4 階 m 序列產(chǎn)生方法。
如下代碼產(chǎn)生:
X1=1;X2=0;X3=0;X4=0;%移位寄存器輸入Xi初T態(tài)(1000),Yi為移位寄存器各級(jí)輸出 m=15;
%置M序列總長度 for i=1:m
%1#
Y4=X4;
Y3=X3;
Y2=X2;
Y1=X1;
X4=Y3;
X3=Y2;
X2=Y1;
X1=xor(Y1,Y4);
%異或運(yùn)算
if Y4==0
U(i)=0;
else
U(i)=Y4;end end M=U fprintf(“1的個(gè)數(shù)”)sum(M==1)fprintf(“0的個(gè)數(shù)”)sum(M==0)
2、編寫 MATLAB 程序并上機(jī)調(diào)試,最后要求輸出周期為 15 的 m 序列“***”。
輸入上面代碼,產(chǎn)生如下圖結(jié)果:
報(bào)告文檔·借鑒學(xué)習(xí)
3、編寫程序驗(yàn)證 m 序列的相關(guān)性質(zhì),如平衡特性,游程分布特性,延位相加特性。要求至少驗(yàn)證一條性質(zhì)。
上面代碼驗(yàn)證了平衡特性。
在 m 序列的一周期中,“1”的個(gè)數(shù)僅比“0”的個(gè)數(shù)多 1,即“1”的個(gè)數(shù)(N+1)/2,“0”的個(gè)數(shù)為(N-1)/2。(N 為周期)
上面代碼實(shí)現(xiàn)的結(jié)果 1 的個(gè)數(shù)為 8,0 的個(gè)數(shù)為 7.六、討論、心得
此次實(shí)驗(yàn)中應(yīng)注意:X1=xor(Y1,Y4);
%異或運(yùn)算,是這個(gè)實(shí)驗(yàn)代碼的難點(diǎn),通過老師的提點(diǎn),和在網(wǎng)上找資料,終于解決了這個(gè)實(shí)驗(yàn)。通過本實(shí)驗(yàn)也掌握 m序列的產(chǎn)生方法和特性。
七、輔導(dǎo)教師點(diǎn)評(píng):
報(bào)告文檔·借鑒學(xué)習(xí)教師簽字:
太原理工大學(xué)實(shí)驗(yàn)報(bào)告三
學(xué)院名稱 軟件學(xué)院 專業(yè)班級(jí) 1121 實(shí)驗(yàn)成績
學(xué)生姓名 高貝 學(xué)號(hào) 2011005541
實(shí)驗(yàn)日期 2014.5.16 課程名稱 無線網(wǎng)絡(luò)通信技術(shù)
實(shí)驗(yàn)題目 信道編碼 一、實(shí)驗(yàn)?zāi)康暮鸵螅?/p>
1、學(xué)習(xí)并理解信道編碼的根本目的、技術(shù)要求等基本概念 2.學(xué)會(huì)使用MATLAB實(shí)現(xiàn)奇偶監(jiān)督碼的檢錯(cuò)模擬與分析 二、實(shí)驗(yàn)內(nèi)容: 1、輸入任意行任意列的一個(gè)二進(jìn)制序列,也即發(fā)送碼組,再加上 1 位監(jiān)督位,在接收端使用奇偶監(jiān)督碼中的偶數(shù)監(jiān)督碼進(jìn)行檢錯(cuò)。
2、若發(fā)送碼組為 1100111,要求加上 1 位監(jiān)督位,在接收端使用奇偶監(jiān)督碼中的偶數(shù)監(jiān)督碼進(jìn)行檢錯(cuò)。
三、主要儀器設(shè)備 Win7 32 位操作系統(tǒng)筆記本電腦及 MATLAB R2009a 四、主要操作方法與實(shí)驗(yàn)步驟: 1、輸入任意行任意列的一個(gè)二進(jìn)制序列,也即發(fā)送碼組,再加上 1 位監(jiān)督位,在接收端使用奇偶監(jiān)督碼中的偶數(shù)監(jiān)督碼進(jìn)行檢錯(cuò)。
如下代碼輸入 matlab 中:
方法一:
clc;clear;
m=input(“請(qǐng)輸入行:”);
n=input(“請(qǐng)輸入列:”);
A=randint(m,n);
A
for k=1:2
sum=zeros(1,m);
l=input(“請(qǐng)選擇奇偶校驗(yàn)(0、偶校驗(yàn)
1、奇校驗(yàn)):”);
for i=1:m
報(bào)告文檔·借鑒學(xué)習(xí)for j=1:n
sum(i)=sum(i)+A(i,j);
z=sum(i);
end
if rem(z,2)==l
A(i,n+1)=0;
else
A(i,n+1)=1;
end
end
A
end
方法二:
%奇偶校驗(yàn) 2 的源代碼
clc;clear;
m=input(“請(qǐng)輸入行:”);
n=input(“請(qǐng)輸入列:”);
A=randint(m,n);
A
for k=1:2
sum=zeros(1,m);
for i=1:m
for j=1:n
sum(i)=sum(i)+A(i,j);
z=sum(i);
end
if rem(z,2)==k-1
A(i,n+1)=0;
else
A(i,n+1)=1;
end
end
if k==1
fprintf(“偶校驗(yàn):”)
else
fprintf(“奇校驗(yàn):”)
end
A
end
報(bào)告文檔·借鑒學(xué)習(xí)
運(yùn)行后得到如下結(jié)果:
2、若發(fā)送碼組為 1100111,要求加上 1 位監(jiān)督位,在接收端使用奇偶監(jiān)督碼中的偶數(shù)監(jiān)督碼進(jìn)行檢錯(cuò)。
把上面代碼的隨機(jī)函數(shù)改為固定的發(fā)送碼 1100111,得到如下代碼:
clc;clear;
m=input(“請(qǐng)輸入行:”);
n=input(“請(qǐng)輸入列:”);
A=[1 1 0 0 1 1 1];
A
for k=1:2
sum=zeros(1,m);
l=input(“請(qǐng)選擇奇偶校驗(yàn)(0、偶校驗(yàn)
1、奇校驗(yàn)):”);
for i=1:m
for j=1:n
sum(i)=sum(i)+A(i,j);
z=sum(i);
end
if rem(z,2)==l
A(i,n+1)=0;
報(bào)告文檔·借鑒學(xué)習(xí)else
A(i,n+1)=1;
end
end
A
end
得到如下結(jié)果:
五、討 論、心得 這次實(shí)驗(yàn)剛開始不理解實(shí)驗(yàn)的意圖,通過網(wǎng)上查找資料了解之后才理解,學(xué)會(huì)了使用 MATLAB 實(shí)現(xiàn)奇偶監(jiān)督碼的檢錯(cuò)模擬和分析,要注意之后老師給了兩個(gè)代碼中要用到的重要的函數(shù):
randint(m,n)表示隨機(jī)產(chǎn)生一個(gè)二進(jìn)制序列;
rem(x,y)表示x 除以 y 的余數(shù),對(duì)實(shí)驗(yàn)的完成起到一定幫助。
六、輔導(dǎo)教師點(diǎn)評(píng):
報(bào)告文檔·借鑒學(xué)習(xí)教師簽字:
太原理工大學(xué)實(shí)驗(yàn)報(bào)告四
學(xué)院名稱 軟件學(xué)院 專業(yè)班級(jí) 1121 實(shí)驗(yàn)成績
學(xué)生姓名 高貝 學(xué)號(hào) 2011005541
實(shí)驗(yàn)日期 2014.5.17 課程名稱 無線網(wǎng)絡(luò)通信技術(shù)
實(shí)驗(yàn)題目 基于 Simulink 的通信系統(tǒng)建模與仿真 實(shí)驗(yàn)?zāi)康暮鸵螅?/p>
1、通過利用 matlab simulink,熟悉 matlab simulink 仿真工具。
2、通過實(shí)驗(yàn)更好地掌握課本相關(guān)知識(shí),熟悉 2ASK 的調(diào)制與解調(diào)。
二、實(shí)驗(yàn)內(nèi)容: 使用 MATLAB 中的 Simulink 工具箱搭建 ASK 調(diào)制及解調(diào)的框圖(使用模擬相乘法及相干解調(diào)法)三、主要儀器設(shè)備 Win7 32 位操作系統(tǒng)筆記本電腦,及軟件 MATLAB R2009a 四、主要操作方法與實(shí)驗(yàn)步驟: 1、首先進(jìn)入 matlab,在命令窗口輸入 simulink,進(jìn)入 simulink 界面。
2、然后使用 Simulink 中的工具,畫出如下的 ASK 調(diào)制及解調(diào)的框圖。
3、simulink 中包括很多模塊,比如積分模塊,傳遞函數(shù)模塊等,simulink 功能非常強(qiáng)大。要想在 simulink 中建模,首先要建立一個(gè)空白頁,然后將所需要的模塊從模塊庫中拖入,然后對(duì)模塊設(shè)置參數(shù)即可。完成框圖后,再單擊 File 菜單中的 Save 命令進(jìn)行保存,保存的擴(kuò)展名為.mdl 文件。
報(bào)告文檔·借鑒學(xué)習(xí)
五、實(shí)驗(yàn)結(jié)果與分析 1、打開 MATLAB 使用 Simulink 中的工具,畫出 ASK 調(diào)制及解調(diào)的框圖,然后對(duì)模塊設(shè)置參數(shù)(參數(shù)為實(shí)驗(yàn)指導(dǎo)書所要求)。
2、點(diǎn)擊黑色三角按鈕運(yùn)行,雙擊示波器,出現(xiàn)如下波形:
報(bào)告文檔·借鑒學(xué)習(xí)
由仿真結(jié)果可知,相比而言,ASK 調(diào)制在解調(diào)時(shí)對(duì)于濾波器與噪聲參數(shù)的設(shè)置最為敏感,在理論值情況下,其解調(diào)波形邊沿仍存在不規(guī)則形狀。
1.ASK 信號(hào)解調(diào)時(shí)對(duì)于濾波器參數(shù)敏感,應(yīng)注意根據(jù)實(shí)際調(diào)整濾波器參數(shù)。而且,與其他數(shù)字調(diào)制方式相比,ASK 對(duì)噪聲更為敏感。
2.當(dāng) ASK 信號(hào)信源幅度為 1 時(shí),判決器判決門限并非 0.5,而應(yīng)該設(shè)置為0.25。這是因?yàn)椋杭僭O(shè)信源為 m(t),載波為 cos 錯(cuò)誤!。
未找到引用源。,則解調(diào)信號(hào)為 m(t)* co 錯(cuò)誤!未找到引用源。= m(t)*(錯(cuò)誤!未找到引用源。)= 錯(cuò)誤!未找。
到引用源。+ 錯(cuò)誤!。
未找到引用源。,經(jīng)過低通濾波器后僅剩下 錯(cuò)誤!未找到引用源。一項(xiàng),故判決時(shí)應(yīng)將門限設(shè)置此項(xiàng)的一半,即 0.25。
六、討論、心得 此實(shí)驗(yàn)要主意示波器的兩個(gè)輸入,才能鏈接序列產(chǎn)生器。利用 MATLAB 的Simulink 的工具,很容易的進(jìn)行 2ASK 的調(diào)制與解調(diào)的仿真實(shí)驗(yàn),相對(duì)前兩個(gè)實(shí)驗(yàn),難度較低些,只要按照老師的實(shí)驗(yàn)指導(dǎo)書一步步的做,很容易得到實(shí)驗(yàn)結(jié)果。
七 七.輔導(dǎo)教師點(diǎn)評(píng):
報(bào)告文檔·借鑒學(xué)習(xí)
教師簽字:
第四篇:Android實(shí)驗(yàn)報(bào)告—UI設(shè)計(jì)(定稿)
Android UI設(shè)計(jì)
實(shí)驗(yàn)?zāi)康模?/p>
本實(shí)驗(yàn)的目的是使學(xué)生深入了解Android程序框架結(jié)構(gòu)、了解和掌握Android界面設(shè)計(jì)和界面編程。通過程序設(shè)計(jì),掌握常用界面控件、菜單、以及界面事件的響應(yīng)。
實(shí)驗(yàn)要求:
設(shè)計(jì)程序?qū)崿F(xiàn)一個(gè)電子菜單,應(yīng)具有顯示菜單功能和選菜功能。通過選擇,將選中的菜單選項(xiàng)在界面做顯示,如下圖:
[實(shí)現(xiàn)提示]
1、建立Android工程,其中 工程名稱:MenuSelect579 應(yīng)用名稱:MenuSelect579 包名稱:cn.edu.bistu.dj1001.MenuSelect579 Activity名稱:MenuSelect579
2、工程建立完畢后,進(jìn)行相應(yīng)界面設(shè)計(jì),再編寫Java文件
程序源碼
package cn.edu.bistu.dj1001.MenuSelect579;import android.app.Activity;
import android.os.Bundle;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.TextView;public class MenuSelect579 extends Activity {
/** Called when the activity is first created.*/
TextView LabelView = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LabelView =(TextView)findViewById(R.id.label);registerForContextMenu(LabelView);
}
final static int CONTEXT_MENU_1 = Menu.FIRST;
final static int CONTEXT_MENU_2 = Menu.FIRST+1;
final static int CONTEXT_MENU_3 = Menu.FIRST+2;
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo){
menu.setHeaderTitle(“今日菜單”);
menu.add(0, CONTEXT_MENU_1, 0,“宮保雞丁”);
menu.add(0, CONTEXT_MENU_2, 1,“干煸豆角”);
menu.add(0, CONTEXT_MENU_3, 2,“魚香肉絲”);
}
@Override
}
public boolean onContextItemSelected(MenuItem item){
} switch(item.getItemId()){
case CONTEXT_MENU_1: LabelView.setText(“宮保雞丁”);return true;case CONTEXT_MENU_2: LabelView.setText(“干煸豆角”);return true;case CONTEXT_MENU_3: LabelView.setText(“魚香肉絲”);return true;} return false;
程序運(yùn)行結(jié)果:
實(shí)驗(yàn)心得體會(huì):(可選)
通過本次實(shí)驗(yàn)熟悉了android的界面設(shè)計(jì)簡(jiǎn)單方法和界面編程,鍛煉了實(shí)際動(dòng)手能力,熟悉了 Android程序框架結(jié)構(gòu)、Android界面設(shè)通過程序設(shè)計(jì),掌握了常用界面控件、菜單、以及界面事件的響應(yīng)。
第五篇:太原理工大學(xué)無線網(wǎng)絡(luò)通信技術(shù)實(shí)驗(yàn)報(bào)告
實(shí)
驗(yàn)
報(bào)
告
課程名稱:
無線網(wǎng)絡(luò)通信技術(shù)
實(shí)驗(yàn)項(xiàng)目:
無線網(wǎng)絡(luò)通信技術(shù)實(shí)驗(yàn)
實(shí)驗(yàn)地點(diǎn):
致遠(yuǎn)樓 B503 教室
專業(yè)班級(jí):
**********
學(xué)號(hào):
**********
學(xué)生姓名:
******
指導(dǎo)教師:
張巍
2017 年 4 月 2 日
太原理工大學(xué)實(shí)驗(yàn)報(bào)告一
學(xué)院名稱
專業(yè)班級(jí)
實(shí)驗(yàn)成績
學(xué)生姓名
學(xué)號(hào)
實(shí)驗(yàn)日期
課程名稱 無線網(wǎng)絡(luò) 通信技術(shù)
實(shí)驗(yàn)題目 實(shí)驗(yàn)一
四相移相鍵控(QPSK)調(diào)制及解調(diào)實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康暮鸵螅?/p>
1、掌握 QPSK 調(diào)制解調(diào)原理及特性。
2、掌握利用 MATLAB 編程實(shí)現(xiàn)調(diào)制及解調(diào)的方法。
二、實(shí)驗(yàn)內(nèi)容: 1、利用 MATLAB 編程實(shí)現(xiàn) QPSK 調(diào)制及解調(diào)。
2、觀察 I、Q 兩路基帶信號(hào)的特征及與輸入 NRZ 碼的關(guān)系。
3、觀察 I、Q 調(diào)制解調(diào)過程中各信號(hào)變化。
三、主要儀器設(shè)備 Win10
位操作系統(tǒng)筆記本電腦及 MATLAB R2009a 四、主要操作方法與實(shí)驗(yàn)步驟: %日期
2017 %功能
QPSK 的調(diào)制解調(diào),基帶信號(hào)點(diǎn)數(shù) t(限偶數(shù)),基波頻率 w0 可設(shè)置 clear all;
nb=32;
% 傳輸?shù)谋忍財(cái)?shù)
T=1;
% 基帶信號(hào)寬度,也就是基波頻率 fc=8/T;
% 載波頻率 ml=2;
% 調(diào)制信號(hào)類型的一個(gè)標(biāo)志位 c = 4*nb;
%單周期采樣點(diǎn)數(shù) delta_T=T/c;
% 采樣間隔 fs=1/delta_T;
% 采樣頻率 t=0:delta_T:nb*T-delta_T
% 限定 t 的取值范圍 c * nb N=length(t);
% 采樣數(shù)
%%%%%%%%%%%%%%%%%%%
調(diào)制部分 % 基帶信號(hào)的產(chǎn)生 data=fix(2*rand(1,nb));
% 調(diào)用一個(gè)隨機(jī)函數(shù)(0 or 1),輸出到一個(gè) 1*100 的矩陣 datanrz=data.*2-1;
% 變成極性碼 for i=1:nb
data1((i-1)/delta_T+1:i/delta_T)=datanrz(i);% 將極性碼變成對(duì)應(yīng)的波形信號(hào)
end
% 將基帶信號(hào)變換成對(duì)應(yīng)波形信號(hào) for i=1:nb
data0((i-1)/delta_T+1:i/delta_T)=data(i);% 將基帶信號(hào)變成對(duì)應(yīng)的波形信號(hào) end
% 串并轉(zhuǎn)換,將奇偶位數(shù)據(jù)分開 idata=datanrz(1:ml:(nb-1));
% 將奇偶位分開,因此間隔 m1 為 2
qdata=datanrz(2:ml:nb);% QPSK 信號(hào)的調(diào)制 for i=1:nb/2
ich(2*((i-1)/delta_T+1):2*(i/delta_T))=idata(i);end for ii=1:N/T
a(ii)=(1/sqrt(2))*cos(2*pi*fc*t(ii));
end idata1=ich.*a;
% 奇數(shù)位數(shù)據(jù)與余弦函數(shù)相乘,得到一路的調(diào)制信號(hào) for j=1:nb/2
qch(2*((j-1)/delta_T+1):2*(j/delta_T))=qdata(j);end
for jj=1:N/T
b(jj)=(1/sqrt(2))*sin(2*pi*fc*t(jj));end qdata1=qch.*b;% 偶數(shù)位數(shù)據(jù)與余弦函數(shù)相乘,得到另一路的調(diào)制信號(hào) st = idata1-qdata1;%%%%%%%%%%%%%%%%%%%%%%%%信道中 SNR=0;
% 信噪比 stn = awgn(st,SNR);%%%%%%%%%%%%%%%%%%%%%%%解調(diào)%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%設(shè)計(jì)濾波器%%%%%%%% [B,A] = butter(3,0.01,“l(fā)ow”);[h1,w] = freqz(B,A);%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解調(diào) ist = stn.* a;p =length(ist)qst = stn.*(-b);%%%%%%%%%%%%%%%%%%%%濾波 istl = filter(B,A,ist);qstl = filter(B,A,qst);%%%%%%%%%%%%%%%%%%%%%%%%%抽樣判決%%%%%%%%%%
for i = 1 : nb/2
if istl(2*(p/nb)*(i-1)+(1*(p/nb)))>= 0
in(i)= 1;
else in(i)= 0;
end
if qstl(2*(p/nb)*(i-1)+(1*(p/nb)))>= 0
qn(i)= 1;
else qn(i)= 0;
end end %%%%%%%%%%%%%%%%%并串轉(zhuǎn)換 for i = 1 : nb/2
y(2*i-1)= in(i);
y(2*i)= qn(i);end for i = 1 : nb
yy((i-1)/delta_T+1:i/delta_T)= y(i);end data y N figure;subplot(4,1,1)plot(data0*0.7),title(“基帶信號(hào),4096 維二進(jìn)制序列,對(duì)應(yīng)向量是 data0”);subplot(4,1,2)plot(data1*0.7),title(“雙極性信號(hào),4096 維雙極性序列,對(duì)應(yīng)向量是 data1”);subplot(4,1,3)plot(ich*0.7),title(“I 路數(shù)據(jù),4096 維雙極性序列,對(duì)應(yīng)向量是 ich”);subplot(4,1,4)plot(qch*0.7),title(“Q 路數(shù)據(jù),4096 維雙極性序列,對(duì)應(yīng)向量是 qch ”);figure;subplot(4,1,1)plot(ist),title(“相干解調(diào) I 路信號(hào),4096 維且值為(-1,1)的序列,對(duì)應(yīng)向量是 ist ”);subplot(4,1,2)plot(qst),title(“相干解調(diào) Q 路信號(hào),4096 維且值為(-1,1)的序列,對(duì)應(yīng)向量是 qst ”);subplot(4,1,3)plot(istl),title(“I 路解調(diào)波形,4096 維且值為(-1,1)的序列,對(duì)應(yīng)向量是 istl ”);subplot(4,1,4)plot(qstl),title(“Q 路解調(diào)波形,4096 維且值為(-1,1)的序列,對(duì)應(yīng)向量是 qstl ”);%%%%%%%%%%%%%%%畫圖%%%%%%%%%%%%%%%%%%%%%%%%%%% figure;subplot(4,2,1);plot(data0*0.7),title(“基帶信號(hào)”);subplot(4,2,2);psd(abs(fft(data0))),title(“基帶信號(hào)頻譜”);subplot(4,2,3);
plot(st),title(“調(diào)制信號(hào)”);subplot(4,2,4);psd(abs(fft(st))),title(“調(diào)制信號(hào)頻譜”);subplot(4,2,5);plot(stn),title(“stn 信道波形”);subplot(4,2,6);psd(abs(fft(stn))),title(“經(jīng)過高斯信道信號(hào)頻譜”);subplot(4,2,7);plot(yy*0.7),title(“解調(diào)后的基帶信號(hào)”);subplot(4,2,8);psd(abs(fft(yy))),title(“解調(diào)后的基帶信號(hào)頻譜”);五、實(shí)驗(yàn)結(jié)果與分析
六、討論、心得 第一次使用 MATLAB 軟件,在安裝的過程中也遇到了一些問題,對(duì)于實(shí)驗(yàn)一 QPSK 調(diào)制與解調(diào),老師在實(shí)驗(yàn)前就已經(jīng)給出了代碼,并對(duì)實(shí)驗(yàn)做了詳細(xì)的講解,通過結(jié)合老師的實(shí)驗(yàn) PPT,更深刻的理解了 QPSK 調(diào)制解調(diào)的原理及特性。通過對(duì)每條代碼作用的思考,掌握了利用 MATLAB 編程實(shí)現(xiàn)調(diào)制及解調(diào)的方法和步驟。而且感受到了 MATLAB 軟件的強(qiáng)大之處。
七、輔導(dǎo)教師點(diǎn)評(píng):
教師簽字:
太原理工大學(xué)實(shí)驗(yàn)報(bào)告二
學(xué)院名稱
專業(yè)班級(jí)
實(shí)驗(yàn)成績
學(xué)生姓名
學(xué)號(hào)
實(shí)驗(yàn)日期
課程名稱 無線網(wǎng)絡(luò) 通信技術(shù)
實(shí)驗(yàn)題目 m 序列產(chǎn)生及其特性實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康暮鸵螅?/p>
通過本實(shí)驗(yàn)掌握 m 序列的產(chǎn)生方法、特性及應(yīng)用。
二、實(shí)驗(yàn)內(nèi)容: 1、按照課本 P182 圖 5-5,設(shè)計(jì) 4 階 m 序列產(chǎn)生方法。并編寫 MATLAB 程序,要求輸出周期為 15 的 m 序列“***” 2、編寫程序驗(yàn)證 m 序列的相關(guān)性質(zhì),如平衡特性,游程分布特性,延位相加特性。要求至少驗(yàn)證一條性質(zhì)。
三、主要儀器設(shè)備 Win10
位操作系統(tǒng)筆記本電腦及 MATLAB R2009a 四、主要操作方法與實(shí)驗(yàn)步驟: ?1a2a3a4a移位時(shí)鐘信號(hào)模 模2 相加器序列輸出
圖 2-1階移位寄存器序列生成器 該序列生成器能夠產(chǎn)生周期為 15 的 0,1 二值序列。設(shè)初始狀態(tài)(a1,a2,a3,a4)=(1,0,0,0),則周期序列輸出為:***。
(1)按照?qǐng)D 2-1,設(shè)計(jì) 4 階 m 序列產(chǎn)生方法。
(2)編寫 MATLAB 程序并上機(jī)調(diào)試,最后要求輸出周期為 15 的 m 序列“***”。
(3)編寫程序驗(yàn)證 m 序列的平衡特性:
在 m 序列的一周期中,“1”的個(gè)數(shù)僅比“0”的個(gè)數(shù)多 1,即“1”的個(gè)數(shù)為(N+1)/2,“0”的個(gè)數(shù)為(N-1)/2。(N 為周期)
程序代碼:
clear all;
a4=1;a3=0;a2=0;a1=0;aa=0;bb=0;s=[];for i=1:15
b4=a4;b3=a3;b2=a2;b1=a1;
a1=b2;a2=b3;a3=b4;
a4=xor(b1,b4);
if b1==1
s(i)=b1;
aa=aa+1;
else
s(i)=0;
bb=bb+1;
end end fprintf(“m 序列為:”)for i=1:15
fprintf(“%d”,s(i))end fprintf(“n”)fprintf(“1 的個(gè)數(shù)為:%dn”,aa)fprintf(“0 的個(gè)數(shù)為:%dn”,bb)五、實(shí)驗(yàn)結(jié)果與分析
首先設(shè)置四個(gè)初始的狀態(tài)值,再通過四個(gè)臨時(shí)變量進(jìn)行移位運(yùn)算,將運(yùn)算后結(jié)果保存在數(shù)組中,并在輸出數(shù)組結(jié)果的同時(shí)統(tǒng)計(jì)序列中 1 和 0 的個(gè)數(shù),最后輸出統(tǒng)計(jì)結(jié)果,從而驗(yàn)證了 m 序列的平衡特性。
六、討論、心得 在寫這個(gè)實(shí)驗(yàn)之前,花費(fèi)了一些時(shí)間來研究 MATLAB 的語法,在編寫程序的過程中,雖然思路很明確,但也遇到了一些困難,對(duì)有些語法的理解不是明確,通過自己在網(wǎng)上查閱資料,解決了問題,經(jīng)過不斷的調(diào)試,達(dá)到了預(yù)期的輸出結(jié)果,完成了題目的要求。通過這個(gè)程序的編寫,感覺 MATLAB 和 C 語言在輸出方面有些許的類似。
七、輔導(dǎo)教師點(diǎn)評(píng):
教師簽字:
太原理工大學(xué)實(shí)驗(yàn)報(bào)告三
學(xué)院名稱
專業(yè)班級(jí)
實(shí)驗(yàn)成績
學(xué)生姓名
學(xué)號(hào)
實(shí)驗(yàn)日期
課程名稱 無線網(wǎng)絡(luò) 通信技術(shù)
實(shí)驗(yàn)題目 信道編碼 一、實(shí)驗(yàn)?zāi)康暮鸵螅?/p>
1、學(xué)習(xí)并理解信道編碼的目的、要求等基本概念 2.學(xué)會(huì)使用 MATLAB 實(shí)現(xiàn)奇偶監(jiān)督碼的檢錯(cuò)模擬與分析 二、實(shí)驗(yàn)內(nèi)容: 1、輸入任意行任意列的一個(gè)二進(jìn)制序列,也即發(fā)送碼組,再加上 1 位監(jiān)督位,在接收端使用奇偶監(jiān)督碼中的偶數(shù)監(jiān)督碼進(jìn)行檢錯(cuò)。
2、若發(fā)送碼組為 1100111,要求加上 1 位監(jiān)督位,在接收端使用奇偶監(jiān)督碼中的偶數(shù)監(jiān)督碼進(jìn)行檢錯(cuò)。
三、主要儀器設(shè)備 Win10
位操作系統(tǒng)筆記本電腦及 MATLAB R2009a 四、主要操作方法與實(shí)驗(yàn)步驟: 程序代碼:
1、輸入任意行任意列的一個(gè)二進(jìn)制序列,也即發(fā)送碼組,再加上 1 位監(jiān)督位,在接收端使用奇偶監(jiān)督碼中的偶數(shù)監(jiān)督碼進(jìn)行檢錯(cuò)。
clear all;m=input(“請(qǐng)輸入行數(shù):”);
n=input(“請(qǐng)輸入列數(shù):”);
s=randint(m,n);s for i=1:m
num=0;
for j=1:n
if s(i,j)==1
num=num+1;
end
if rem(num,2)==0
s(i,n+1)=0;
else
s(i,n+1)=1;
end
end end fprintf(“偶數(shù)監(jiān)督碼:n”)s 2、若發(fā)送碼組為 1100111,要求加上 1 位監(jiān)督位,在接收端使用奇偶監(jiān)督碼中的偶數(shù)監(jiān)督碼進(jìn)行檢錯(cuò)。
clear all;s=[1 1 0 0 1 1 1];fprintf(“發(fā)送碼組為:”)num=0;s for i=1:7
if s(i)==1
num=num+1;
end end a=rem(num,2);if a==0
s(8)=0;else
s(8)=1;end fprintf(“偶數(shù)校驗(yàn):”)s
五、實(shí)驗(yàn)結(jié)果與分析 1.2.
六、討論、心得 有了實(shí)驗(yàn)二的基礎(chǔ)之后,對(duì)于實(shí)驗(yàn)三來說就簡(jiǎn)單的很多,感覺 MATLAB 的函數(shù)用起來很方便,仔細(xì)體會(huì)并理解了偶校驗(yàn)的實(shí)質(zhì)和精髓。
七 七.輔導(dǎo)教師點(diǎn)評(píng):
教師簽字:
太原理工大學(xué)實(shí)驗(yàn)報(bào)告四
學(xué)院名稱
專業(yè)班級(jí)
實(shí)驗(yàn)成績
學(xué)生姓名
學(xué)號(hào)
實(shí)驗(yàn)日期
課程名稱 無線網(wǎng)絡(luò)通信技術(shù)
實(shí)驗(yàn)題目 基于 Simulink 的通信系統(tǒng)建模與仿真 一、實(shí)驗(yàn)?zāi)康暮鸵螅?/p>
1、通過利用 matlab simulink,熟悉 matlab simulink 仿真工具。
2、通過實(shí)驗(yàn)更好地掌握課本相關(guān)知識(shí),熟悉 2ASK 的調(diào)制與解調(diào)。
二、實(shí)驗(yàn)內(nèi)容:
使用 MATLAB 中的 Simulink 工具箱搭建 ASK 調(diào)制及解調(diào)的框圖(使用模擬相乘法及相干解調(diào)法)三、主要儀器設(shè)備:
Win10
位操作系統(tǒng)筆記本電腦,及軟件 MATLAB R2009a 四、主要操作方法與實(shí)驗(yàn)步驟:
(一)首先進(jìn)入 matlab,在命令窗口輸入 simulink,進(jìn)入 simulink 界面。
如下圖:
(二)單擊此窗口中的 File 菜單中的選項(xiàng) New 中的 Model 命令,出現(xiàn)如下窗口:
(三)使用 Simulink 中的工具,畫出如下圖所示的 ASK 調(diào)制及解調(diào)的框圖。
(四)把上述框圖畫好后,進(jìn)行保存,然后單擊 simulation(仿真)菜單中的 start 開始仿真。再雙擊元件 scope(示波器)查看信源波形及解調(diào)信號(hào)波形。
五、實(shí)驗(yàn)結(jié)果與分析
ASK 模擬相乘法調(diào)制相干解調(diào)波形如下圖所示(上:信源波形 下:解調(diào)信號(hào)波形)
六、討論、心得 這個(gè)實(shí)驗(yàn)的實(shí)驗(yàn)指導(dǎo)書把實(shí)驗(yàn)過程寫的很詳細(xì),按照指導(dǎo)書的步驟就可以完成實(shí)驗(yàn),有一些細(xì)節(jié)的地方需要注意,通過這個(gè)實(shí)驗(yàn),我熟悉了 matlab simulink 仿真工具并且更好的理解掌握了課本相關(guān)知識(shí),更加熟悉了 2ASK 的調(diào)制與解調(diào)。
七 七.輔導(dǎo)教師點(diǎn)評(píng):
教師簽字: