OFDM数字通信MATLAB仿真实现
一、实验目的
尝试自行调研、推导,建模实现一个完整的OFDM
数字通信系统,要求:
给出数字信号从发射端处理(产生+IDFT
)、到信道传输(假定多径信道模型参数已知+线性卷积输入输出关系)、再到接收处理(DFT
+去除信道衰减影响)的完整数学推导
使用MATLAB
编程,仿真验证上述数学模型
无须考虑信源编解码、信道编解码、基带调制、载波调制
随机生成发送原始符号序列,多径信道引入加性高斯白噪声序列
经过接收处理,能够恢复原始发送符号序列
尝试计算误码率,即画出随信噪比变化的误码率曲线(用半对数坐标)
二、实验原理
OFDM的模拟电路形式
下面为数字信号的数学推导过程
对于模拟信号
f = S 0 S 1 S 2 . . . S N − 1 f = S_0S_1S_2...S_{N-1} f=S0S1S2...SN−1
经过多载波调制后,每一段信号的以频率为k的正弦波调制结果为
s k ( t ) = S k c o s ( 2 π k t ) = S k e j 2 π k t s_k(t)=S_kcos(2\pi kt)=S_ke^{j2\pi kt} sk(t)=Skcos(2πkt)=Skej2πkt
该信号被分为N段,用N个频率进行调制再叠加,得到的调制信号为
s ( t ) = ∑ k = 0 N − 1 S k e j 2 π k t s(t)=\sum_{k=0}^{N-1}S_ke^{j2\pi kt} s(t)=k=0∑N−1Skej2πkt
通过采样数字化后,调制后的信号为
s ( n ) = ∑ k = 0 N − 1 S k e j 2 π k n / N s(n)=\sum_{k=0}^{N-1}S_ke^{j2\pi kn/N} s(n)=k=0∑N−1Skej2πkn/N
发现多载波调制其实与离散傅里叶逆变换(IDFT
)的形式相同,可以用MATLAB
内置的N点IFFT
进行快速计算。
对于接收端来说,利用三角函数的正交性,用不同频率的正弦波可以恢复出对应频率所载的信号,得到
S k = ∫ s ( t ) s i n ( 2 π k t ) d t = ∫ s ( t ) e − j 2 π k t d t S_k =\int s(t)sin(2\pi kt) dt=\int s(t)e^{-j2\pi kt}dt Sk=∫s(t)sin(2πkt)dt=∫s(t)e−j2πktdt
通过采样数字化后
S k = ∑ n = 0 N − 1 s ( n ) e − j 2 π k n / N S_k=\sum_{n=0}^{N-1} s(n)e^{-j2\pi kn/N} Sk=n=0∑N−1s(n)e−j2πkn/N
发现与离散傅里叶变换形式(DFT
)相同,可以用MATLAB
内置的N点FFT
进行快速计算。
三、实验结果
在没有增大符号周期时,误信率与信噪比关系如图所示。
图1 串行传输误信率与信噪比的关系
在一段8192 bit随机产生的比特序列中,误码率、误信率与信噪比的关系如图所示
图2 OFDM仿真实验中误码率与信噪比的关系
图3 OFDM仿真实验中误信率与信噪比的关系
四、结果分析
1、当信噪比超过20dB
时,该OFDM
系统下误信率和误码率为0。
2、误码率和误信率都随着信噪比增高而下降,即SNR
越高,传输可靠性越强。
3、 图1与图3对比得知,增大符号周期能有效抑制多径效应。
附录:代码及参考文献
clc, clear
% 设置参数
% 信息容量
num = 8192;
% 每段大小(载波频率个数)
seg = 8;
% 设置最大SNR
SNRmax = 50;% 随机产生信号
info = randi(2,1,num) - 1;
for s = 1:SNRmax% 设置信道参数road = [1, zeros(1,1000), 0.05, zeros(1,1000),-0.1, zeros(1,1000)];info_a = awgn(info, s); % 增加高斯白噪声 第二个参数为信噪比% 用reshape函数进行串行转并行info1 = reshape(info_a, seg, num/seg);info_re = reshape(info, seg, num/seg);res_seg = OFDM(info1, road, seg, num)>0.5; % OFDM为自编函数% 计算误码率for i = 1 : num/segtemp(i) = sum(res_seg(:,i) ~= info_re(:,i));enderrseg(s) = sum(temp~=0)/num*seg;% 计算误比特率res = reshape(res_seg, 1, num); % 并行信号恢复成串行信号errbit(s) = sum(info~=res)/num;
endplot(errseg)
title("误码率与SNR的关系")
plot(errbit);
title("误比特率与SNR的关系")function res = OFDM(info1, real_road, seg, num)for i = 1:num/seginfo_idft(:,i) = ifft(info1(:,i),seg); % IDFT载波调制过程receiver(:, i) = conv(info_idft(:,i),real_road); % 信号通过信道res(:, i) = real(fft(receiver(:, i), seg)); % DFT恢复信号过程end
end
参考文献
https://blog.csdn.net/a493823882/article/details/80058002?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
OFDM数字通信MATLAB仿真实现相关推荐
- OFDM调制matlab仿真详细代码
MATLAB仿真代码 % ================================================== % 作者: 肆拾伍 % 时间:11/30 2019 % 版本:V3 % ...
- ofdm系统matlab仿真论文,基于MATLAB的OFDM仿真(SIMULINK仿真)
中 文 摘 要 正交频分复用(OFDM)是一种多载波宽带数字调制技术.相比一般的数字通信系统,它具有频带利用率高和抗多径干扰能力强等优点,因而适合于高速率的无线通信系统.正交频分复用 OFDM 是第四 ...
- OFDM系统MATLAB仿真
OFDM完整仿真过程及解释(MATLAB) 问题: OFDM 子载波间隔是怎么确定的? OFDM 子载波间隔是怎么确定的?书上写着,T是符号宽度,子载波的间隔为1/T:加入保护间隔(循环前缀)之后,子 ...
- ofdm系统matlab仿真,基于Simulink 的OFDM 系统仿真分析
在数字传输系统中,数字信号对高频载波进行调制,变为频带信号,通过信道传输,在接收端解调后恢复成数字信号.由于大多数实际信号都是带通型的,所以必须先用数字基带信号对载波进行调制,形成数字调制信号再进行传 ...
- ofdm系统matlab仿真论文,OFDM通信系统分析及其Simulink仿真
一.课题综述及研究意义 当前,随着Internet商用化所带动的视频.音频及数字通信技术的发展,人们对无线通信寄予了更高的希望.无线移动通信作为通信行业的新兴领域正在进行着日新月异的发展,寻求一种大容 ...
- matlab实现ofdm调制解调,基于MATLAB的OFDM调制解调仿真
基于MATLAB的OFDM调制解调仿真 题目:基于 MATLAB的 OFDM调制解调仿真2009年 6 月 13 日目 录摘要 .IIAbstract IV第 1章 正交频分复用的来源 - 1 -1. ...
- OFDM同步技术基于MATLAB仿真,基于Matlab的OFDM系统仿真
中文摘要 交频分复用(OFDM, Orthogonal Frequency Division Multiplexing) 是一种特殊的多载波方案,它可以被看作一种调制技术,也可以被当作是一种复用技术。 ...
- matlab仿真ofdm的ccdf,OFDM系统峰均比降低算法的研究+Matlab仿真(6)
OFDM系统峰均比降低算法的研究+Matlab仿真(6) 时间:2016-11-28 22:19来源:毕业论文 2.2.5 自适应技术 自适应调制技术在OFDM系统中也占有非常重要的地位,其调制思想是 ...
- OFDM通信系统PAPR抑制算法matlab仿真,对比SLM算法和PTS算法
目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 OFDM(Orthogonal Frequency Division Multiplexing)正交频分复用技术,OFDM是一 ...
最新文章
- C++构造函数(一)
- cstring 比较_属牛人和属蛇人姻缘婚配关系比较和谐
- numpy中的矩阵与数学上的矩阵的关系
- 边工作边刷题:70天一遍leetcode: day 94-1
- 动网论坛Ver 7.1.0 Sp1
- 制作已编译的html帮助文件
- 你得学会并且学得会的Socket编程基础知识(转)
- Django学习目录
- Android UI 备忘:DrawerLayout
- html合并标记,在合并期间在HTML标记之间拉取特定的(文本)间隔
- jQuery学习-显示与隐藏
- JAVA(二)异常/包及访问权限/多线程/泛型
- 【servlet】搭建servlet环境
- Ubuntu修改open files数
- 图解设计模式 - Adapter 模式
- 二维码生成器网站/解码网站
- 基于51单片机的体脂检测系统设计(51+oled+hx711+us100)
- CSTC-2017-Web-writeup
- JavaWeb购物平台小项目
- Altium Designer(八):邮票孔拼版
热门文章
- evaluate函数在python_Python test.evaluate方法代碼示例
- dns欺骗编辑html,charles DNS欺骗
- 健康饮食:如何挑选食用油
- .net 基础面试题
- 什么位置适合开水果店,水果店在什么位置比较好
- 计算机组成原理——计算机系统层次结构
- 链接orientdb的图形数据库_OrientDB数据库(ruby语言操作)
- CSS-reset.css重置样式表
- com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not?
- CentOS 7镜像下载 以及 DVD ISO 和 Minimal ISO 等各版本的区别介绍