📄 ofdm.m
字号:
% OFDM系统的发送,通过多径衰落信道,接收,判决
% 信道使用jakes模型。
% 时间色散系数我使用[0.9, 0.8 , ....., ],你们自己去修改。
% 块数,点数之类系数自己修改到满意
clear all;
clc;
close all;
%%%%%%%%%%%%%%%%%%%%%%%
% OFDM参数
blocks=10; % OFDM 块数
BN=128;% OFDM 块点数
CN=6;% 循环前缀点数...必须大于等于信道多径数目
DN=BN*blocks;%数据点数
%%%%%%%%%%%%%%%%%%%%%%
% 产生发送信号 8 PSK
% 调制信号
M=8; % PSK 调制水平
for m=1:M
psk(m)=cos((m-1)*2*pi/M)+sqrt(-1)*sin((m-1)*2*pi/M);% PSK序列
end
psk=psk/norm(psk)*sqrt(length(psk));% 归一化
psk_delta=abs((psk(2)-psk(1))/2);
for k=1:DN
uu(k)=rand(1);
for m=1:M
if m/M>=uu(k) & uu(k)>(m-1)/M
s(k)=psk(m);% 发送的PSK序列
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%
% 信道参数
% 生成信道参数, 参考 jakes.m
internal=BN+CN; %每2个信道抽样点的信道距离点数 % 信道抽样间隔
Datalen=blocks * internal;
fm=100;
fs=25e3;
startp=0;
No=9;
L=5;%多径数目
[h] =jakes(Datalen,L,fm,fs,No,startp);% 生成信道
h_fade=0.1*[9:-1:1]; % 时间色散系数
h_fade=h_fade(1:L);% 实际有多种衰落。。。比如指数衰落。。可以参考 COST207 模型
for k=1:L
h(k,:)=h(k,:) * h_fade(k);
end
% sample the channel
internal=BN+CN; %每2个信道抽样点的信道距离点数 % 信道抽样间隔
shL=[]; % 信道抽样
for k=1:Datalen
if(mod(k,internal)==0)
shL=[shL h(:,k)]; % 抽样信道
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 接收信号:频域接收信号ifft变化到时域加上噪声
H=zeros(1,BN);
for k=1:blocks
for kk=1:BN
H(kk)=0;
for i=1:L
H(kk)=H(kk)+ shL(i,k) * exp(-j*2*pi*(kk-1)*(i-1)/BN);% 每一块的信道传输函数
end
R((k-1)*BN+1:k*BN)=s((k-1)*BN+1:k*BN).*H; % 接收频域信号
end
end
% 加上噪声
SNR=20; % 20 dB
nsr=sqrt( 10.^(-SNR/10) );% 噪声方差
for k=1:blocks
r((k-1)*BN+1:k*BN)=ifft( R((k-1)*BN+1:k*BN) ); % 频域接收信号ifft变化得到时域接收信号
end
r_power=sum(abs(r).^2)/(DN); % 时域接收信号的平均功率
gsn=randn(1,DN)+sqrt(-1)*randn(1,DN); % 噪声
rw=r + nsr*sqrt(r_power)./sqrt(2); % 加上噪声后的时域接收信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 频域解调
for k=1:blocks
RW((k-1)*BN+1:k*BN)=fft( rw((k-1)*BN+1:k*BN) ); % 加上噪声后的频域接收信号
end
H=zeros(1,BN);
for k=1:blocks
for kk=1:BN
H(kk)=0;
for i=1:L
H(kk)=H(kk)+ shL(i,k) * exp(-j*2*pi*(kk-1)*(i-1)/BN);% 每一块的信道传输函数
end
d((k-1)*BN+1:k*BN)=RW((k-1)*BN+1:k*BN)./H; % 接收端噪声污染后的发送信号
end
end
ber=sum(abs(s-d)>0.1)./DN; % BER : 误判概率
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -