本帖最后由 MATLAB白白朵 于 2018-4-25 15:21 编辑

问题1:现在已经有了多径信道的代码如下,但是我加进我的程序中仿真出来的结果误差很大,不知道是什么原因?(仿真结果在代码下方)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function h = multipath(mp_mode, unit_delay, dbg)

if or(mp_mode>19,mp_mode<1) h=1; return; end

%--------%multipath channel model

%Medium-Echo Static (1--6),

%Violence-Echo Static (7--10)

path_scale(1:19,1:6)=0; %in db

path_delay(1:19,1:6)=0; %in us

path_scale(1,1:6)=[  -20    0  -20  -10  -14  -18];

path_delay(1,1:6)=[ -1.8    0 0.15  1.8  5.7   18]+1.8;

path_scale(2,1:6)=[  -18    0  -20  -20  -10  -14];

path_delay(2,1:6)=[ -1.8    0 0.15  1.8  5.7   30]+1.8;

path_scale(3,1:6)=[  -20    0  -14  -10  -20  -18];

path_delay(3,1:6)=[ -1.8    0 0.15  1.8  5.7   18]+1.8;

path_scale(4,1:6)=[    0  -10  -14  -18  -20  -20];

path_delay(4,1:6)=[    0  0.2  1.9  3.9  8.2   15];

path_scale(5,1:6)=[  -19    0  -22  -17  -22  -19];

path_delay(5,1:6)=[ -0.2    0 0.08 0.15  0.3  0.6]+0.2;

path_scale(6,1:6)=[  -10  -20    0  -20  -10  -14];

path_delay(6,1:6)=[  -18 -1.8    0 0.15  1.8  5.7]+18;

path_scale(7,1:6)=[  -20    0  -20  -10    0  -18];

path_delay(7,1:6)=[ -1.8    0 0.15  1.8  5.7   18]+1.8;

path_scale(8,1:6)=[  -18    0  -20  -20  -10    0];

path_delay(8,1:6)=[ -1.8    0 0.15  1.8  5.7   30]+1.8;

path_scale(9,1:6)=[ -5.1    0 -3.9 -3.8 -2.5 -1.3];

path_delay(9,1:6)=[ 0.07 0.52 0.60 0.85 2.75 3.23]-0.07;

path_scale(10,1:6)=[    0 -0.5 -4.3 -4.4 -3.0 -1.8];

path_delay(10,1:6)=[ 0.43 0.52 0.85 1.37 2.75 3.23]-0.43;

path_scale(11,1:6)=[ 0 -13.8 -16.2 -14.9 -13.6 -16.4];

path_delay(11,1:6)=[ 0  0.15  2.22  3.05  5.86  5.93];

path_scale(18,1:6)=[  0.0 -1.0  -9.0  -10.0 -15.0 -20];   %ITU-R Vehicular A

path_delay(18,1:6)=[  0.0 0.31  0.71  1.09  1.73  2.51];

path_scale(19,1:6)=[-2.5   0.0 -12.8 -10.0 -25.2 -16.0];  % ITU-R Vehicular B

path_delay(19,1:6)=[ 0.0  0.30  8.90 12.90 17.10 20.00];

%attenuation, delay (in us) and phase (in rad) values

x=[...

1 0.057662 1.003019 4.855121;

2 0.176809 5.422091 3.419109;

3 0.407163 0.518650 5.864470;

4 0.303585 2.751772 2.215894;

5 0.258782 0.602895 3.758058;

6 0.061831 1.016585 5.430202;

7 0.150340 0.143556 3.952093;

8 0.051534 0.153832 1.093586;

9 0.185074 3.324866 5.775198;

10 0.400967 1.935570 0.154459;

11 0.295723 0.429948 5.928383;

12 0.350825 3.228872 3.053023;

13 0.262909 0.848831 0.628578;

14 0.225894 0.073883 2.128544;

15 0.170996 0.203952 1.099463;

16 0.149723 0.194207 3.462951;

17 0.240140 0.924450 3.664773;

18 0.116587 1.381320 2.833799;

19 0.221155 0.640512 3.334290;

20 0.259730 1.368671 0.393889];

%--------%get the transfer function of multipath channel

%system impulse response for ideal low pass filter is sin(pi*t/Ts)/(pi*t/Ts)=sinc(t/Ts)

M=1; %upsampling parameter

unit=unit_delay/M;

if (mp_mode==16 || mp_mode==17)

scale_temp=x(:,2)'.*exp(-j*x(:,4)'); %rou=rou/norm(rou);

delay_temp=x(:,3)';

else

delay_temp=path_delay(mp_mode,:);

scale_temp=path_scale(mp_mode,:); scale_temp=10.^(scale_temp/20);

end

if (mp_mode==17) %dvb-t rician channel

%rou(0)^2=sum(rou(i)^2)*10 (K=10 for rician factor)

scale_temp=[scale_temp sqrt(10)*norm(scale)];

delay_temp=[delay_temp 0];

end

%--------%get the transfer function of multipath channel

h_len=round(max(delay_temp)/unit)+1;

h=zeros(1,h_len+M*6);

for i1=1:length(delay_temp)

delay = round(delay_temp(i1)/unit) + 1;

h(delay+3*M) = h(delay+3*M) + scale_temp(i1); %multi-path may overlap at given sampling rate

end;

h=resample(h,1,M); h=h/norm(h(4:end));

if (dbg)

figure;

subplot(2,1,1); plot(real(h),'b.-');

subplot(2,1,2); plot(abs(fft([h zeros(1,1024-length(h))])),'b.-');

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

仿真结果如图:

微信截图_20180425151726.png (9.24 KB, 下载次数: 0)

添加多径信道仿真结果

2018-4-25 15:17 上传

问题2:

在网上找到一个瑞利衰落信道的代码请问是可以用的吗?代码如下:

%衰落信道参数包括多径扩展和多普勒扩展。时不变的多径扩展相当于一个延时抽头滤波器,而多普勒扩展要注意多普勒功率谱密度,通常使用Jakes功率谱、高斯、均匀功率谱。

%多径衰落信道由单径信道叠加而成,而单径信道中最重要的就是瑞利(Rayleigh)平坦衰落信道。

%下面给出瑞利平坦衰落信道的改进Jakes模型的实现:

function [h]=rayleigh(fd,t)

%改进的jakes模型来产生单径的平坦型瑞利衰落信道

%Yahong R.Zheng and Chengshan Xiao "Improved Models for

%the Generation of Multiple Uncorrelated Rayleigh Fading Waveforms"

%IEEE Commu letters, Vol.6, NO.6, JUNE 2002

%输入变量说明:

%  fd:信道的最大多普勒频移 单位Hz

%  t :信号的抽样时间序列,抽样间隔单位s

%  h为输出的瑞利信道函数,是一个时间函数复序列

%假设的入射波数目

N=40;

wm=2*pi*fd;

%每象限的入射波数目即振荡器数目

N0=N/4;

%信道函数的实部

Tc=zeros(1,length(t));

%信道函数的虚部

Ts=zeros(1,length(t));

%归一化功率系数

P_nor=sqrt(1/N0);

%区别个条路径的均匀分布随机相位

theta=2*pi*rand(1,1)-pi;

for ii=1:N0

%第i条入射波的入射角

alfa(ii)=(2*pi*ii-pi+theta)/N;

%对每个子载波而言在(-pi,pi)之间均匀分布的随机相位

fi_tc=2*pi*rand(1,1)-pi;

fi_ts=2*pi*rand(1,1)-pi;

%计算冲激响应函数

Tc=Tc+cos(cos(alfa(ii))*wm*t+fi_tc);

Ts=Ts+cos(sin(alfa(ii))*wm*t+fi_ts);

end;

%乘归一化功率系数得到传输函数

h=P_nor*(Tc+j*Ts );

%改变fd,可以观察到信号功率随着fd的增大而变化加快。

%还可以使用Matlab内置函数实现:

chan=rayleighchan(ts,fd);

y=filter(chan,x);%过信道

% 此内置函数可以直接生成一个频率选择多径衰落信道,每径为一个瑞利衰落过程。

chan=rayleighchan(ts,fd,tau,pdb);

%tau为每径相对时延向量

%pdb为每径相对增益

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

多谢了!

matlab多径误差包络,MIMO-OFDM系统添加多径信道仿真结果误差很大相关推荐

  1. MIMO OFDM 系统常用信号检测算法

    ​ 新年都未有芳华, 二月初惊见草芽. 白雪却嫌春色晚, 故穿庭树作飞花. --韩愈 1. 前言 MIMO的空分复用技术可以使得系统在系统带宽和发射带宽不变的情况下容易地获得空间分集增益和信道的容量增 ...

  2. 粗同步 符号同步 matlab,OFDM系统在衰落信道中帧同步算法研究(毕业论文)

    <OFDM系统在衰落信道中帧同步算法研究(毕业论文)>由会员分享,可在线阅读,更多相关<OFDM系统在衰落信道中帧同步算法研究(毕业论文)(5页珍藏版)>请在人人文库网上搜索. ...

  3. 基于MATLAB的MIMO系统ZF破零均衡仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 MIMO的空分复用技术可以使得系统在系统带宽和发射带宽不变的情况下容易地获得空间分集增益和信道的容量 ...

  4. 基于MATLAB的OFDM系统实现

    基于MATLAB的OFDM系统实现 OFDM(正交频分复用)的基本原理是将高速的数据流通过串并转换分解成若干低速的数据流,利用多个正交的子载波并行传输.本文借鉴了IEEE802.11a标准并进行简化, ...

  5. ofdm系统matlab仿真论文,基于MATLAB的OFDM仿真(SIMULINK仿真)

    中 文 摘 要 正交频分复用(OFDM)是一种多载波宽带数字调制技术.相比一般的数字通信系统,它具有频带利用率高和抗多径干扰能力强等优点,因而适合于高速率的无线通信系统.正交频分复用 OFDM 是第四 ...

  6. m分集2跳OFDM系统中基于功率分配和子载波配对算法的信道容量matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 随着当代无线通信事业的迅猛发展,无线频谱资源已显得越来越匮乏,传统固定静态的无线频谱分配模式 ...

  7. matlab仿真ofdm的ccdf,OFDM系统峰均比降低算法的研究+Matlab仿真(6)

    OFDM系统峰均比降低算法的研究+Matlab仿真(6) 时间:2016-11-28 22:19来源:毕业论文 2.2.5 自适应技术 自适应调制技术在OFDM系统中也占有非常重要的地位,其调制思想是 ...

  8. 无线通信——基于MATLAB实现OFDM系统(信道估计与均衡)

    基于MATLAB实现OFDM系统基带信号在频率选择性衰落信道条件下的发送与接收 题目及要求: 仿真系统构成:信号输入(为随机比特流).OFDM调制.仿真信道传输.OFDM解调.信号输出(可能存在误码的 ...

  9. 基于PAM调制的OFDM系统架构之讯号特点分析(matlab)

    基于PAM调制的OFDM系统架构之讯号特点分析(matlab) 不同于基于QAM调制的OFDM系统,通过脉冲振幅调制(PAM)并经过埃尔米特对称处理的讯号本身的特性.讯号调制方面,采用PAM调制的讯号 ...

最新文章

  1. 平年闰年c语言源代码,C语言平年闰年问题
  2. 巧用Windows server 2008密码重置盘
  3. Elasticsearch-6.7.0系列(六)ES设置集群密码
  4. 数据库与数据库管理系统的基本概念
  5. Python中的time、datetime、calendar模块(时间模块)
  6. TFS2010配置SQLServer2008R2 tf255049错误
  7. 分屏显示_2021元旦高性价比显示器推荐——便携式显示器选购指南(分屏办公、小尺寸办公必备)...
  8. webpack+Vue2.0项目基础工程文件配置
  9. range与xrange的区别
  10. 线性判别用于提取词向量_各种机器学习算法的应用场景分别是什么(比如朴素贝叶斯、决策树、K 近邻、SVM、逻辑回归最大熵模型)?...
  11. September 2006
  12. linux vim命令翻页,详解Vim编辑器翻页控制命令
  13. JavaScript图片轮播案例
  14. 短文:U盘物理写保护原理
  15. Netty框架之Selector轮询器
  16. 【转】Robot Framework作者建议如何选择自动化测试框架
  17. Java编程验证鬼谷猜想,山河令:阿絮是什么时候知道老温是鬼谷谷主的?老温心里没点数吗?...
  18. 湖北二本计算机大学录取分数线,湖北二本投档分数线
  19. flutter之包管理
  20. 如何在桌面上安装运行Rancher 2.0 1

热门文章

  1. 死锁和活锁有什么区别?
  2. HTMLCollection元素的For循环
  3. 如何编码和解码base64字符串?
  4. 检测到的ASP.NET设置不适用于集成管理管道模式
  5. 在C#中重新抛出异常的正确方法是什么? [重复]
  6. NOIp 图论算法专题总结 (1):最短路、最小生成树、最近公共祖先
  7. 《图像处理实例》之 曲线之间距离求解
  8. android H5支付 网络环境未能通过安全验证,请稍后再试
  9. 关于“大数据”的15条干货思考
  10. mac composer 使用