通訊原理
實驗報告
課程名稱:通訊原理
實驗三:二進位制數碼訊號調製**實驗
實驗四:模擬訊號數字傳輸**實驗
姓名:學號:
班級:2023年 12 月
實驗三二進位制數碼訊號調製**實驗
1. 加深對數字調製的原理與實現方法;
2. 掌握ook、2fsk、2psk功率譜密度函式的求法;
3. 掌握ook、2fsk、2psk功率譜密度函式的特點及其比較;
4. 進一步掌握matlab中m檔案的除錯、子函式的定義和呼叫方法。
1. 複習二進位制數碼訊號幅度調製的原理
2. 編寫matlab程式實現ook調製;
3. 編寫matlab程式實現2fsk調製;
4. 編寫matlab程式實現2psk調製;
5. 編寫matlab程式實現數字調製訊號功率譜函式的求解。
在數字通訊系統中,需要將輸入的數字序列對映為訊號波形在通道中傳輸,此時信源輸出數字序列,經過訊號對映後成為適於通道傳輸的數字調製訊號。數字序列中每個數字產生的時間間隔稱為碼元間隔,單位時間內產生的符號數稱為符號速率,它反映了數字符號產生的快慢程度。由於數字符號是按碼元間隔不斷產生的,經過將數字符號一一對映為響應的訊號波形後,就形成了數字調製訊號。
根據對映後訊號的頻譜特性,可以分為基帶訊號和頻帶訊號。
通常基帶訊號指訊號的頻譜為低通型,而頻帶訊號的頻譜為帶通型。
調製訊號為二進位制數字基帶訊號時,對應的調製稱為二進位制調製。在二進位制數字調製中,載波的幅度、頻率和相位只有兩種變化狀態。相應的調製方式有二進位制振幅鍵控(ook/2ask)、二進位制頻移鍵控(2fsk)和二進位制相移鍵控(2psk)。
下面分別介紹以上三種調製方法的原理,及其matlab實現:
本實驗研究的基帶訊號是二進位制數碼訊號,所以應該首先設計matlab程式生成二進位制數字序列。根據實驗一的實踐和第一部分的介紹,可以很容易的得到二進位制數字序列生成的matlab程式。
假定要設計程式產生一組長度為500的二進位製單極性不歸零訊號,以之作為後續調製的信源,並求出它的功率譜密度,以方便後面對已調訊號頻域特性和基帶訊號頻域特性的比較。整個過程可用如下程式段實現:
%定義相關引數
clear all;
close all;
a=1fc=22hz;
n_sample=8;
n=500碼元數
ts=11 baud/s
dt=ts/fc/n_sample; %波形取樣間隔
t=0:dt:n*ts-dt;
lt=length(t);
%產生二進位制信源
d=sign(randn(1,n));
%dd=sigexpand((d+1)/2,fc*n_sample);
n1=length((d+1)/2);
dd=zeros(fc*n_sample,n1);
dd(1,:)=(d+1)/2;
dd=reshape(dd,1,fc*n_sample*n1);
gt=ones(1,fc*n_sample);%nrz波形
figure(1)
subplot(221);%輸入nrz訊號波形(單極性)
d_nrz=conv(dd,gt);
plot(t,d_nrz(1:length(t)));
axis([0 10 0 1.2]); ylabel ('輸入訊號');
subplot(222);%輸入nrz頻譜
dt=t(2)-t(1);
t=t(end);
df=1/t;
n=length(d_nrz(1:length(t)));
f=-n/2*df:df:n/2*df-df;
d_nrzf=fft(d_nrz(1:length(t)));
d_nrzf=t/n*fftshift(d_nrzf);
plot(f,10*log10(abs(d_nrzf).^2/t));
axis([-2 2 -50 10]);ylabel('輸入訊號功率譜密度(db/hz)');
二進位制振幅鍵控(ook/2ask)是利用載波的幅度變化來傳遞數字資訊的,而其頻率和初始相位保持不變。在2ask中,載波的幅度只有兩種變化狀態,分別對應二進位制資訊「0」和「1」。2ask訊號的一般表示式為:
其中,。
所以,要進行ook調製,定義完二進位制數字序列和載波參量後,將之相乘即可。
相關的matlab指令如下:
ht=a*cos(2*pi*fc*t);
s_2ask=d_nrz(1:lt).*ht;
subplot(223)
plot(t,s_2ask);
axis([0 10 -1.2 1.2]);
ylabel('ook');
要對ook調製之前與之後訊號的頻域特性進行比較,可以通過比較兩者的功率譜密度曲線來實現。也就是求出ook調製訊號s_2ask的功率譜密度函式,並將之與3.1中求得的基帶訊號的功率譜密度函式進行比較。
根據《通訊原理》的學習,可以知道,求解某訊號功率譜密度的過程就是先求出該訊號的傅利葉變換,再求該傅利葉變換的幅值的絕對值的平方的過程。如何求功率譜密度函式在實驗二中已經詳細介紹過了,本處不再贅述。根據前面的介紹,我們已經知道要求得某訊號的傅利葉變換,可以通過呼叫實驗一附錄中的t2f子函式實現,也可以直接程式設計實現。
實驗二中使用的都是子函式呼叫的方式,下面給出直接程式設計實現傅利葉變換的matlab程式:
dt=t(2)-t(1);
t=t(end);
df=1/t;
n=length(s_2ask);
f=-n/2*df:df:n/2*df-df;
s_2askf=fft(s_2ask);
s_2askf=t/n*fftshift(s_2askf);
subplot(224)
plot(f,10*log10(abs(s_2askf).^2/t));
axis([-fc-4 fc+4 -50 10]);
ylabel('ook功率譜密度(db/hz)');
通過以上程式,我們將基帶訊號波形及其功率譜密度曲線,ook調製訊號及其功率譜密度曲線分別畫在了同乙個圖的四個子圖中,以方便對調製前後訊號的頻域特性進行比較。
頻移鍵控是利用載波的頻率的變化來傳遞數字資訊的。在2fsk中,載波的頻率隨二進位制基帶訊號在f1和f2兩個頻率點間變化。故其表示式為:
《通訊原理》中已經介紹過,2fsk訊號的調製可通過兩個方法實現,一是將2fsk訊號理解為兩路不同頻率的ask訊號相加的結果;二是將2fsk訊號表示成如下的形式:
第一種方法實現起來相當簡單,直接參照3.2中ask訊號的產生方法,產生兩路不同頻率的ask訊號,將之相加即可得到2fsk訊號,這種方法留待同學們課後自己實現。
下面我們介紹用第二種方法產生2fsk訊號的matlab程式設計過程。
首先,為了使2fsk訊號不至覆蓋了前面產生的訊號,新建乙個圖,其指令為:
figure(2)
然後,在這個圖上畫2fsk訊號的波形,及其功率譜密度曲線波形。
%2fsk
%s_2fsk=a*cos(2*pi*fc*t+int(2*d_nrz-1));
sd_2fsk=2*d_nrz-1;
s_2fsk=a*cos(2*pi*fc*t+2*pi*sd_2fsk(1:length(t)).*t);
subplot(223)
plot(t,s_2fsk);
axis([0 10 -1.2 1.2 ]);
xlabel('t');
ylabel('2fsk')
subplot(224)
求出2fsk調製訊號的功率譜密度函式:
%[f,s_2fsk]=t2f(t,s_2fsk);
dt=t(2)-t(1);
t=t(end);
df=1/t;
n=length(s_2fsk);
f=-n/2*df:df:n/2*df-df;
s_2fsk=fft(s_2fsk);
s_2fsk=t/n*fftshift(s_2fsk);
plot(f,10*log10(abs(s_2fsk).^2/t));
axis([-fc-4 fc+4 -50 10]);xlabel('f');
ylabel('2fsk功率譜密度(db/hz)');
相移鍵控是利用載波的相位變化來傳遞數字資訊,而振幅和頻率保持不變。以載波的不同相位直接去表示相應二進位制數碼訊號的調製方式,稱為二進位制絕對相移鍵控(2psk)。其時域表示式為:
與2ask訊號的產生方法相比較,2psk和2ask只是對s(t)的要求不同,在2ask中s(t)是單極性的,而在2psk中s(t)是雙極性的基帶訊號。除此之外,所有的設計流程都是相似的。參考程式如下:
%2psk 訊號
d_2psk=2*d_nrz-1;
s_2psk=d_2psk(1:lt).*ht;
subplot(221)
plot(t,s_2psk);
axis([0 10 -1.2 1.2]);
ylabel('2psk');
subplot(222)
求出2psk調製訊號的功率譜密度函式:
%[f,s_2pskf]=t2f(t,s_2psk);
dt=t(2)-t(1);
t=t(end);
df=1/t;
n=length(s_2psk);
f=-n/2*df:df:n/2*df-df;
s_2pskf=fft(s_2psk);
s_2pskf=t/n*fftshift(s_2pskf);
plot(f,10*log10(abs(s_2pskf).^2/t));
axis([-fc-4 fc+4 -50 10]);
ylabel('psk功率譜密度(db/hz)');
(1)按照如上介紹的方法,分別產生一組長度為500的二進位製單極性不歸零訊號和歸零訊號,存檔名為q3_1。並求分別求出它們的功率譜密度。請寫出相應的matlab程式,將不歸零訊號波形及功率譜和歸零訊號波形及功率譜分別畫在同一圖形的四個子圖中,將結果圖儲存,貼在下面的空白處。
程式:clear all;
close all;
a=1fc=22hz;
n_sample=8;
n=500碼元數
通訊原理實驗報告
實驗一常用訊號的表示 實驗目的 掌握使用matlab的訊號工具箱來表示常用訊號的方法。實驗環境 裝有matlab6.5或以上版本的pc機。實驗內容 1.週期性方波訊號square 呼叫格式 x square t,duty 功能 產生乙個週期為 幅度為的週期性方波訊號。其中duty表示占空比,即在訊號...
通訊原理實驗報告
中南大學 通訊原理課程設計報告 學院 資訊科學與工程學院 班級通訊 學號姓名 指導老師彭春華 完成時間2011年10月26號 一 硬體實驗 1 實驗三 模擬鎖相環與載波同步4 2 實驗五 數字鎖相環與位同步9 3 實驗六 幀同步15 4 實驗七 時分復用數字基帶通訊系統18 二 軟體設計實驗 1 實...
通訊原理實驗報告
大連理工大學實驗報告 實驗六 pam編譯碼系統 一 實驗目的和要求 見預習報告 二 實驗內容 見預習報告 三 實驗結果 1.近似理想抽樣脈衝序列測量2.理想抽樣重建訊號觀測 ch1 j005 正弦波輸入訊號ch2 tp704 重建訊號輸出 ch2 tp703 抽樣脈衝序列訊號ch1 j005 正弦波...