📄 ofdm_mod_neq.m
字号:
function [s_out] = ofdm_mod_neq( s_in )
%% ofdm 调制,带均衡
%% 输入:二进制序列
%% 输出:ofdm调制后符号
%global CP_len;
global nSubC
global ifft_len;
global symbolPerCarrier;
global bitPerSymbol;
global CP_len;
global carriers;
len = length(s_in);
SQam = reshape(s_in, nSubC,len/nSubC); %串并转换
PQam = Qam4_mod(SQam);
% 64 个子载波安排,前后7个为留空,中间50 个为有效数据用
carriers = (1: nSubC) + (floor( ifft_len/4) - floor(nSubC/2)); % 坐标: (1 to 50) + 7 --> 8 to 57
conj_carriers = ifft_len - carriers + 2; % 坐标: 122 to 73
P_IFFT = zeros(ifft_len, symbolPerCarrier ); % 一个符号块,含4列训练序列,1列 0
P_IFFT(carriers,:) = PQam;
P_IFFT(conj_carriers,:)=conj(PQam); % 构造共轭矩阵,扩展为128点 ( RCC算法 ,ifft 后为实数 )
PCh = real(ifft( P_IFFT )); % 得到的数据全部为实数,实际上是虚部非常小,因此还要取实部
% 添加 CP
PCh2 = cat(1, PCh((ifft_len-CP_len+1):ifft_len,:), PCh);
s_out = reshape(PCh2, 1, (ifft_len+CP_len)*(symbolPerCarrier)); %并串转换
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -