【資料名稱】:完整的OFDM仿真平臺,含詳細的注釋
【資料作者】:不祥
【資料日期】:2009
【資料語言】:中文
【資料格式】:其它
【資料目錄和簡介】:
main函數(shù)調(diào)用的子函數(shù)均可以隨意修改,使用方便。
模塊包括:流程控制模塊、卷積編譯碼模塊、交織解交織模塊、調(diào)制解調(diào)模塊、OFDM調(diào)制解調(diào)模塊、信道模塊(為多徑rayleigh信道)、均衡模塊
可以正常運行,絕對適合做OFDM研究使用,有詳細的注釋。
簡單說明:
流程控制模塊功能:初試值的確定(數(shù)據(jù)包的長度為Lp,仿真點數(shù)M,產(chǎn)生交織碼表,比特速率Tb,采樣間隔Ts,符號時間T_symbol。)、仿真結(jié)束標志(各點運行的最大總數(shù)據(jù)包數(shù)量Ps,各點運行的誤比特率范圍Pes)通過接口連接各個模塊、記錄得到的數(shù)據(jù)并進行分析。
卷積編碼:[output]=convolutional_coded(input) 返回經(jīng)卷積編碼器編碼后的輸出比特序列。convolutional_coded實現(xiàn)卷積編碼,給出任意一個輸入序列input、卷積碼生成矩陣G可以正確獲得經(jīng)過編碼后的輸出序列output,可以選擇1/2卷積碼編碼,也可以選擇1/3卷積碼編碼。
交織:[int_aft_interleav] = interleaving( int_pre_interleav ,int_interleaving_array) 完成對接收數(shù)組的交織操作,生成的是進行交織處理后的數(shù)組;
%建立數(shù)組int_pre_interleav,接收數(shù)據(jù)包;測試其長度,N=length(int_pre_interleav);調(diào)用interleav_matrix 構(gòu)造長度為N的交織矩陣;將接收的數(shù)據(jù)包int_pre_interleav按interleav_matrix的規(guī)則寫入int_aft_interleav;[int_ aft _interleav] = interleaving( int_pre_interleav ,int_interleaving_array) 返回經(jīng)過交織技術(shù)處理后的數(shù)組;
調(diào)制:函數(shù)完成對輸入序列的各種調(diào)制。如:
% y= 8psk(x)
% x 為經(jīng)過信源調(diào)制后信息bit符號
% y 為經(jīng)過信道編碼(8psk)調(diào)制后的符號
%|
%4
%3| 2
% ----7--------1---
%8| 5
%6
%|
%
%星座圖表
%星座映射采用Gray碼,能夠改善系統(tǒng)性能
% Gray:mapping_matrix=[1 2 4 3 7 8 6 5]=[000 001 011 010 110 111 101 100]
%實際映射矩陣[000 001 010 011 100 101 110 111]=[1 2 3 4 5 6 7 8]
%得到星座圖映射矩陣
mapping=[1,sqrt(2)/2+sqrt(2)/2*j,-sqrt(2)/2+sqrt(2)/2*j,j,sqrt(2)/2-sqrt(2)/2*j,-j,-1,-sqrt(2)/2-sqrt(2)/2*j];
% 取得輸入二進制序列長度
len=length(x)/3;
%對輸入bit流進行星座映射,得到8psk調(diào)制符號
y=zeros(1,len);
for I=1:len
temp=x(3*(I-1)+1)*4+x(3*(I-1)+2)*2+x(3*I);
y(I)=mapping(temp+1);
end
OFDM模塊:function [y]=ofdm(x)
%參數(shù)初始化設(shè)置:輸入的頻域信號中包含的OFDM符號數(shù)目s;
輸入的信號長度為L=length(x);
子載波數(shù)sub_carriers;
%數(shù)據(jù)處理:對輸入信號進行分割,分割為s個符號,再對每個符號進行FFT運算,實現(xiàn)OFDM調(diào)制,并保證能量不變
每個符號長為symbol_used_len=L/s;
循環(huán)前綴的長度cp;
每一個OFDM符號的抽樣值應(yīng)補‘0’個數(shù)zeros_pad = sub_ carriers – symbol _ used_len;
每一個OFDM符號一側(cè)應(yīng)該補‘0’個數(shù)zeros_pad_side=zeros_pad/2;
%將信息流輸出
信道模塊:[r_sig]=mul_ralay_channel(previous_block,signal,Ts,block_index)
采用6徑Rayleigh衰落信道,每一徑通過Jakes仿真模型生成,符合頻率選擇性衰落信道的要求。
%previous_block:相對于當(dāng)前數(shù)據(jù)包的上一個數(shù)據(jù)包
% signal:輸入的復(fù)信號序列,即OFDM調(diào)制輸出信號,格式為1×n的向量
% Ts:抽樣時間間隔 單位是s
% block_index:當(dāng)前數(shù)據(jù)包的序列號
% r_signal:經(jīng)過信道后的輸出信號,即接收信號
通過該信道之后還要通過AWGN信道,以描述實際信道環(huán)境中的噪聲。
經(jīng)過信道之后信號經(jīng)過IOFDM、均衡、解調(diào)、解交織、Viterbi譯碼的處理,得到信息。
完整的OFDM仿真程序.rar (134.2 KB)