1. 程式人生 > 其它 >【數字基帶訊號】基於matlab數字基帶訊號波形模擬【含Matlab原始碼988期】

【數字基帶訊號】基於matlab數字基帶訊號波形模擬【含Matlab原始碼988期】

一、簡介

主要研究了數字訊號的基帶傳輸的基本概念及數字訊號基帶傳輸的傳輸過程和如何用MATLAB軟體模擬設計數字基帶傳輸系統。本文首先介紹了MATLAB模擬軟體。然後介紹了本課題的理論依據,包括數字通訊,數字基帶傳輸系統的組成及數字基帶訊號的傳輸過程。接著介紹了數字基帶傳輸系統的特性包括數字PAM訊號功率普密度及常用線路碼型,並通過比較最終選擇雙極性不歸零碼。之後介紹了數字基帶訊號的最佳接收的條件以及如何通過示波器觀察基帶訊號的波形。最後按照模擬過程基本步驟用MATLAB的模擬工具實現了數字基帶傳輸系統的模擬過程,對系統進行了分析。

數字基帶傳輸系統在實際數字通訊系統中的應用雖然沒有頻帶傳輸應用廣泛,但仍有相當多的應用範圍。而且最為重要的是數字基帶傳輸系統的基本理論不僅適用於數字基帶傳輸系統,而且還適用於頻帶傳輸,因為所有窄的帶通訊號、線性帶通系統及等效低通系統都對等效低通訊號的響應均可用其等效低通訊號、等效低通系統及等效低通系統對等效低通訊號的響應來表示,因而頻帶傳輸系統可通過它的等效低通(或等效基帶)傳輸系統的理論分析及計算機模擬來研究它的效能,因而掌握數字基帶傳輸的基本理論十分重要,它在數字通訊系統中具有普遍意義。

1 基帶傳輸系統簡介
如果數字調製器的載波是週期性的脈衝,用數字序列去調製脈衝載波的某引數,則可將數字序列轉換成為相應的訊號波形,這就被稱為數字脈衝調製器。而數字脈衝調製器輸出訊號波形的功率譜密度是低通型的,所佔頻帶是從直流或低頻開始的,其頻寬是有限的。那麼就稱此數字訊號為數字基帶訊號。若通訊通道的傳遞函式是低通型的,則稱此通道為基帶通道,又稱基帶通道為低通訊道,如同軸電纜和雙絞線有線通道均屬基帶通道。數字基帶訊號通過基帶通道進行傳輸,則稱此傳輸系統為數字基帶傳輸系統。

2 基帶傳輸系統結構圖

基帶傳輸系統主要由通道訊號形成器、通道、接收濾波器和抽樣判決器組成。為了保證系統可靠有序地工作,還應有同步系統。
通道訊號形成器:把原始基帶訊號變換成適合於通道傳輸的基帶訊號,這種變換主要是通過碼型變換和波形變換來實現的,其目的是與通道匹配,便於傳輸,減小碼間串擾,利於同步提取和抽樣判決。
通道:允許基帶訊號通過的媒質。通道的傳輸特性通常不滿足無失真傳輸條件,甚至是隨機變化的。另外通道還會進入噪聲。在通訊系統的分析中,常常把噪聲n(t)等效,集中在通道中引入。
接收濾波器:濾除帶外噪聲,對通道特性均衡,使輸出的基帶波形有利於抽樣判決。
抽樣判決器:在傳輸特性不理想及噪聲背景下,在規定的時刻(由位定時脈衝控制)對接收濾波器的輸出波形進行抽樣判決,以恢復或再生基帶訊號。而用來抽樣的位定時脈衝則依靠同步提取電路從接收訊號中提取,位定時的準確與否將直接影響判決效果。

3 基帶傳輸過程

終端裝置編碼器所產生的脈衝序列將作為為基帶傳輸系統的輸入訊號,為了使這種脈衝序列能在通道中進行傳輸,一般要通過碼型變換器將二進位制脈衝序列變為雙極性碼(AMI碼或HDB3碼),有時為了使訊號在基帶傳輸系統內的碼間干擾降到最低,還要進行波形變換。由於通道特性不理想或者噪聲的干擾,會使經過通道的訊號受到干擾而變形。在接收端為了減小噪聲的影響,首先會把通過通道的訊號引入接收濾波器,然後再經過均衡器,校正由於通道特性(包括接收濾波器在內)不理想而產生的波形失真或碼間串擾。最後在取樣定時脈衝到來時,進行判決以恢復基帶數字碼脈衝。

二、原始碼

close all
clear all
%取樣點數的設定
k=14;
%每碼元取樣數的設定
L= 32;
N=2^k;
M=N/L;%M為碼元個數
dt=1/L;%時域取樣間隔
T=N*dt;%時域截斷區間
df=1.0/T;%頻域取樣間隔
Bs=N*df/2;%頻域截斷區間
t=linspace(-T/2,T/2,N);%產生時域取樣點
f=linspace(-Bs,Bs,N);%產生頻域取樣點
EP1=zeros(size(f));
EP2=zeros(size(f));
EP3=zeros(size(f));

%程式第1部分:隨機產生1000列0、1訊號序列,分別對其進行雙極性歸零編碼和不歸零%編碼,並且求各自的功率譜密度,求功率譜密度的均值
for x=1:1000%取1000次樣值
    a=round(rand(1,M));%產生一個長度為M的隨機序列a,0和1等概出現
    nrz=zeros(L,M);%產生一個L行M列的nrz矩陣,初始化為全0矩陣
    rz=zeros(L,M);%產生一個L行M列的rz矩陣,初始化為全0矩陣
    for i=1:M 
        if a(i)==1
            nrz(:,i)=1;%使nrz矩陣第i列全部元素都為1
            rz(1:L/2,i)=1;%使rz矩陣第i列前L/2個元素為1
        else
            nrz(:,i)=0;%使nrz矩陣第i列全部元素都為-1
            rz(1:L/2,i)=0;%使rz矩陣第i列前L/2個元素為-1
        end
    end    
    %分別重排nrz、rz矩陣為1行N列的矩陣
    nrz=reshape(nrz,1,N);
    rz=reshape(rz,1,N);
    %做傅立葉變換並算出功率譜密度
    NRZ=t2f(nrz,dt);
    P1=NRZ.*conj(NRZ)/T;
    RZ=t2f(rz,dt);
    P2=RZ.*conj(RZ)/T;
    %求功率譜密度的均值
    EP1=(EP1*(x-1)+P1)/x;
    EP2=(EP2*(x-1)+P2)/x;
end
%取樣點數的設定
k=14;
%每碼元取樣數的設定
L= 32;
N=2^k;
M=N/L;%M為碼元個數
dt=1/L;%時域取樣間隔
T=N*dt;%時域截斷區間
df=1.0/T;%頻域取樣間隔
Bs=N*df/2;%頻域截斷區間
t=linspace(-T/2,T/2,N);%產生時域取樣點
f=linspace(-Bs,Bs,N);%產生頻域取樣點
EP1=zeros(size(f));
EP2=zeros(size(f));
EP3=zeros(size(f));

%程式第2部分:隨機產生1000列0、1訊號序列,分別對其進行雙極性歸零編碼和不歸零%編碼,並且求各自的功率譜密度,求功率譜密度的均值
for x=1:1000%取1000次樣值
    a=round(rand(1,M));%產生一個長度為M的隨機序列a,0和1等概出現
    nrz=zeros(L,M);%產生一個L行M列的nrz矩陣,初始化為全0矩陣
    rz=zeros(L,M);%產生一個L行M列的rz矩陣,初始化為全0矩陣
    for i=1:M 
        if a(i)==1
            nrz(:,i)=1;%使nrz矩陣第i列全部元素都為1
            rz(1:L/2,i)=1;%使rz矩陣第i列前L/2個元素為1
        else
            nrz(:,i)=-1;%使nrz矩陣第i列全部元素都為-1
            rz(1:L/2,i)=-1;%使rz矩陣第i列前L/2個元素為-1
        end
    end
    
    %分別重排nrz、rz矩陣為1行N列的矩陣
    nrz=reshape(nrz,1,N);
    rz=reshape(rz,1,N);
    %做傅立葉變換並算出功率譜密度
    NRZ=t2f(nrz,dt);
    P1=NRZ.*conj(NRZ)/T;
    RZ=t2f(rz,dt);
    P2=RZ.*conj(RZ)/T;
    %求功率譜密度的均值
    EP1=(EP1*(x-1)+P1)/x;
    EP2=(EP2*(x-1)+P2)/x;
end

三、執行結果


四、備註

版本:2014a
完整程式碼或代寫加1564658423