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

📄 transmit.m

📁 一个在matlab环境下的DAB仿真程序源码。内含ofdm收发
💻 M
字号:
function [data_out]=transmit(N,L,len,num,symnum,Zeronum,z0)


    zk(1,:)=z0;
    z1=[];
    zk_symbol=[];
    zk_frame=[];
    ofdm_temp=[];
    ofdm_sym=[];
    ofdm_frame=[];


    m=Zeronum    ;                  %zeros num for phase reference symbol insert
    insert_front=zeros(1,m)    ; %insert zeros before 1536
    insert_back=zeros(1,m)      ;%insert zeros after 1536



    data=randperm(len*3);                          %产生随机数据源
    data=round((mod(data(1:len),2)-0.5)*2);  %+1,-1
                

for s=1:symnum;


 z1(s,[1:num])=(data((s-1)*num+1:s*num)+j*data((s+symnum-1)*num+1:(s+symnum)*num))./sqrt(2);  %  data symbol
 zk(s+1,[1:num])=zk(s,:).*z1(s,:);                                                                 % DQPSK
end;

for s=1:symnum+1;

 zk_symbol(s,:)=[insert_front zk(s,:) insert_back];                                                 % symbol=2552     insert zero







zk_frame=[zk_frame zk_symbol(s,:)];                    %串行数据   一桢

%------------------------------------------------------------------------------- %   

%ifft



ofdm(s,:)=sqrt(N)*ifft(zk_symbol(s,:));
ofdm_temp=[ofdm_temp ofdm(s,:)];              %串行数据,不含循环前缀

ofdm_sym(s,:)=[ofdm(s,N-L+1:N) ofdm(s,:)];      %加循环前缀

ofdm_frame=[ofdm_frame ofdm_sym(s,:)];         %最终的串行数据
end;
data_out=ofdm_frame;
%ofdm_sym=z1;

%Zk=zk;



%zk_power=sum(abs(zk_frame).^2)/length(zk_frame);      %Eb
%ofdm_temp_power=sum(abs(ofdm_temp).^2)/length(ofdm_temp);      % 循环前缀前的Eb
%signal_power=sum(abs(ofdm_frame).^2)/length(ofdm_frame);      %循环前缀后的Eb
%ofdm_phase=ofdm_sym(1,:);

⌨️ 快捷键说明

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