91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-05
  • 語言: Matlab
  • 標簽: OFDM??信道估計??

資源簡介

OFDM系統(tǒng)信道估計matlab仿真程序

資源截圖

代碼片段和文件信息

%OFDM?Channel?Estimation?based?on?Comb?Pilot
%IFFT_bin_length:?IFFT和FFT的點數
%carrier_count:?子載波個數
%bits_per_symbol:?每符號上的比特數
%symbols_per_carrier:?每楨的OFDM符號數
%X:欲發(fā)送的二進制比特流

clear?all;
clc;
IFFT_bin_length=128;??%IFFT_bin_length:?IFFT和FFT的點數
carrier_count=100;????%carrier_count:?子載波個數
bits_per_symbol=2;????%bits_per_symbol:?每符號上的比特數
symbols_per_carrier=12;????%symbols_per_carrier:?每楨的OFDM符號數
LI=7?;?%導頻之間的間隔
Np=ceil(carrier_count/LI)+1;%導頻數?%加1的原因:使最后一列也是導頻?%%ceil的用法:取最接近A但是大于等于A的整數結果取整不保留小數部分
N_number=carrier_count*symbols_per_carrier*bits_per_symbol;
carriers=1:carrier_count+Np;%相當于將載波標號一一列出

GI=8;?????????????%?guard?interval?length
N_snr=40;??????????%?每比特信噪比
snr=8;?????????????%信噪比間隔
%------------------------------------------------------------
%?vector?initialization


X=zeros(1N_number);
X1=[];
X2=[];
X3=[];
X4=[];
X5=[];
X6=[];
X7=[];
Y1=[];
Y2=[];
Y3=[];
Y4=[];
Y5=[];
Y6=[];
Y7=[];
XX=zeros(1N_number);
dif_bit=zeros(1N_number);
dif_bit1=zeros(1N_number);
dif_bit2=zeros(1N_number);
dif_bit3=zeros(1N_number);
X=randint(1N_number);%產生二進制隨即序列(非0即1)
%--------------------------------------------------------
%QPSK調制:(1?1)->pi/4;(0?1)->3*pi/4;(0?0)->-3*pi/4;(10)->-pi/4;

s=(X.*2-1)/sqrt(2);%分子轉化成雙極性
sreal=s(1:2:N_number);
simage=s(2:2:N_number);
X1=sreal+1i.*simage;%QPSK調制后的信號

%---------------------------------------------------------
%產生隨機導頻信號
%--------------------------------------------------------
train_sym=randint(12*symbols_per_carrier);
t=(train_sym.*2-1)/sqrt(2);
treal=t(1:2:2*symbols_per_carrier);
timage=t(2:2:2*symbols_per_carrier);
training_symbols1=treal+1i.*timage;
training_symbols2=training_symbols1.‘;
training_symbols=repmat(training_symbols21Np);%%repmat表示復制矩陣training_symbols2成1行Np列(把矩陣training_symbols2當成一個元素)

%disp(training_symbols)tt
pilot=1:LI+1:carrier_count+Np;
if?length(pilot)~=Np%導頻數
????pilot=[pilotcarrier_count+Np];
end
%--------------------------------------------------------
%串并轉換
X2=reshape(X1carrier_countsymbols_per_carrier).‘;%%reshape表示變化矩陣X1將其按照carrier_count(數量)行symbols_per_carrier(數量)列存儲
%---------------------------------------------------------
%插入導頻
signal=1:carrier_count+Np;
signal(pilot)=[];
X3(:pilot)=training_symbols;
X3(:signal)=X2;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%為什么有重復賦值
%X3=cat(1training_symbolsX2);%排列成[training_symbols;X2]
IFFT_modulation=zeros(symbols_per_carrierIFFT_bin_length);
IFFT_modulation(:carriers)=X3;
%IFFT_modulation(:conjugate_carriers)=(X3);
X4=ifft(IFFT_modulationIFFT_bin_length2);%y?=?ifft(Xndim)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%為什么要ifft
%X5=X4.‘;
%加保護間隔(循環(huán)前綴)
for?k=1:symbols_per_carrier;
???for?i=1:IFFT_bin_length;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%起點應該是GI
??????X6(ki+GI)=X4(ki);
???end
???for?i=1:GI;
??????X6(ki)=X4(ki+IFFT_bin_length-GI);????
???end
end
%---------------------------------------------------------
%并串轉換
X7=reshape(

評論

共有 條評論