⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ofdm.m

📁 详细介绍OFDM仿真过程,包括信源的产生,信道的加入,编码解码以及LS,MMSE,SVD三种信道估计方法
💻 M
字号:
%该程序用来完成对输入信号进行OFDM调制,属于《链路级仿真软件设计》程序二的调制解调模块

function [y]=ofdm(x)
%[y]=ofdm(x)
%x是1x(Lp+8)的复向量,其中向量元素为4QAM调制符号,表示经过4QAM调制的结果数据。
%y是1x(67.5*10e(-6)/Ts) 的复向量,其中向量元素是OFDM发送端处理的结果,表示发送端的基带信号在时域上,采样速率为Ts的采样结果,信号持续时间为 (3 symbols)。

%参数初始化设置
%输入的频域信号中包含的OFDM符号数目
s=50;
%输入的信号长度为
L=length(x);
%子载波数
sub_carriers=2048;

%把输入分为S个符号,每个符号长为symbol_used_len
symbol_used_len=L/s;
%循环前缀的长度
cp=256;
%每一个OFDM符号的抽样值应补‘0’个数zeros_pad
zeros_pad=sub_carriers-symbol_used_len;
%每一个OFDM符号一侧应该补‘0’个数zeros_pad_side
zeros_pad_side=zeros_pad/2;

%对输入信号进行分割,分割为s个符号,再对每个符号进行FFT运算,实现OFDM解调,并保证能量不变
time_domain_x_link=[];
for I=0:(s-1)
    %对输入进行分割 
    x_temp=x(I*symbol_used_len+1:I*symbol_used_len+symbol_used_len);
    %对每个分割的部分进行补零操作,使其长为sub_carriers
    x_temp_pad=[zeros(1,zeros_pad_side),x_temp,zeros(1,zeros_pad_side)];
    %对每个符号进行IFFT运算
    time_domain_x_temp=ifft(x_temp_pad)*sqrt(sub_carriers);
    %对每个符号添加循环前缀
    time_domain_x_cp_temp=[time_domain_x_temp(sub_carriers-cp+1:sub_carriers),time_domain_x_temp];
    %将符号连接成为串行数据流
    time_domain_x_link=[time_domain_x_link,time_domain_x_cp_temp];
end
%将信息流输出
y=time_domain_x_link;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -