基于Matlab模拟莱斯平坦衰落信道上数字信号传输的仿真

简介: 基于Matlab模拟莱斯平坦衰落信道上数字信号传输的仿真

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

SIMULINK是MATLAB中动态系统建模、仿真和分析的一个集成环境,文中按照仿真过程基本步骤用MATLAB的仿真工具SIMUINK实现了数字信号基带传输系统的仿真过程,对系统性能进行了分析.

⛄ 完整代码

% PILOT BASED CHANNEL ESTIMATION (FFT BASED) FOR OFDM SYSTEMS


close all

clear all

clc

SNR_dB = 40;% SNR PER BIT

NUM_FRAMES = 10^2;

FFT_LEN = 1024;

NUM_PILOT = 256;

NUM_BIT = 2*(FFT_LEN-NUM_PILOT); % NUMBER OF DATA BITS

CHAN_LEN = 10; % NUMBER OF CHANNEL TAPS

CP_LEN = CHAN_LEN-1; % LENGTH OF THE CYCLIC PREFIX

FADE_VAR_1D = 0.5; % 1D FADE VARIANCE OF THE CHANNEL

FADE_STD_DEV = sqrt(FADE_VAR_1D); % STANDARD DEVIATION OF THE FADING CHANNEL


% SNR PER BIT PARAMETERS - OVERALL RATE IS 2

SNR = 10^(0.1*SNR_dB); % LINEAR SCALE

NOISE_VAR_1D = 0.5*2*2*CHAN_LEN*FADE_VAR_1D/(2*SNR*FFT_LEN); % 1D AWGN NOISE VARIANCE

NOISE_STD_DEV = sqrt(NOISE_VAR_1D); % NOISE STANDARD DEVIATION


% PILOT AND DATA INDICES IN OFDM FRAME

PILOT_INDEX =  1:FFT_LEN/NUM_PILOT:FFT_LEN; % PILOT POSITION INDICES

DATA_INDEX = 1:FFT_LEN;

DATA_INDEX(PILOT_INDEX) = [];  % DATA POSITION INDICES



tic()

C_BER = 0; % bit errors in each frame

for FRAME_CNT = 1:NUM_FRAMES

%----            TRANSMITTER      -----------------------------------------

% SOURCE

A = randi([0 1],1,NUM_BIT);

% QPSK MAPPING

QPSK_SEQ = 1-2*A(1:2:end) + 1i*(1-2*A(2:2:end));


F_SIG_NO_CP = zeros(1,FFT_LEN); % F STANDS FOR FREQUENCY DOMAIN

F_SIG_NO_CP(DATA_INDEX) = QPSK_SEQ;

F_SIG_NO_CP(PILOT_INDEX) = (1+1i)*ones(1,NUM_PILOT);


% IFFT

T_SIG_NO_CP = ifft(F_SIG_NO_CP);

% INSERTING CYCLIC PREFIX

T_SIG_CP = [T_SIG_NO_CP(end-CP_LEN+1:end) T_SIG_NO_CP];


%---------------     CHANNEL      -----------------------------------------

% RAYLEIGH FREQUENCY SELECTIVE FADING CHANNEL

FADE_CHAN = normrnd(0,FADE_STD_DEV,1,CHAN_LEN)+1i*normrnd(0,FADE_STD_DEV,1,CHAN_LEN);

% FADE CHANNEL OUTPUT

CHAN_OP_TEMP = conv(T_SIG_CP,FADE_CHAN);

% AWGN

AWGN = normrnd(0,NOISE_STD_DEV,1,FFT_LEN+CP_LEN+CHAN_LEN-1)+1i*normrnd(0,NOISE_STD_DEV,1,FFT_LEN+CP_LEN+CHAN_LEN-1);

% AWGN OUTPUT

T_REC_SIG = CHAN_OP_TEMP + AWGN;


%----------------      RECEIVER  ------------------------------------------

% CP & TRANSIENT SAMPLES REMOVAL

T_REC_SIG(1:CP_LEN) = [];

T_REC_SIG_NO_CP = T_REC_SIG(1:FFT_LEN);

% PERFORMING THE FFT

F_REC_SIG_NO_CP = fft(T_REC_SIG_NO_CP);


%--------------------------------------------------------------------------

% FFT BASED CHANNEL ESTIMATION

E_F_PILOT_POS = F_REC_SIG_NO_CP(PILOT_INDEX)./(1+1i); % 1-TAP EQUALIZATION


E_T_PILOT_POS = ifft(E_F_PILOT_POS); % L_p point IFFT


% DISCARDING SAMPLES AFTER LOCATION CHAN_LEN

E_H_CHAN_LEN = E_T_PILOT_POS(1:CHAN_LEN);


% ZERO PADDING AND TAKING ITS IIT

E_F_H = fft(E_H_CHAN_LEN,FFT_LEN); % zero padding and FFT_LEN point FFT


% CHANNEL SUBCARRIERS AT DATA POSITIONS

E_F_H_DATA_POS = E_F_H(DATA_INDEX);

%--------------------------------------------------------------------------

% ML DETECTION

QPSK_SYM = [1+1i 1-1i -1+1i -1-1i];

QPSK_SYM1 = QPSK_SYM(1)*ones(1,FFT_LEN-NUM_PILOT);

QPSK_SYM2 = QPSK_SYM(2)*ones(1,FFT_LEN-NUM_PILOT);

QPSK_SYM3 = QPSK_SYM(3)*ones(1,FFT_LEN-NUM_PILOT);

QPSK_SYM4 = QPSK_SYM(4)*ones(1,FFT_LEN-NUM_PILOT);

DIST = zeros(4,FFT_LEN-NUM_PILOT);

DIST(1,:)=(abs(F_REC_SIG_NO_CP(DATA_INDEX) - E_F_H_DATA_POS.*QPSK_SYM1)).^2;

DIST(2,:)=(abs(F_REC_SIG_NO_CP(DATA_INDEX) - E_F_H_DATA_POS.*QPSK_SYM2)).^2;

DIST(3,:)=(abs(F_REC_SIG_NO_CP(DATA_INDEX) - E_F_H_DATA_POS.*QPSK_SYM3)).^2;

DIST(4,:)=(abs(F_REC_SIG_NO_CP(DATA_INDEX) - E_F_H_DATA_POS.*QPSK_SYM4)).^2;

% COMPARING EUCLIDEAN DISTANCE

[~,INDICES] = min(DIST,[],1);

% MAPPING INDICES TO QPSK SYMBOLS

DEC_QPSK_MAP_SYM = QPSK_SYM(INDICES);

% DEMAPPING QPSK SYMBOLS TO BITS

DEC_A = zeros(1,NUM_BIT);

DEC_A(1:2:end) = real(DEC_QPSK_MAP_SYM)<0;

DEC_A(2:2:end) = imag(DEC_QPSK_MAP_SYM)<0;

% CALCULATING BIT ERRORS IN EACH FRAME

C_BER = C_BER + nnz(A-DEC_A);

end

toc()

BER = C_BER/(NUM_BIT*NUM_FRAMES)

⛄ 运行结果

⛄ 参考文献

[1]曲中水, 王建卫, 朱泳. 基于MATLAB的数字信号基带传输系统仿真[J]. 森林工程, 2004, 20(4):3.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料



相关文章
|
2天前
|
算法 图形学
三维球体空间中光线反射模拟与三维点云提取matlab仿真
本项目使用MATLAB2022A模拟三维椭球体内光线反射并提取三维点云。通过设置椭球模型作为墙壁,根据几何光学原理计算光线在曲面上的反射路径,记录每次反射点坐标,生成三维点云图。核心代码实现多次反射的循环计算与绘图,并展示反射点的位置变化及其平滑处理结果。最终,通过光线追踪技术模拟真实场景中的光线行为,生成精确的三维点云数据,适用于计算机图形学和光学仿真领域。
|
2天前
|
机器学习/深度学习 算法 数据安全/隐私保护
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
|
1天前
|
机器学习/深度学习 算法 索引
单目标问题的烟花优化算法求解matlab仿真,对比PSO和GA
本项目使用FW烟花优化算法求解单目标问题,并在MATLAB2022A中实现仿真,对比PSO和GA的性能。核心代码展示了适应度计算、火花生成及位置约束等关键步骤。最终通过收敛曲线对比三种算法的优化效果。烟花优化算法模拟烟花爆炸过程,探索搜索空间,寻找全局最优解,适用于复杂非线性问题。PSO和GA则分别适合快速收敛和大解空间的问题。参数调整和算法特性分析显示了各自的优势与局限。
|
3天前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响
本内容介绍基于MATLAB 2022a的低密度奇偶校验码(LDPC)仿真,展示了完整的无水印仿真结果。LDPC是一种逼近香农限的信道编码技术,广泛应用于现代通信系统。BP译码算法通过Tanner图上的消息传递实现高效译码。仿真程序涵盖了不同Eb/N0下的误码率计算,并分析了码长、码率、迭代次数和信道类型对译码性能的影响。核心代码实现了LDPC编码、BPSK调制、高斯信道传输及BP译码过程,最终绘制误码率曲线并保存数据。 字符数:239
34 5
|
3天前
|
算法
基于EO平衡优化器算法的目标函数最优值求解matlab仿真
本程序基于进化优化(EO)中的平衡优化器算法,在MATLAB2022A上实现九个测试函数的最优值求解及优化收敛曲线仿真。平衡优化器通过模拟生态系统平衡机制,动态调整搜索参数,确保种群多样性与收敛性的平衡,高效搜索全局或近全局最优解。程序核心为平衡优化算法,结合粒子群优化思想,引入动态调整策略,促进快速探索与有效利用解空间。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
232 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
143 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
111 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)

热门文章

最新文章