• hiderock787
    了解作者
  • matlab
    开发工具
  • 4KB
    文件大小
  • ZIP
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 2
    下载次数
  • 2012-05-11 06:03
    上传日期
This program is OFDM transmission and receiver
OFDM.ZIP
  • OFDM
  • ber_QAM.m
    736B
  • plot_ber.m
    566B
  • OFDM_basic.m
    4.1KB
  • ber.m
    1KB
  • Q.m
    100B
  • guard_interval.m
    321B
  • remove_GI.m
    401B
内容介绍
% OFDM_basic.m clear all NgType=1; % NgType=1/2 for cyclic prefix/zero padding if NgType==1, nt='CP'; elseif NgType==2, nt='ZP'; end Ch=0; % Ch=0/1 for AWGN/multipath channel if Ch==0, chType='AWGN'; Target_neb=100; else chType='CH'; Target_neb=500; end figure(Ch+1), clf PowerdB=[0 -8 -17 -21 -25]; % Channel tap power profile 'dB' Delay=[0 3 5 6 8]; % Channel delay 'sample' Power=10.^(PowerdB/10); % Channel tap power profile 'linear scale' Ntap=length(PowerdB); % Chanel tap number Lch=Delay(end)+1; %Channel length Nbps=4; M=2^Nbps; % Modulation order=2/4/6 for QPSK/16QAM/64QAM Nfft=64; % FFT size Ng=3; %Nfft/4; % Ng=0: Guard interval length Ng=Nfft/4; Nsym=Nfft+Ng; % Symbol duration Nvc=Nfft/4; % Nvc=0: no virtual carrier Nused=Nfft-Nvc; EbN0=[0:5:20]; % EbN0 %N_iter=1e5; % Number of iterations for each EbN0 N_iter = 1000; Nframe=3; % Number of symbols per frame sigPow=0; % Signal power initialization file_name=['OFDM_BER_' chType '_' nt '_' 'GL' num2str(Ng) '.dat']; fid=fopen(file_name, 'w+'); norms=[1 sqrt(2) 0 sqrt(10) 0 sqrt(42)]; % BPSK 4-QAM 16-QAM for i=0:length(EbN0) randn('state',0); rand('state',0); Ber2=ber(); % BER initialization Neb=0; Ntb=0; % Initialize the number of error/total bits for m=1:N_iter % Tx______________________________________________________________ X= randint(1,Nused*Nframe,M); % bit: integer vector Xmod= qammod(X,M,0,'gray')/norms(Nbps); if NgType~=2, x_GI=zeros(1,Nframe*Nsym); elseif NgType==2, x_GI= zeros(1,Nframe*Nsym+Ng); % Extend an OFDM symbol by Ng zeros end kk1=[1:Nused/2]; kk2=[Nused/2+1:Nused]; kk3=1:Nfft; kk4=1:Nsym; for k=1:Nframe if Nvc~=0, X_shift= [0 Xmod(kk2) zeros(1,Nvc-1) Xmod(kk1)]; else X_shift= [Xmod(kk2) Xmod(kk1)]; end x= ifft(X_shift); x_GI(kk4)= guard_interval(Ng,Nfft,NgType,x); kk1=kk1+Nused; kk2= kk2+Nused; kk3=kk3+Nfft; kk4=kk4+Nsym; end if Ch==0, y= x_GI; % No channel else % Multipath fading channel channel=(randn(1,Ntap)+j*randn(1,Ntap)).*sqrt(Power/2); h=zeros(1,Lch); h(Delay+1)=channel; % cir: channel impulse response y = conv(x_GI,h); end if i==0 % Only to measure the signal power for adding AWGN noise y1=y(1:Nframe*Nsym); sigPow = sigPow + y1*y1'; continue; end % Add AWGN noise________________________________________________ snr = EbN0(i)+10*log10(Nbps*(Nused/Nfft)); % SNR vs. Eb/N0 noise_mag = sqrt((10.^(-snr/10))*sigPow/2); y_GI = y + noise_mag*(randn(size(y))+j*randn(size(y))); % Rx_____________________________________________________________ kk1=(NgType==2)*Ng+[1:Nsym]; kk2=1:Nfft; kk3=1:Nused; kk4=Nused/2+Nvc+1:Nfft; kk5=(Nvc~=0)+[1:Nused/2]; if Ch==1 H= fft([h zeros(1,Nfft-Lch)]); % Channel frequency response H_shift(kk3)= [H(kk4) H(kk5)]; end for k=1:Nframe Y(kk2)= fft(remove_GI(Ng,Nsym,NgType,y_GI(kk1))); Y_shift=[Y(kk4) Y(kk5)]; if Ch==0, Xmod_r(kk3) = Y_shift; else Xmod_r(kk3)= Y_shift./H_shift; % Equalizer - channel compensation end kk1=kk1+Nsym; kk2=kk2+Nfft; kk3=kk3+Nused; kk4=kk4+Nfft; kk5=kk5+Nfft; end X_r=qamdemod(Xmod_r*norms(Nbps),M,0,'gray'); Neb=Neb+sum(sum(de2bi(X_r,Nbps)~=de2bi(X,Nbps))); Ntb=Ntb+Nused*Nframe*Nbps; %[Ber,Neb,Ntb]=ber(bit_Rx,bit,Nbps); if Neb>Target_neb, break; end end if i==0 sigPow= sigPow/Nsym/Nframe/N_iter; fprintf('Signal power= %11.3e\n', sigPow); fprintf(fid,'%%Signal power= %11.3e\n%%EbN0[dB] BER\n', sigPow); else Ber = Neb/Ntb; fprintf('EbN0=%3d[dB], BER=%4d/%8d =%11.3e\n', EbN0(i), Neb,Ntb,Ber) fprintf(fid, '%d\t%11.3e\n', EbN0(i), Ber); if Ber<1e-6, break; end end end if (fid~=0), fclose(fid); end disp('Simulation is finished'); plot_ber(file_name,Nbps);
评论
    相关推荐
    • 9-1.MB_OFDM_Transmission.zip
      给定的Matlab代码模拟多波段正交频分复用(MB-OFDM)系统中的基带信号的传输。元件/发射机侧的块基于在ECMA368提供的标准规格实现
    • OFDM submit.zip
      本文设计了一个基于IFFT/FFT算法与802.11a标准的OFDM系统,并在计算机上进行了仿真和结果分析。重点在OFDM系统设计与仿真,在这部分详细介绍了系统各个环节所使用的技术对系统性能的影响。在仿真过程中对OFDM信号...
    • OFDM.zip
      OFDM代码,感觉很有用,自己上课使用参考。
    • LTE OFDM
      Here, we simulate an entire Transmission, Channel and Receiver chain for LTE OFDM system in Matlab using 3GPP specifications. We use QPSK for pilot signals and 16QAM for data, and simulate both AWGN ...
    • OFDM调制解调
      在matlab平台开发的OFDM调制解调程序。
    • MB_OFDM_Transmission.zip
      dfvz sedg esfzsfv zvzd rgdfxbvxd szfc
    • Optimum receiver design for OFDM-based broadband transmission
      关于OFDM接收机的经典文章,第一篇讲各种信道损伤对于OFDM信号的影响,第二篇结合DVBT(欧洲数字电视地面广播标准)介绍了设计接收机的实例。推荐对OFDM原理有一定了解的同志进阶使用
    • OFDM.1.rar
      OFDM TRANSMITTER MODEM
    • OFDM.rar
      MODEM TRANSMITTER OFDM
    • USB-COM(HL340).rar
      usb转串口,找了很久才找到,现在别的地方很难下到,要不用不了,我这个可以用 HL340D 的