77范文网 - 专业文章范例文档资料分享平台

完整的OFDM系统的仿真实现

来源:网络收集 时间:2018-12-20 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

%窗函数子程序,子程序名称:recoswindow.m function[rcosw]=rcoswindow(beta,Ts)

%输入参数:beta为升余弦窗关键系数,Ts为IFFT长度家循环前缀长度 t=0:(1+beta)*Ts;

rcosw=zeros(1,(1+beta)*Ts); %计算升余弦窗,共有三部分 for i=1:beta*Ts;

rcosw(i)=0.5+0.5*cos(pi+t(i)*pi/(beta*Ts));%计算升余弦窗的第一部分 end

rcosw(beta*Ts+1:Ts)=1;%计算升余弦窗低二部分 for j=Ts:(1+beta)*Ts+1;

rcosw(j-1)=0.5+0.5*cos((t(j)-Ts)*pi/(beta*Ts)); %计算升余弦窗第三部分 end

rcosw=rcosw';%转换为列矢量

%将16QAM信号的解调子程序,子程序的名称:demoduqam16.m end

QAM调制子程序,子程序名称为qam16.m %将二进制数目流转换为16QAM信号 function [complex_qam_data]=qam16(bitdata) %输入参数:bitdata为二进制数码流

%输出参数:complex_qam_data为16QAM副信号

X1=reshape(bitdata,4,length(bitdata)/4)';%将二进制数码流以4bitte分段 d=1;

%转换4bit二进制码为十进制码1~16,生态农场mapping映射表中的索引 for i=1:length(bitdata)/4; for j=1:4

X1(i,j)=X1(i,j)*(2^(4-j)); end

source(i,1)=1+sum(X1(i,:)); end

QAM映射表,改表中存放的16对,没对两个实数,表示星座位置 mapping=[-3*d 3*d;-d 3*d;d 3*d;3*d 3*d;-3*d d;-d d;d d;3*d d;-3*d -d;-d -d;d -d;3*d -d;-3*d -3*d;-d -3*d;d -3*d;3*d -3*d];

for i=1:length(bitdata)/4

qam_data(i,:)=mapping(source(i),:);%数据映射 end

complex_qam_data=complex(qam_data(:,1),qam_data(:,2)); %组合为负数形式,形成16QAM信号 end

%将16QAM信号的解调子程序,子程序的名称:demoduqam16.m %该子程序测试

function [demodu_bit_symble]=demoduqam16(Rx_serial_complex_symbols) %输入参数为:Rx_serial_complex_symbols为接收端接收到的复16QAM信号 %输出参数:demodu_bit_symble为二进制数码流

complex_symbols=reshape(Rx_serial_complex_symbols,length(Rx_serial_complex_symbols),1);

d=1;

mapping=[-3*d 3*d;-d 3*d;d 3*d;3*d 3*d;-3*d d;-d d;d d;3*d d;-3*d -d;-d -d;d -d;3*d -d;-3*d -3*d;-d -3*d;d -3*d;3*d -3*d];

complex_mapping=complex(mapping(:,1),mapping(:,2)); %将数据映射表中转换为16QAM信号,即3组合为复数; for i=1:length(Rx_serial_complex_symbols); for j=1:16;

metrics(j)=abs(complex_symbols(i,1)-complex_mapping(j,1)); end

[min_metricdecode_symble(i)]=min(metrics);

%将接收数据与标准16QAM信号比,找到差最小的,将其对应恢复成标准的16QAM信号

end

decode_bit_symble=de2bi((decode_symble-1)','left-msb'); %将16QAM转为二进制

demodu_bit_symble=reshape(decode_bit_symble',1,length(Rx_serial_complex_symbols)*4);%转换为一行

end

baseband_out_length=16000; rand('twister',0);

baseband_out=round(rand(1,baseband_out_length));

%产生16000bit待传输的二进制比特流。这里存放的是发送的二进制信号与后面解调后的二进制信号比较,可以计算误码率。

QAM调制病绘制星座图。

complex_carrier_matrix=qam16(baseband_out); figure(1);

plot(complex_carrier_matrix,'*r');%绘制16QAM星座图 title('16QAM调制后星座图'); grid on ;

QAM调制子程序,子程序名称为qam16.m %将二进制数目流转换为16QAM信号 %QAM16测试

%输入参数:bitdata为二进制数码流

%输出参数:complex_qam_data为16QAM复信号 close all; clear all;

baseband_out_length=16000; rand('twister',0);

bitdata=round(rand(1,baseband_out_length));

complex_carrier_matrix=qam16(bitdata);

% X1=reshape(bitdata,4,length(bitdata)/4)';%将二进制数码流以4bite分段 % d=1;

% %转换4bit二进制码为十进制码1~16,生成mapping映射表中的索引 % for i=1:length(bitdata)/4; % for j=1:4

% X1(i,j)=X1(i,j)*(2^(4-j)); % end

% source(i,1)=1+sum(X1(i,:)); % end

% QAM映射表,该表中存放的16对,没对两个实数,表示星座位置 % mapping=[-3*d 3*d;-d 3*d;d 3*d;3*d 3*d;-3*d d;-d d;d d;3*d d;-3*d -d;-d -d;d -d;3*d -d;-3*d -3*d;-d -3*d;d -3*d;3*d -3*d];

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库完整的OFDM系统的仿真实现在线全文阅读。

完整的OFDM系统的仿真实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/378488.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: