www.gusucode.com > 无线通信FPGA设计源码程序 > 无线通信FPGA设计源码程序/matlab代码/matlab/c8/OFDMmod.m
clear clc c=6; % 子载波个数 bits=4000; % 每个信道的比特数 n=c*bits; % 总的传送比特数 data= 2*round(rand(1,n))-1; %产生信源数据 s = reshape(data,c,bits); % 串并变换 tp=1:0.1:(1+bits/10)-0.1; for i=1:c carrier(i,:)=cos(2*i*pi*tp); % 产生载波信号 bpsk_sig(i,:)=s(i,:).*carrier(i,:); % 产生调制信号 fin(i,:)=ifft(bpsk_sig(i,:)); %对信号进行ifft end %并串变换 transmit=reshape(fin,1,n); %加噪声 snr=[-5:2:16]; for t=1:length(snr) rxdata=awgn(transmit,snr(t),'measured'); %并串变换 rec=reshape(rxdata,c,bits); for i=1:c rxdataf(i,:)=fft(rec(i,:)); %进行FFT处理 uncarry(i,:)=rxdataf(i,:).*carrier(i,:); %解调 end rdata=sign(real(uncarry)); num(t)=biterr(rdata+1,s+1)/n; end