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

📄 deofdm.m

📁 一份完整的OFDM仿真程序,设计完整并在matlab7.0环境下运行成功
💻 M
字号:
%该程序用来完成对输入信号进行OFDM解调,属于《链路级仿真软件设计》程序二的调制解调模块


function [y]=deofdm(x)
%[y]=deofdm(x)
%x是1x(67.5*1e(-6)/Ts) 的复向量,其中的向量元素表示OFDM信号通过信道后的结果。
%y是1x(Lp+8)的复向量,其中向量元素表示OFDM接收端处理的结果;

%参数初始化
%输入的数据长度
input_s_len=length(x);
%子载波数
sub_carrier_num=2048;
%本程序利用的子载波数目
sub_carrier_used=1664;
%循环前缀的长度
cp=256;
%每个OFDM符号的采样点数目
symbol_samples=sub_carrier_num+cp;

%输入的符号数目
symbol_num=input_s_len/(sub_carrier_num+cp);
%未使用的子载波数目
delete_s=sub_carrier_num-sub_carrier_used;
%每一测未使用的子载波数目(未使用的子载波在两侧平均分布)
delete_s_side=delete_s/2;
     
%对输入信号进行分割,分割为symbol_num个符号,再对每个符号分别进行IFFT运算,实现OFDM调制,并保证能量不变
fre_domain_x_link=[];
for I=0:(symbol_num-1)
        %对每个符号去循环前缀
        x_temp=x((I*symbol_samples+cp+1):((I+1)*symbol_samples));
        %对每个符号进行FFT运算
        fre_domain_x_temp=fft(x_temp)/sqrt(sub_carrier_num);
        %去除调制时添加的信息点
        fre_domain_x_del=fre_domain_x_temp((delete_s_side+1):(sub_carrier_used+delete_s_side));
        %对输出进行连接,形成串行信息流
        fre_domain_x_link=[fre_domain_x_link,fre_domain_x_del];
end
%将信号输出        
y=fre_domain_x_link;

⌨️ 快捷键说明

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