基于matlab实现OFDM的编码.
- 格式:doc
- 大小:56.51 KB
- 文档页数:8
第一章绪论
1.1简述
OFDM是一种特殊的多载波传输方案,它可以被看作是一种调制技术,也可以被当作一种复用技术。多载波传输把数据流分解成若干子比特流,这样每个子数据流将具有低得多的比特速率,用这样的低比特率形成的低速率多状态符号再去调制相应的子载波,就构成多个低速率符号并行发送的传输系统。正交频分复用是对多载波调制(MCM,Multi-Carrier Modulation)的一种改进。它的特点是各子载波相互正交,所以扩频调制后的频谱可以相互重叠,不但减小了子载波间的干扰,还大大提高了频谱利用率。
符号间干扰是多径衰落信道宽带传输的主要问题,多载波调制技术包括正交频分复用(OFDM)是解决这一难题中最具前景的方法和技术。利用OFDM技术和IFFT方式的数字实现更适宜于多径影响较为显著的环境,如高速WLAN 和数字视频广播DVB等。OFDM作为一种高效传输技术备受关注,并已成为第4代移动通信的核心技术。如果进行OFDM系统的研究,建立一个完整的OFDM 系统是必要的。本文在简要介绍了OFDM 基本原理后,基于MATLAB构建了一个完整的OFDM动态仿真系统。
1.2 OFDM基本原理概述
1.2.1 OFDM的产生和发展
OFDM的思想早在20世纪60年代就已经提出,由于使用模拟滤波器实现起来的系统复杂度较高,所以一直没有发展起来。在20世纪70年代,提出用离散傅里叶变换(DFT)实现多载波调制,为OFDM的实用化奠定了理论基础;从此以后,OFDM在移动通信中的应用得到了迅猛的发展。
OFDM系统收发机的典型框图如图1.1所示,发送端将被传输的数字信号转换成子载波幅度和相位的映射,并进行离散傅里叶变换(IDFT)将数据的频谱表达式变换到时域上。IFFT变换与IDFT变换的作用相同,只是有更高的计算效
基于MATLAB的OFDM系统仿真及分析
OFDM(正交频分复用)是一种广泛应用于无线通信系统中的多载波调
制技术。在OFDM系统中,信号被分为多个独立的子载波,并且每个子载
波之间正交。这种正交的特性使得OFDM系统具有抗频率选择性衰落和多
径干扰的能力。本文将基于MATLAB对OFDM系统进行仿真及分析。
首先,我们需要确定OFDM系统的参数。假设我们使用256个子载波,其中包括8个导频符号用于信道估计,每个OFDM符号的时域长度为128
个采样点。接下来,我们需要生成调制信号。假设我们使用16QAM调制方式,每个子载波可以传输4个比特。
在MATLAB中,我们可以使用randi函数生成随机的比特序列,然后
将比特序列映射为16QAM符号。生成的符号序列可以通过IFFT(Inverse Fast Fourier Transform)将其转换为时域信号。
OFDM系统的发射端包括窗函数、导频符号插入、IFFT和并行到串行
转换等模块。窗函数用于增加OFDM符号之间的过渡带,导频符号用于信
道估计和符号同步。通过将符号序列与导频图案插入到OFDM符号序列中,然后进行IFFT变换,再进行并行到串行转换即可得到OFDM信号的时域波形。
接下来,我们需要模拟OFDM信号在信道中传输和接收。假设信道是Additive White Gaussian Noise(AWGN)信道。在接收端,OFDM信号的
时域波形通过串行到并行转换,然后进行FFT(Fast Fourier Transform)变换得到频域信号。通过在频域上对导频符号和OFDM信号进行正交插值,可以进行信道估计和等化。最后将频域信号进行解调,得到接收后的比特
close all;
carrier_count=200;%子载波数
symbols_per_carrier=12;%每子载波含符号数
bits_per_symbol=4;%每符号含比特数,16QAM调制
IFFT_bin_length=512;%FFT点数
PrefixRatio=1/4;%保护间隔与OFDM数据的比例1/6~1/4
GI=PrefixRatio*IFFT_bin_length ;%每一个OFDM符号添加的循环前缀长度为
1/4*IFFT_bin_length 即保护间隔长度为128
beta=1/32;%窗函数滚降系数
GIP=beta*(IFFT_bin_length+GI);%循环后缀的长度20
SNR=15; %信噪比dB
%==================================================
%================信号产生=================================== baseband_out_length = carrier_count * symbols_per_carrier * bits_per_symbol;%所输入的比特数目
carriers = (1:carrier_count) + (floor(IFFT_bin_length/4) - floor(carrier_count/2));%共轭对称子载波映射复数数据对应的IFFT点坐标
conjugate_carriers = IFFT_bin_length - carriers + 2;%共轭对称子载波映射共轭复数对应的IFFT点坐标
%bin22deci.m
function y=bin22deci(x)
%将二进制数转化为十进制数
t=size(x,2);
y=(t-1:-1:0);
y=2.^y;
y=x*y';
%************************end of file***********************************
%comb.m
%AWGN加噪声程序
function[iout,qout]=comb(idata,qdata,attn)
%******************variables*************************
%idata:输入I信道数据
%qdata:输入Q信道数据
%iout输出I信道数据
%qout输出Q信道数据
%attn:由信噪比导致的衰减系数
%******************************************************
iout=randn(1,length(idata)).*attn;
qout=randn(1,length(qdata)).*attn;
iout=iout+idata(1:length(idata));
qout=qout+qdata(1:length(qdata));
%************************end of file***********************************
%crdemapping.m
%数据逆映射载波程序
function[iout,qout]=crdemapping(idata,qdata,fftlen,nd);
毕业论文
题目基于MATLAB的OFDM研究
2019年 4 月
基于MATLAB的OFDM研究
摘要
自80年代,数字移动通信技术逐渐开始成熟,并开始应用在各式各样的,种类不同的无线通信系统,例如,数字集群电话,数字蜂窝电话,无线寻呼等,以上使用的是特高频/甚高频波段的数字移动通信。但是这两者的移动信道存在很多问题,噪声干扰,在多径传播时易造成码间串扰,选择性衰弱等。为解决这些问题,OFDM出现了,即正交频分复用。它是第四代移动通信的关键技术。因为它的信道被利用率非常高,抗衰弱能力非常好。OFDM的信号产生与解调的过程就是 IDFT/DFT 的变换过程。正交频分复用(OFDM)是一种调制技术,在许多新兴的宽带无线和有线通信系统中得到了广泛应用。由于OFDM技术具有利用多个频谱重叠的低速副载波传输高速数据流的能力,因此它具有频谱效率高、抗载波间和符号间抗干扰性、对服务器信道条件的适应性等优点,近年来,OFDM技术的研究越来越深入。基于OFDM传输技术,被认为是未来超高速光传输的一种有前途的技术。它可以构建一种在频谱分配和数据速率调节方面具有极大灵活性和可扩展性的新型弹性光网络结构,以支持未来多种业务和互联网流量的快速增长。
正交频分复用(OFDM)主要是针对多径接收的效果,通过将宽带频率选择性衰落信道许多狭窄的扁平子通道。正交频分复用适应时变信道的灵活性采用各参数的条件副载波准确。为了避免ISI多径,连续的OFDM符号被分开通过防护带。这使得OFDM系统抗多径效应的思想利用FDM进行并行数据传输。对OFDM的关注在无线和有线通信系统领域。
ofdm子载波频谱matlab代码以下是一个简单的OFDM子载波频谱的Matlab代码示例。该代码主要生成一个OFDM信号,并计算其频谱。
```Matlab
% 参数设定
N = 64; % 子载波数
CP = N/4; % 循环前缀长度
t = 1/20e3; % 时间长度
Ts = t/N; % 符号周期
f0 = 2.5e9; % 载波频率
fc = 10*f0; % 信号带宽
Tb = N*Ts; % 比特周期
c = 3e8; % 光速
d = c*Ts/2; % 发送天线与接收天线间距
SNRdB = 10; % 比特能量噪声比(dB)
snr = SNRdB/10; % 比特能量噪声比
EbN0 = 10^(snr/10); % 比特能量噪声密度比
EbN0_dB = 10*log10(EbN0); % 比特能量噪声密度比(dB)
Pn = 1/sqrt(2)*(sqrt(2)*sqrt(pi)*sqrt(EbN0)*1i)/2; % 加性高斯白噪声功率谱密度
Pn_dB = 10*log10(Pn); % 加性高斯白噪声功率谱密度(dB)
% 生成OFDM信号
data = randi([0,1],N,1); % 生成随机的二进制数据
data_fft = fft(data); % FFT变换
data_fft_cp = [data_fft, zeros(CP,1)]; % 添加循环前缀
x = exp(1i*2*pi*f0*(0:N-1)*Ts); % 生成载波信号
x_cp = [x, zeros(CP,1)]; % 添加循环前缀
ofdm wireless lans matlab代码
OFDM(正交频分复用)是一种广泛应用于无线通信系统的技术,特别是在无线局域网(WLAN)中。以下是关于OFDM无线局域网的一个简短Matlab代码示例:
```matlab
-初始化参数
fs = 1000000; % 采样频率
npulses = 64; % 脉冲数量
nbits = 128; % 比特数量
modulation_scheme = 'QPSK'; % 调制方案
snr = 20; % 信噪比(dB)
-生成随机比特数据
bit_data = randi([0 1], 1, npulses * nbits);
-调制
modulated_data = qpsk_mod(bit_data, fs, npulses, nbits, modulation_scheme);
-添加噪声
noisy_data = modulated_data + 10^(-snr/10) * (randn(npulses, nbits) + 1i * randn(npulses, nbits));
-解调
demodulated_data = qpsk_demod(noisy_data, fs, npulses, nbits, modulation_scheme);
-计算误码率
bit_error_rate = biterr(bit_data, demodulated_data);
-显示结果
disp(['误码率:', num2str(bit_error_rate)]);
ofdm的matlab实现
OFDM(正交频分复用)是一种常用的调制解调技术,被广泛应用于无线通信和数字电视等领域。在本篇文章中,我们将探讨OFDM的基本原理,并介绍如何使用Matlab实现OFDM系统。
一、OFDM基本原理
OFDM是一种基于频域的多载波调制技术,通过将高速数据流分成多个较低速的子流,并将这些子流分配到不同的频率载波上来传输数据。通过这种方式,OFDM可以有效地抵抗频率选择性衰落和多径传播引起的时域间隔干扰,提供更好的抗干扰性能。
OFDM系统的主要构成部分包括信源、调制器(调制器和反调制器)和调制解调器(调制器和解调器)。在发送端,调制器将输入数据流分为多个子流,并进行调制后输出。在接收端,解调器对接收到的信号进行解调并还原为原始数据流。
OFDM调制器的实现主要依赖于以下两个关键概念:正交性和多载波调制。
1. 正交性:在OFDM系统中,子载波之间需要满足正交性条件,即相邻子载波之间的正弦波形式相互垂直,相位差为0或π。这样可以确保子载波之间的干扰最小。
2. 多载波调制:OFDM系统中,将整个频率带宽划分为多个子载波,每个子载波都可以用不同的调制方式来传输数据。常见的调制方式有BPSK、QPSK、16-QAM等。
二、Matlab实现OFDM系统
下面我们将使用Matlab来实现OFDM系统。按照OFDM系统的基本原理,需要完成以下几个步骤:
1. 生成原始数据:首先,我们需要生成一组原始数据作为输入。可以使用随机数生成器来生成一个指定长度的数据序列。
2. 子载波生成:根据系统设置,生成需要的子载波。可以使用fft函数计算离散傅里叶变换,得到频域上的正弦波。
基于matlab ofdm通信系统仿真代码
基于MATLAB OFDM通信系统仿真代码是一种应用在无线通信领域的高
效的通信技术。OFDM(正交分频多载波)技术是一种高效的技术,它
能够在有限的信道容量内传输大量的数据,同时也能抵御多径衰减和
多路径效应。此外,OFDM还可以抵抗非线性干扰和伪噪声,从而提高
系统的可靠性和稳定性。MATLAB OFDM通信系统仿真代码可以帮助我们快速验证一个OFDM系统的性能,从而帮助我们更好地理解OFDM技术
背后的原理和技术。
MATLAB OFDM通信系统仿真代码由信道模拟、OFDM调制和解调制的子
模块组成,其中每个子模块都可以通过MATLAB编程实现。首先,我们
需要定义一个简单的信道函数,以模拟实际信道的衰减和多路径效应,然后将信号传输给OFDM调制模块,它将信号转换成OFDM调制的多载
波信号。接着,多载波信号被发射到信道中,经过信道后,经过OFDM
解调制模块处理,得到恢复后的信号,再经过信道衰减模拟得到最终
信号,完成仿真。
通过使用MATLAB OFDM通信系统仿真代码,我们可以更有效地对OFDM
技术进行仿真评估,同时也可以获得更为准确、直观的仿真结果。此外,MATLAB OFDM通信系统仿真代码还可以帮助我们了解OFDM技术的
具体实施方法,为实际开发工作提供有效的技术支持。
西安邮电大学
通信与信息工程学院 专业课程设计B 报告
专业班级: 通工xx 学生姓名: 秋风羽 学号(班内序号): xxxxxxxx (xx 号)
2014 年 4 月 22 日
——————————————————————————
装
订
线
————————————————————————————————
报告份数:
指导教师评语:
实 验 成 绩: 指导(辅导)教师 :
——————————————————————————
装
订
线
————————————————————————————————
无线网络是无线通信系统中的一个重要应用,根据网络范围大小可划分为局域网,城域网和广域网。IEEE为无线网络专门制定了相关的标准,802.11和802.16就属于这方面的标准。其中802.11针对范围更小的无线局域网。
802.11标准包括802.11a、802.11b、802.11g等一系列标准,各自采用不同的物理层技术,其中802.11a即采用了OFDM技术。
本次专业课程设计主要是基于matlab对于整个OFDM系统的模拟,即对前导生成原理、扰码及解扰码、卷积编码及卷积解码、交织与解交织、星座映射与逆映射等一系列模块的软件实现。其目的是让我们能对OFDM技术有更加全面的认识。
二.英文摘要
The Wireless network that is a wireless communication system is an important application, depending on the size of network can be classified as LAN, MAN and WAN. IEEE specially formulated relevant standards for the wireless network. Both 802.11 and the 802.16 belong to this. The 802.11 is for a smaller range of wireless LAN. And 802.11 standards including 802.11a, 802.11b, 802.11g and so on. Each one has different physical layer technology. The OFDM technology was used by 802.11a. This course design is mainly based on MATLAB to simulate the entire OFDM system, which was consisted of leading principle, scrambling and descrambling, convolution coding and decoding, interleaving and de-interleaving, constellation mapping and inversing constellation mapping and so on by making software. Its purpose is to allow us to meet OFDM technology for a more comprehensive understanding.
echo off; % 关闭回显
clear all; % 从内存中清除变量和函数
close all; % 关闭所有图形
fprintf( '\n OFDM仿真\n \n') ; % 设置显示格式
% --------------------------------------------- %
% 参数定义%
% --------------------------------------------- %
IFFT_bin_length = 1024; % 发送端的IFFT变换长度, 接收端的FFT变换长度,R代表接受,T代表发送
carrier_count = 200; % 子载波数
bits_per_symbol = 2; % 位数/符号
symbols_per_carrier = 50; % 符号数/载波
cp_length = input('cp length = '); % 输入循环前缀长度
d4 = input('d4 = '); % 输入最大多径时延扩展
a4 = input('a4 = '); % 输入最大多径时延扩展的系数SNR = input('SNR = '); % 输入信道信噪比(dB) % --------------------------------------------- %
% 初始参数设置完毕%
% --------------------------------------------- %
baseband_out_length = carrier_count * symbols_per_carrier * bits_per_symbol; % 计算发送的二进制序列长度:基带传送长度=载波数×符号数/载波×位数/符号
% Program 4-2% ofdm_fading.m%% Simulation program to realize OFDM transmission system% (under one path fading)%% programmed by T.Yamamura and H.Harada%%********************** preparation part ***************************para=128; % Number of parallel channel to transmit (points)fftlen=128; % FFT lengthnoc=128; % Number of carriernd=6; % Number of information OFDM symbol for one loopml=2; % Modulation level : QPSKsr=250000; % Symbol ratebr=sr.*ml; % Bit rate per carriergilen=32; % Length of guard interval (points)ebn0=10; % Eb/N0%******************* Fading initialization ********************% If you use fading function "sefade", you can initialize all of parameters.% Otherwise you can comment out the following initialization.% The detailed explanation of all of valiables are mentioned in Program 2-8.% Time resolutiontstp=1/sr/(fftlen+gilen); % Arrival time for each multipath normalized by tstp% If you would like to simulate under one path fading model, you have only to set % direct wave.itau = [0];% Mean power for each multipath normalized by direct wave.% If you would like to simulate under one path fading model, you have only to set % direct wave.dlvl = [0];% Number of waves to generate fading for each multipath.% In normal case, more than six waves are needed to generate Rayleigh fadingn0=[6];% Initial Phase of delayed wave% In this simulation four-path Rayleigh fading are considered.th1=[0.0];% Number of fading counter to skip itnd0=nd*(fftlen+gilen)*10;% Initial value of fading counter% In this simulation one-path Rayleigh fading are considered.% Therefore one fading counter are needed.itnd1=[1000];% Number of directwave + Number of delayed wave% In this simulation one-path Rayleigh fading are considerednow1=1; % Maximum Doppler frequency [Hz]% You can insert your favorite valuefd=320; % You can decide two mode to simulate fading by changing the variable flat% flat : flat fading or not % (1->flat (only amplitude is fluctuated),0->nomal(phase and amplitude are fluctutated)flat =1;%************************** main loop part **************************nloop=500; % Number of simulation loopsnoe = 0; % Number of error datanod = 0; % Number of transmitted dataeop=0; % Number of error packetnop=0; % Number of transmitted packetfor iii=1:nloop%************************** transmitter *********************************%************************** Data generation **************************** seldata=rand(1,para*nd*ml)>0.5; % rand : built in function%****************** Serial to parallel conversion ***********************paradata=reshape(seldata,para,nd*ml); % reshape : built in function%************************** QPSK modulation ***************************** [ich,qch]=qpskmod(paradata,para,nd,ml);kmod=1/sqrt(2)