资源简介
OFDM系统的matlab实现,包括插入导频信号和循环前缀
代码片段和文件信息
%load carrier_demod_out.mat;
%load matrix_h.mat;
% main_encode;
clc
clear all;
close all;
%
c=6; % 子载波个数
bits=126; % 每个信道的比特数
nl=c*bits; % 总的传送比特数
nbitpersym =6; % number of bits per OFDM symbol (same as the number of subcarriers for BPSK)
nsym = 126; % number of symbols
len_fft = 9; % fft size
sub_car = 6; % number of data subcarriers
EbNo = 0:0.5:5;
EsNo= EbNo + 10*log10(6/9)+ 10*log10(6/14); % symbol to noise ratio
snr= EsNo - 10*log10(9/14); % snr as to be used by awgn fn
snr=0:0.5:5;
for z=1:length(snr)
s=round(rand(1504));
[xyuanHs]=generate_h();
%信噪比
err=zeros(1length(snr)); %误码率
for yy=1:1000
m=252;
n=756;
%encode;
j=3; %列重
k=9; %行重
%
M = modem.pskmod(2); % modulation object
encode_out = modulate(Mxyuan);
%
%save encode_out encode_out
%
s = reshape(encode_outbitsc); % 串并变换
% pilot insertion
pilot_ins_data=[zeros(nsym1) s(:[1:nbitpersym/2]) zeros(nsym1) s(:[nbitpersym/2+1:nbitpersym]) zeros(nsym1)] ;
% fourier transform time doamain data and normalizing the data
IFFT_data = (9/sqrt(6))*ifft(fftshift(pilot_ins_data.‘)).‘;
% addition cyclic prefix
cylic_add_data = [IFFT_data(:[5:9]) IFFT_data].‘;
%并串变换
transmit=reshape(cylic_add_data 1nsym*14);
%
h=rayleighchan(1/1000010);
changain1=filter(hones(1nsym*14));
a=max(max(abs(changain1)));
changain1=changain1./a;
chan_data = changain1.*transmit;
Es=1;
r=(n-m)/n;
M=1;
Eb=Es/(r*M);
chan_awgn = awgn(chan_datasnr(z)‘measured‘); % awgn addition %加噪声
chan_awgn =a* chan_awgn./changain1; % assuming ideal channel estimation
sigma = sqrt(Eb/(2*(10^(snr(z)/10))));
%ryuan = transmit + sigma * randn(1length(transmit));
%chan = rayleighchan(1/10000100);
%ryuan=filter(chanencode_out);
%
% ryuan = awgn(transmitsnr(z)‘measured‘);;%串并变换
rec = reshape(chan_awgn14nsym).‘; % serial to parallel coversion
cyclic_pre_rem = rec(:[6:14]); %cyclic prefix removal
FFT_recdata =(sqrt(6)/9)*fftshift(fft(cyclic_pre_rem.‘)).‘; % freq domain transform
% FFT_recdata = FFT_recdata./FFT_recdata1;
rem_pilot = FFT_recdata (:[6+[1:nbitpersym/2] 3+[nbitpersym/2+1:nbitpersym] ]); %pilot removal
rdout= reshape(rem_pilot.‘1nbitpersym*nsym); % serial coversion
q=modem.pskdemod(2); %demodulation object
demod_Data = demodulate(qrdout); %demodulating the data
%rdata=sign(real(uncarry));
%rdata=sign(real(demod_Data));
%num(t)=biterr(rdata+1s+1)/n;
%
liezhong=j;
hangzhong=k;
hanglieH=size(H);
hangH=hanglieH(1); %H矩阵的行数
lieH=hanglieH(2); %H矩阵的列数
ncol=zeros(liezhonglieH); %存储每一列非零元“1”所在的行
nrow=zeros(hangHhangzhong); %存储每一行非零元“1”所在的列
lie1wei=find(H);
for a=1:lieH
for b=1:liezhong
ncol(ba)=(lie1wei((a-1)*liezhong+b)-(a-1)*hangH);
end
end
hang1wei=find
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3573 2013-05-21 15:37 OFDM_CP.m
----------- --------- ---------- ----- ----
3573 1
- 上一篇:遗传-偏最小二乘回归算法
- 下一篇:支持向量机预测风速
相关资源
- 基于Matlab的最大熵模糊图像复原算法
- KITTI雷达点云与图像数据融合matlab源码
- matlab 解码 NMEA0183格式GGA数据
- 一个有关飞机的模板匹配的跟踪的m
- 基于MATLAB的电弧模型仿真
- PRI信号分选
- Matlab论文:基于Matlab的二进制数字调
- 802.11协议吞吐量随节点数性能仿真
- matlab图片rgb转yuv,存.yuv文件 播放器
- Duda模式分类Pattern Classification MATLAB 代
- dijkstra算法的matlab实现31274
- 随机路径生成函数matlab
- matlab语音信号处理工具箱
- matlab2013激活文件
- matlab实现游程编码
- 暗通道先验+引导滤波MATLAB代码
- 边缘检测中的canny算法及其matlab实现
- 通过达曼光栅生成点阵的matlab程序.
- MATLAB核函数算法
- 求控制系统的性能指标MptrtsFAI,matl
- matlab 求DTFT
- 逆变器重复控制算法MATLAB仿真
- MATLAB R2014b 许可协议文件
- matlab读取comtrade格式的程序
- 基于Matlab的RC一阶电路仿真
- Las点云数据读取代码
- 雷达回波加天线方向图模拟程序
- MATLAB 2017b 安装文件及其破解文件百度
- Matlab实现音频降噪
- matlab实现导航卫星系统中计算多普勒
评论
共有 条评论