【信道估计】OFDM系统的信道估计(LS、MMSE、LMSE比较)【含Matlab源码 4226期】

在这里插入图片描述
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、OFDM系统的信道估计(LS、MMSE、LMSE比较)

1 OFDM系统的基本原理
人们采用相干时间或多普勒频移来描述信道的时变特性,采用多径时延扩展或相干带宽来描述信道的多径特性。在小于相干时间的时间范围内,可以将信道看成线性时不变的;如果信道带宽小于相干带宽,则可以认为该信道是非频率选择性信道,其所经历的衰落是平滑衰落,即所有的频率成分所经历的衰落情况相同。这样就可以得到一个简单而又较为符合实际系统的研究模型。
多载波调制的基本思想就是采用多个载波信号,将要传输的数据流分解成多个比特流,每个子数据具有低得多的传输比特流,并且用这些数据流去并行调制多个载波。OFDM就是在此基础之上,使不同的子载波相互正交,因此它具有更高的频谱利用率,其实质就是把高速率的数据流串并变换为低速率的N路并行数据流,然后用它们分别去调制N路相互正交的子载波,再将调制后的信号相加即得发射信号.由于子数据流的速率是原来的l/N,即符号周期扩大为原来的N倍,远大于信道的最大延时扩展,从而具有很强的抗多径衰落和抗脉冲干扰能力。

2 OFDM系统主要技术
与下一代移动通信系统有关的OFDM系统的关键技术主要有以下几个方面:

2.1 OFDM同步技朮
OFDM系统中载波同步误差都会产生ICI,而定时误差会造成ISI,所以OFDM系统在应用中要实现严格的同步,才能在无线衰落信道上表现出现有的良好性能,同步参数的估计是OFDM系统中关键技术的一个重要部分。

2.2 信道估计
在OFDM系统中,多导频信道估计器的设计主要包括两个问题:一是导频信息的选择。无线信道是衰落信道,需要不断对信道进行跟踪,因此,导频信息也必须不断地传送;二是复杂度较低和导频跟踪能力良好的信道估计器的设计。在实际设计中,导频信息的选择和最佳估计器的设计是相互关联的,估计器的性能与导频信息的传输方式有关。

2.3 均衡
在一般的衰落环境下,OFDM系统中的均衡不是有效改善系统性能的方法,因为均衡的实质是补偿多径信道引起的码间干扰,而OFDM技术本身己经利用了多径信道的分集特性,因此在一般情况下,OFDM系统就不必再做均衡。在高度散射的信道中,信道记忆长度很长,CP长度必须很长,才能够使ISI尽量不出现[12]。但是CP长度过长必然导致能量大量损失,尤其对子载波个数不是很大的系统。这时可以考虑加均衡器使CP的长度适当减小,即通过增加系统的复杂性来换取系统频带利用率的提高。

2.4 降低峰值平均功率比
由于OFDM信号时域上表现为万个正交子载波信号的叠加,当这N个信号恰好均以峰值点相加时,OFDM信号也将产生最大峰值,该峰值信号的功率与整个信号的平均功率之比,称为峰值平均功率比(PAPR)。尽管峰值功率出现的概率较低,但为了不失真地传输这些高PAPR的OFDM信号,发送端对高功率放大器 (HPA)的线性度要求很高且发送效率极低,接收端对前端放大器以及习D变换器的线性度要求也很高。因此,高的PAPR使得OFDM系统的性能大大下降甚至直接影响实际应用。为了解决这一问题,人们提出了信号预畸变技术、信号编码技术、选择性映射技术和部分传输序列技术等用来降低OFDM系统峰均比的方法。[13]

3 OFDM系统的信道估计技术
信道估计的目的就是估计出信道的时域与频域响应,对接收到的数据进行校正与恢复,以获得相干检测的性能增益。通常的信道估计根据是否使用辅助数据,
可分为基于导频或训练序列符号的辅助信息信道估计算法和盲信道估计算法两大类。

3.1 OFDM系统的信道估计技术
3.1.1 基于训练序列的信道估计技术
基于训练序列的信道估计方法适用于突发传输方式的系统,通过发送已知的训练序列,在接收端进行初始的信道估计,当发送有用的信息数据,利用初始的信道估计结果进行判决更新,完成实时的信道估计。对于采用OFDM传输的系统,传输信号每帧又分为若干OFDM符号,包括训练符号和传输数据符号,其中训练序列用来估计系统的频率偏移、定时偏移以及信道参数。系统也有两种工作模式:训练模式和数据传输模式。在训练模式,系统周期性的发送训练序列,接收端根据这些参考信号对信道参数进行估计;在数据传输模式,系统利用以上估计得到的参数传输数据。

3.1.2 盲和半盲信道估计技术
信道盲估计是在对发送数据完全未知的情况下,利用发送数据或接收数据之间的相关性完成对信道响应值的估计,而半盲估计则是部分利用导频或训练序列得到的信息再进行处理。这种估计方法虽不占用带宽,但计算复杂,收敛速度慢,实时性差,而且需要得到较多的数据进行处理,适合于变化较慢的信道[15]。盲和半盲信道估计技术比较复杂,本文主要对基于导频符号的信道估计做出研究,因此暂对盲和半盲信道估计技术不作深入探讨。

3.1.3 基于导频符号的信道估计
基于辅助信息的估计方法是在发送端信号的某些固定位置插入一些已知的导频符号或训练序列,在接收端利用这些导频符号或训练序列按照某些算法进行信道估计。此类估计占用了系统带宽,信道跟踪速度快,容易实现[14]。
基于导频的信道估计通常要考虑三个关键问题:一是导频信号的位置安排即导频图样的选择;二是如何根据接收信号做出准确的导频信道估计,而且信道估计算法复杂度低;三是如何利用估计出的导频信道信息,经过合适的内插算法,得到数据信道的信道估计。导频图样的选择即是对导频插入方式的选择。在设计OFDM系统的导频图样时,既要让导频间隔尽量小,以保证对信道的时变性和频率选择性能够很好的跟踪,同时也要让系统不能因为过多的导频插入而造成很大的开销。所以在实际系统的设计时,就应权衡各方面问题以求达到最合适的要求。

3.2 基于导频辅助的信道估计方法
信道估计的方法会有所不同,但可采用的数学最优化准则是相同的,常用的
有最小平方 (Least sq加粗样式uare,Ls)估计准则和最小均方误差 (Minimum Mean Squared Error, MMSE)估计准则,LS准则的计算最简单,而MMSE准则的性能最好。

3.2.1 基于LS准则的信道估计算法
最小平方(LS)信道估计[17]就是从最小平方的意义上得到的信道估计算法。在不考虑噪声的条件下,估计信道的冲激响应向量:,, 使测量值和模型值之间的加权误差最小[18] 。

3.2.2 基于MMSE准则的信道估计
最小均方误差MMSE(Minimum Mean-square-Error)估计对于基于导频的OFDM系统信道估计,MMSE估计[19]比LS估计更优。

3.2.3 基于LMMSE准则的信道估计
有一种减少计算量的方法[20], 即为LMMSE算法,就是用来代替,,这样的逆不用重新计算的逆不用重新计算,在各个子信道的调制方式相同(采用相同的码元映像方式),并且数据符号在星座图上的各点出现的概率相同时,

3.2.4 基于SVD分解的信道估计
前面得到了全阶MMSE估计算法,但是矩阵的运算量仍然很大,由于信道频响的频谱能量主要集中在低频部分,即主要集中在前面P阶,这里的P的选取要略大于信道最大多径时延对应的样值间隔数,因此提出了奇异值分解 (singular Value Decomposition,SVD)算法。[21]

⛄二、部分源代码

%Ofdm系統仿真程序 (非)多径情况下BPSK,4QAM和16QAM调制方式的比较
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% BPSK调制方式下
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
close all;
%定義
pilot_inter=5;%导頻間隔
pilot_symbol_bit=1;%导頻符號
carrier_count=256;%子載波數
%bits_per_symbol_16QAM=4;%采用該調制时一符號占位數(BPSK不用)
cp_length=16;%cp長度
SNR_dB=[0 2 4 6 8 10 12 14 16];
ls_err_ber=zeros(1,length(SNR_dB));
for i=1:length(SNR_dB) %每个SNR点上仿真若干次
ls_error_bit=0;
total_bit_num=0;
symbols_per_carrier=504;
loop=5;
%for l=1:loop
baseband_out_num=carrier_count
symbols_per_carrier;
baseband_out=round(rand(1, baseband_out_num));
for k=1:baseband_out_num
if baseband_out(k)>=0.5
baseband_out(k)=1;
else
baseband_out(k)=-1;
end
end
%二进制数据映射为2进制数
convert_matrix=reshape(baseband_out, carrier_count,symbols_per_carrier);
total_bit_num=baseband_out_num;
%影射
%map_out=map_16_QAM(convert_matrix);
map_out=convert_matrix;
%插入导頻
[insert_pilot_out,pilot_num,pilot_code]=insert_pilot(pilot_inter,pilot_symbol_bit,map_out);
%FFT變換
ofdm_mode_out=ifft(insert_pilot_out,128);
%插入循环前缀
ofdm_cp_out=insert_cp(ofdm_mode_out,cp_length);
[ofdm_cp_out_m,ofdm_cp_out_n]=size(ofdm_cp_out);
%送出(考慮和多徑合在一起)
ofdm_modulation=reshape(ofdm_cp_out,1,ofdm_cp_out_mofdm_cp_out_n);
Tx_data=ofdm_modulation;
%静态信道(多径)
multipath_signal=ofdm_cp_out;
%multipath_signal=multi_chan(Tx_data,ofdm_cp_out_m,ofdm_cp_out_n);%若测定多徑信道下则情況则解除本行头的"%"號
passchan_ofdm_symbol=reshape(multipath_signal,ofdm_cp_out_m,ofdm_cp_out_n);
%加噪聲
snr=10^(SNR_dB(i)/10);
[nnl1,mml1]=size(passchan_ofdm_symbol);
spow=0;
for k=1:nnl1
for b=1:mml1
spow=spow+real(passchan_ofdm_symbol(k,b))2+imag(passchan_ofdm_symbol(k,b))2;
end
end
spow1=spow/(nnl1
mml1);
sgma=sqrt(spow1/(2snr));%sgma如何计算,与当前SNR和信号平均能量有关系
receive_ofdm_symbol=add_noise(sgma,passchan_ofdm_symbol);%加入随机高斯白噪声,receive_ofdm_symbol为最终接收机收到的ofdm符号块
%去循環前綴
cut_cp_symbol=del_cp(receive_ofdm_symbol,cp_length);
%FFT
ofdm_demodulation_out=fft(cut_cp_symbol,128);%作128点FFT运算,完成ofdm解调
%估計
%
********************* 以下就是对接收ofdm信号进行信道估计和信号检测的过程************************
ls_zf_detect_sig=ls_estimation(ofdm_demodulation_out,pilot_inter,pilot_code,pilot_num);%采用LS估计算法测得到的接收信号
%解映射
ls_receive_bit_sig=de_map1(ls_zf_detect_sig);%BPSK解映射
%以下过程统计各种估计算法得到的接收信号中的错误比特数
ls_err_num=error_count(convert_matrix,ls_receive_bit_sig);
ls_error_bit=ls_error_bit+ls_err_num;
%end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]王跃.OFDM系统信道估计算法研究[J].中国科技论文在线). 2017,33(16)
[2]周晓,杨昉,宋健.TDS-OFDM 系统的功率调整技术研究[J].宽带网络

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

1.1 PID优化
1.2 VMD优化
1.3 配电网重构
1.4 三维装箱
1.5 微电网优化
1.6 优化布局
1.7 优化参数
1.8 优化成本
1.9 优化充电
1.10 优化调度
1.11 优化电价
1.12 优化发车
1.13 优化分配
1.14 优化覆盖
1.15 优化控制
1.16 优化库存
1.17 优化路由
1.18 优化设计
1.19 优化位置
1.20 优化吸波
1.21 优化选址
1.22 优化运行
1.23 优化指派
1.24 优化组合
1.25 车间调度
1.26 生产调度
1.27 经济调度
1.28 装配线调度
1.29 水库调度
1.30 货位优化
1.31 公交排班优化
1.32 集装箱船配载优化
1.33 水泵组合优化
1.34 医疗资源分配优化
1.35 可视域基站和无人机选址优化

2 机器学习和深度学习分类与预测
2.1 机器学习和深度学习分类
2.1.1 BiLSTM双向长短时记忆神经网络分类
2.1.2 BP神经网络分类
2.1.3 CNN卷积神经网络分类
2.1.4 DBN深度置信网络分类
2.1.5 DELM深度学习极限学习机分类
2.1.6 ELMAN递归神经网络分类
2.1.7 ELM极限学习机分类
2.1.8 GRNN广义回归神经网络分类
2.1.9 GRU门控循环单元分类
2.1.10 KELM混合核极限学习机分类
2.1.11 KNN分类
2.1.12 LSSVM最小二乘法支持向量机分类
2.1.13 LSTM长短时记忆网络分类
2.1.14 MLP全连接神经网络分类
2.1.15 PNN概率神经网络分类
2.1.16 RELM鲁棒极限学习机分类
2.1.17 RF随机森林分类
2.1.18 SCN随机配置网络模型分类
2.1.19 SVM支持向量机分类
2.1.20 XGBOOST分类

2.2 机器学习和深度学习预测
2.2.1 ANFIS自适应模糊神经网络预测
2.2.2 ANN人工神经网络预测
2.2.3 ARMA自回归滑动平均模型预测
2.2.4 BF粒子滤波预测
2.2.5 BiLSTM双向长短时记忆神经网络预测
2.2.6 BLS宽度学习神经网络预测
2.2.7 BP神经网络预测
2.2.8 CNN卷积神经网络预测
2.2.9 DBN深度置信网络预测
2.2.10 DELM深度学习极限学习机预测
2.2.11 DKELM回归预测
2.2.12 ELMAN递归神经网络预测
2.2.13 ELM极限学习机预测
2.2.14 ESN回声状态网络预测
2.2.15 FNN前馈神经网络预测
2.2.16 GMDN预测
2.2.17 GMM高斯混合模型预测
2.2.18 GRNN广义回归神经网络预测
2.2.19 GRU门控循环单元预测
2.2.20 KELM混合核极限学习机预测
2.2.21 LMS最小均方算法预测
2.2.22 LSSVM最小二乘法支持向量机预测
2.2.23 LSTM长短时记忆网络预测
2.2.24 RBF径向基函数神经网络预测
2.2.25 RELM鲁棒极限学习机预测
2.2.26 RF随机森林预测
2.2.27 RNN循环神经网络预测
2.2.28 RVM相关向量机预测
2.2.29 SVM支持向量机预测
2.2.30 TCN时间卷积神经网络预测
2.2.31 XGBoost回归预测
2.2.32 模糊预测
2.2.33 奇异谱分析方法SSA时间序列预测

2.3 机器学习和深度学习实际应用预测
CPI指数预测、PM2.5浓度预测、SOC预测、财务预警预测、产量预测、车位预测、虫情预测、带钢厚度预测、电池健康状态预测、电力负荷预测、房价预测、腐蚀率预测、故障诊断预测、光伏功率预测、轨迹预测、航空发动机寿命预测、汇率预测、混凝土强度预测、加热炉炉温预测、价格预测、交通流预测、居民消费指数预测、空气质量预测、粮食温度预测、气温预测、清水值预测、失业率预测、用电量预测、运输量预测、制造业采购经理指数预测

3 图像处理方面
3.1 图像边缘检测
3.2 图像处理
3.3 图像分割
3.4 图像分类
3.5 图像跟踪
3.6 图像加密解密
3.7 图像检索
3.8 图像配准
3.9 图像拼接
3.10 图像评价
3.11 图像去噪
3.12 图像融合
3.13 图像识别
3.13.1 表盘识别
3.13.2 车道线识别
3.13.3 车辆计数
3.13.4 车辆识别
3.13.5 车牌识别
3.13.6 车位识别
3.13.7 尺寸检测
3.13.8 答题卡识别
3.13.9 电器识别
3.13.10 跌倒检测
3.13.11 动物识别
3.13.12 二维码识别
3.13.13 发票识别
3.13.14 服装识别
3.13.15 汉字识别
3.13.16 红绿灯识别
3.13.17 虹膜识别
3.13.18 火灾检测
3.13.19 疾病分类
3.13.20 交通标志识别
3.13.21 卡号识别
3.13.22 口罩识别
3.13.23 裂缝识别
3.13.24 目标跟踪
3.13.25 疲劳检测
3.13.26 旗帜识别
3.13.27 青草识别
3.13.28 人脸识别
3.13.29 人民币识别
3.13.30 身份证识别
3.13.31 手势识别
3.13.32 数字字母识别
3.13.33 手掌识别
3.13.34 树叶识别
3.13.35 水果识别
3.13.36 条形码识别
3.13.37 温度检测
3.13.38 瑕疵检测
3.13.39 芯片检测
3.13.40 行为识别
3.13.41 验证码识别
3.13.42 药材识别
3.13.43 硬币识别
3.13.44 邮政编码识别
3.13.45 纸牌识别
3.13.46 指纹识别

3.14 图像修复
3.15 图像压缩
3.16 图像隐写
3.17 图像增强
3.18 图像重建

4 路径规划方面
4.1 旅行商问题(TSP)
4.1.1 单旅行商问题(TSP)
4.1.2 多旅行商问题(MTSP)
4.2 车辆路径问题(VRP)
4.2.1 车辆路径问题(VRP)
4.2.2 带容量的车辆路径问题(CVRP)
4.2.3 带容量+时间窗+距离车辆路径问题(DCTWVRP)
4.2.4 带容量+距离车辆路径问题(DCVRP)
4.2.5 带距离的车辆路径问题(DVRP)
4.2.6 带充电站+时间窗车辆路径问题(ETWVRP)
4.2.3 带多种容量的车辆路径问题(MCVRP)
4.2.4 带距离的多车辆路径问题(MDVRP)
4.2.5 同时取送货的车辆路径问题(SDVRP)
4.2.6 带时间窗+容量的车辆路径问题(TWCVRP)
4.2.6 带时间窗的车辆路径问题(TWVRP)
4.3 多式联运运输问题

4.4 机器人路径规划
4.4.1 避障路径规划
4.4.2 迷宫路径规划
4.4.3 栅格地图路径规划

4.5 配送路径规划
4.5.1 冷链配送路径规划
4.5.2 外卖配送路径规划
4.5.3 口罩配送路径规划
4.5.4 药品配送路径规划
4.5.5 含充电站配送路径规划
4.5.6 连锁超市配送路径规划
4.5.7 车辆协同无人机配送路径规划

4.6 无人机路径规划
4.6.1 飞行器仿真
4.6.2 无人机飞行作业
4.6.3 无人机轨迹跟踪
4.6.4 无人机集群仿真
4.6.5 无人机三维路径规划
4.6.6 无人机编队
4.6.7 无人机协同任务
4.6.8 无人机任务分配

5 语音处理
5.1 语音情感识别
5.2 声源定位
5.3 特征提取
5.4 语音编码
5.5 语音处理
5.6 语音分离
5.7 语音分析
5.8 语音合成
5.9 语音加密
5.10 语音去噪
5.11 语音识别
5.12 语音压缩
5.13 语音隐藏

6 元胞自动机方面
6.1 元胞自动机病毒仿真
6.2 元胞自动机城市规划
6.3 元胞自动机交通流
6.4 元胞自动机气体
6.5 元胞自动机人员疏散
6.6 元胞自动机森林火灾
6.7 元胞自动机生命游戏

7 信号处理方面
7.1 故障信号诊断分析
7.1.1 齿轮损伤识别
7.1.2 异步电机转子断条故障诊断
7.1.3 滚动体内外圈故障诊断分析
7.1.4 电机故障诊断分析
7.1.5 轴承故障诊断分析
7.1.6 齿轮箱故障诊断分析
7.1.7 三相逆变器故障诊断分析
7.1.8 柴油机故障诊断

7.2 雷达通信
7.2.1 FMCW仿真
7.2.2 GPS抗干扰
7.2.3 雷达LFM
7.2.4 雷达MIMO
7.2.5 雷达测角
7.2.6 雷达成像
7.2.7 雷达定位
7.2.8 雷达回波
7.2.9 雷达检测
7.2.10 雷达数字信号处理
7.2.11 雷达通信
7.2.12 雷达相控阵
7.2.13 雷达信号分析
7.2.14 雷达预警
7.2.15 雷达脉冲压缩
7.2.16 天线方向图
7.2.17 雷达杂波仿真

7.3 生物电信号
7.3.1 肌电信号EMG
7.3.2 脑电信号EEG
7.3.3 心电信号ECG
7.3.4 心脏仿真

7.4 通信系统
7.4.1 DOA估计
7.4.2 LEACH协议
7.4.3 编码译码
7.4.4 变分模态分解
7.4.5 超宽带仿真
7.4.6 多径衰落仿真
7.4.7 蜂窝网络
7.4.8 管道泄漏
7.4.9 经验模态分解
7.4.10 滤波器设计
7.4.11 模拟信号传输
7.4.12 模拟信号调制
7.4.13 数字基带信号
7.4.14 数字信道
7.4.15 数字信号处理
7.4.16 数字信号传输
7.4.17 数字信号去噪
7.4.18 水声通信
7.4.19 通信仿真
7.4.20 无线传输
7.4.21 误码率仿真
7.4.22 现代通信
7.4.23 信道估计
7.4.24 信号检测
7.4.25 信号融合
7.4.26 信号识别
7.4.27 压缩感知
7.4.28 噪声仿真
7.4.29 噪声干扰

7.5 无人机通信

7.6 无线传感器定位及布局方面
7.6.1 WSN定位
7.6.2 高度预估
7.6.3 滤波跟踪
7.6.4 目标定位
7.6.4.1 Dv-Hop定位
7.6.4.2 RSSI定位
7.6.4.3 智能算法优化定位
7.6.5 组合导航

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

  • 32
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是基于LSMMSE算法实现OFDM系统信道估计MATLAB代码: ```matlab % OFDM信道估计 % 基于LSMMSE算法 clc; clear all; close all; %% 定义系统参数 N = 64; % FFT大小 cp_len = 16; % 循环前缀长度 fs = 16000; % 采样率 Ts = 1/fs; % 采样时间 fc = 2000; % 载波频率 T = 1/fc; % 周 fd = 100; % 多径延迟 K = 10; % 多径个数 SNR_dB = 30; % 信噪比 SNR = 10^(SNR_dB/10); % 信噪比(线性值) P = 1; % 发送功率 L = 10^4; % 发送数据长度 alpha = randn(1,K); % 多径衰落系数 tau = (0:K-1)*T; % 多径时延 h = zeros(1,N+K-1); % 多径信道冲激响应 %% 生成发送数据 x = randi([0,1],1,N*L); % 生成随机发送数据 X = reshape(x,N,L).'; % 分组 X_QPSK = 1/sqrt(2)*(2*X(:,1:2:end)-1+1i*(2*X(:,2:2:end)-1)); % QPSK调制 %% 信道模型 for k = 1:K h(k) = alpha(k)*exp(1i*2*pi*fc*tau(k)); % 多径信道冲激响应 end H = fft(h,N); % 多径信道频率响应 %% 发送和接收 y = zeros(L,N); % 接收信号 for l = 1:L % 发送信号加循环前缀 x_cp = [X_QPSK(l,N-cp_len+1:N),X_QPSK(l,:)]; % 通过多径信道 y_cp = conv(x_cp,h); % 加噪声 sigma2 = P/SNR/N; % 噪声方差 noise = sqrt(sigma2/2)*(randn(1,N+K-1)+1i*randn(1,N+K-1)); % 高斯白噪声 y_n = y_cp+noise; % 接收信号 % 去掉循环前缀并进行FFT y_fft = fft(y_n(K+1:N+K),N); y(l,:) = y_fft; end %% 信道估计 H_LS = zeros(L,N); % LS估计的多径信道频率响应 H_MMSE = zeros(L,N); % MMSE估计的多径信道频率响应 for l = 1:L % 发送信号加循环前缀 x_cp = [X_QPSK(l,N-cp_len+1:N),X_QPSK(l,:)]; % 通过多径信道 y_cp = conv(x_cp,h); % 加噪声 sigma2 = P/SNR/N; % 噪声方差 noise = sqrt(sigma2/2)*(randn(1,N+K-1)+1i*randn(1,N+K-1)); % 高斯白噪声 y_n = y_cp+noise; % 接收信号 % 去掉循环前缀并进行FFT y_fft = fft(y_n(K+1:N+K),N); % LS算法 H_LS(l,:) = y_fft./X_QPSK(l,:); % MMSE算法 H_MMSE(l,:) = conj(H)./(abs(H).^2+sigma2/P).*y_fft./X_QPSK(l,:); end %% 画图 % 信道频率响应 figure; subplot(2,1,1); plot((0:N-1)/N*fs/1000,20*log10(abs(H))); xlabel('频率/kHz'); ylabel('幅度/dB'); title('多径信道频率响应'); subplot(2,1,2); plot((0:N-1)/N*fs/1000,angle(H)/pi*180); xlabel('频率/kHz'); ylabel('相位/度'); title('多径信道频率响应'); % LS估计的信道频率响应 figure; subplot(2,1,1); plot((0:N-1)/N*fs/1000,20*log10(abs(H_LS))); xlabel('频率/kHz'); ylabel('幅度/dB'); title('LS估计的多径信道频率响应'); subplot(2,1,2); plot((0:N-1)/N*fs/1000,angle(H_LS)/pi*180); xlabel('频率/kHz'); ylabel('相位/度'); title('LS估计的多径信道频率响应'); % MMSE估计的信道频率响应 figure; subplot(2,1,1); plot((0:N-1)/N*fs/1000,20*log10(abs(H_MMSE))); xlabel('频率/kHz'); ylabel('幅度/dB'); title('MMSE估计的多径信道频率响应'); subplot(2,1,2); plot((0:N-1)/N*fs/1000,angle(H_MMSE)/pi*180); xlabel('频率/kHz'); ylabel('相位/度'); title('MMSE估计的多径信道频率响应'); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值