加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

OFDM调制/解调的MATLAB实现

(2011-03-20 12:13:09)
标签:

ofdm

杂谈

分类: 通信原理MATLAB仿真

% 文件名:p171ofdm.m
% 2011-3-20 《无线通信的MATLAB和FPGA实现》西瑞克斯 人邮
% p171 例4-9 用MATLAB实现OFDM调制、解调,其中假设OFDM信号包含6个
%子载波。这里只是简单地说明OFDM调制方式,因此略去了交织、加窗等部分。

c=6; %子载波个数
bits=108; %每个信道的比特数
n=c*bits; %总的传送比特数
data=2*round(rand(1,n))-1; %产生信源数据
s=reshape(data,c,bits); %串/并变换
tp=1:0.1:(1+10.8)-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,648);
%加噪声
snr=10;
rxdata=awgn(transmit,snr,'measured');
%并串变换
rec=reshape(rxdata,c,bits);
for i=1:c
    rd(i,:)=fft(rec(i,:)); %进行FFT处理
    uncarry(i,:)=rd(i,:).*carrier(i,:); %解调
end
rdata=sign(real(uncarry)); %判决输出结果
%并串变换
rdout=reshape(rdata,1,648);

 

%在MATLAB里运行上述程序后,读者可自行比较rdout和data的数值。
%经过上述代码,可以更好地理解图4-36所示的OFDM结构。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有