📄 ofdm_fading.m
字号:
clear;
L=256;%OFDM symbol length
FRAME=5000;%The number of OFDM symbols
R=1;
Eb_No_dB=30;
Eb_No=10^(Eb_No_dB/10);
SNR=Eb_No*R;
std_dev=sqrt(1/SNR/2);%define SNR
%h=[0.688 .46 .46 .227 .227];%Channel impulse response
BE=0;
for frame=1:1:FRAME,
h=[0.81*(randn(1,1)+j*randn(1,1))/sqrt(2),0.5*(randn(1,1)+j*randn(1,1))/sqrt(2),0.31*(randn(1,1)+j*randn(1,1))/sqrt(2)];%Channel impulse response
H=zeros(1,L);
for l=1:1:L,
for p=1:1:3,
H(l)=H(l)+h(p)*exp(-j*2*pi*(l-1)*(p-1)/L);
end
end
X=2*randint(1,L)-1;
x=sqrt(L)*ifft(X);
%x=transpose(F'*X');%IDFT
for m=1:1:3,
CP(m)=x(L-5+m);
%CP(m)=0;
end
x=[CP x];%add CP
y=conv(h,x);%channel
y=y+(randn(1,length(y)))*std_dev+j*(randn(1,length(y)))*std_dev;
temp=zeros(1,L);
for m=1:1:L,
temp(m)=y(m+3);
end
y=temp;%Truncate the OFDM symbol
Y=fft(y)/sqrt(L);
%Y=Y./H;%Frequency domain ZF equalization
Y=Y.*conj(H)./(H.*conj(H)+2*std_dev*std_dev);%Frequency domain MMSE equalization
BE=BE+sum(abs(sign(real(Y))-X))/2;
end
BER=BE/L/FRAME
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -