rayleighchan实现瑞利多径衰落信道

1.命令格式: 
chan = rayleighchan(ts,fd,tau,pdb) 
其中: 
ts—为输入信号的采样周期, 
fd—就是Doppler频偏,以Hz为单位,与速率的换算关系为v×fc/c,fc是载频 
tau—输入的信道参数,一个向量,包含了各径的延时,以s为单位 
pdb—输入的信道参数,一个向量,包含了各径的功率(当然是均值啦,实际产生的能量都是以此为均值的随机量),以dB为单位。 
然后y = filter(chan,x),即可将信道的影响加在输入的数据x上。

2.原理: 
rayleighchan函数生成信道的过程实际是设计一个多抽头的滤波器,而滤波器的系数计算是多个sinc函数加权、延时后的求和: 
g(n)=\sum_k{ sinc( tau(k)/Ts-n) h(k) },-N1<=n<=N2 
其中N1和N2的选取要使得在-N1<=n<=N2之外的g(n)很小可忽略。

rayleighchan函数的实现步骤是这样的: 
1) h(k)看作是一串冲激函数,与sinc函数卷积,sinc函数的边瓣周期由输入参数采样时间Ts决定,如果看连续时间波形的话,整个信道响应就是多个不同时延、不同幅度的sinc函数的叠加; 
2) 对这个连续的信道响应进行采样得到信道滤波器的抽头系数,采样间隔为Ts,而采样点的个数是要保证舍弃位置的信道响应足够小可以忽略,如果采样率过小则Ts较大sinc函数衰减慢,需要保存较多个抽头系数,此时很可能在第一径位置之前出现若干个信道采样点,即h(n)~=0, n<0; 
3)输入信号(以Ts为间隔的采样点)与滤波器进行卷积输出(filter函数的作用)。

 注:输入信号和多径衰落信道的采样间隔必须相同。

3.补充:

          sinc函数定义:sinc(x)=sin(x)/x

4.举例:

程序:

clear all
close all
clc
%-----------------------------升余弦滤波器
Fs=9600;            %采样频率
Ts=1/Fs;            %采样间隔 Fd=960; %Doppler频偏,以Hz为单位 tau=[0,0.002]; %多径延时,以s为单位 pdf=[0,0]; %各径功率,以dB位单位 h=rayleighchan(Ts,Fd,tau,pdf); %-------------------------------通过信道 data1=[1,zeros(1,100)];%数据1 fc=96; t=0:1/Fs:999*(1/Fs); data2=cos(2*pi*fc*t); %数据2 data2_fft=fft(data2,100); data2_abs=abs(data2_fft); y1=filter(h,data1); y11=abs(y1); y2=filter(h,data2); y22=fft(y2,100); y222=abs(y22); subplot(2,2,1); x1=1:length(data1); h1=stem(x1,data1); set(h1,'MarkerFaceColor','red') subplot(2,2,3); x3=1:length(y11); h3=stem(x3,y11); set(h3,'MarkerFaceColor','red') subplot(2,2,2); x2=1:length(data2_abs); h2=stem(x2,data2_abs); set(h2,'MarkerFaceColor','blue') subplot(2,2,4); x4=1:length(y222); h4=stem(x4,y222); set(h4,'MarkerFaceColor','blue')

分析: 
1.tau延时向量,时域上的参数,时域采样后延迟的点数为fix(tau/Ts). 
2.Fd:多普勒频偏,频域上的参数,可以看到信号频域发生偏移,但是并不是简单的频率搬移,而是信号频率发生扩展,原来是单频信号,变为频率段信号。


经过数值的设定可以看到,在command history框下输入chan得到:

chan的writeable properties

1) 如何设定chan所需的各径的多普勒谱? 
多普勒谱的种类一共有7种: 
doppler.ajakes;doppler.bigaussian;doppler.jakes;doppler.rjakes;doppler.flat;doppler.gaussian和doppler.rounded。 
      在rayleighchan函数中默认的是Jakes谱,即doppler.jakes。修改多普勒谱的方法是直接对chan.DopplerSpectrum进行设置。

这里默认了各径都是按照gaussian谱来生成的,如果需要各径的Doppler谱不同则可以通过设置 ,即可得到对应于PathDelays的各径DopplerSpectrum。

2) InputSamplePeriod 
直接设置即可,无线信道传输的基带信号的符号周期

3) PathDelays 
每条径的延时,单位是seconds

4) MaxDopplerShift 
最大多普勒频移:对于rayleighchan函数的使用方法研究

5) AvgPathGaindB 
每条路径增益的平均功率,单位是分贝。

6) StoreHistory 
将chan.StoreHistory设置为1时,可以把信道的信息记录下来,并可以通过Plot(chan)画出当前的信道的时域IR,频域相应等各种图。

7) NormalizePathGains 
将chan.NormalizePathGains设置为1时,每条路径增益绝对值的平方和(即功率和)的平均值为1。这个可以通过多次使用rayleighchan生成信道,求取信道各路径增益绝对值的平方和即可看到其平均值为1。

8) StorePathGains 
将chan.StorePathGains设置为1时,各路径的增益将会被记录下来,但是不能使用Plot(chan)画图。

  • 在这里额外说一点,信道的StorePathGains设为1时,查看chan.PathGains可以发现这个值是一个N×M的矩阵,在这里N是信道处理的数据长(也就是输入信号的长度),M是多径数。这里的chan.PathGains每列是线性变化的,原因是在处理每个数据时信道由于受到多普勒谱的影响是时变的,但信道的状态是连续的。

9) ResetBeforeFiltering 
将chan.ResetBeforeFiltering在使用filter函数前设置为0时,可以看到信道各路径的斜率会是一个值,也就是无论处理多少数据信道的实际状态都是连续的,无论其他的条件(比如噪声和输入信号)发生怎样的变化,信道的状态是连续的,但不是说信道的增益值是恒定的数值,只是信道增益的实际值线性增长的,信道的状态时连续的。(每次使用filter函数一次,信道增益的实际数值都是会发生变化的。)只要信道的状态不变就相当于信道没有发生质的变化,在仿真时我们可以认为使用的是同一个信道。

如果设置为1,则是说明每次生成的信道增益的状态是不连续的,也就是信道发生了变化,我认为这在仿真时可以控制信道变化的快慢。

chan2的read-only properties

1) ChannelType 
这个就没什么好说了,只是说明使用函数生成的信道是瑞利的还是莱斯的。

2) PathGains 
信道各路径的真实增益,这个增益不是通过AvgPathGaindB换算过来的,AvgPathGaindB是平均增益,所以生成的各路径增益的功率值是围绕这个值生成的。

3) ChannelFilterDelay 
这个值没有什么好说的,原因是这个值没有什么用,它一般是和信道的PathDelays的第一个值是对应的。

4) NumSamplesProcessed 
这个值是说信道处理了多少个数据,如果输入信号矢量的长度是N,则这个值就是N。

文章转自于: 
http://blog.sina.com.cn/s/blog_ab9e9fc30101ejf5.html 
http://blog.sina.com.cn/s/blog_8d3179bd01015jm8.html

http://blog.csdn.net/shenjun1992722/article/details/50193381

转载于:https://www.cnblogs.com/xh0102/p/6382598.html

rayleighchan实现瑞利多径衰落信相关推荐

  1. 【通信】多径衰落信道的matlab仿真

    1 简介 2 部分代码 clearf_c=1e3; %carrier frequency(no modulation)time_1 = (linspace (0, 10, 1000)); %times ...

  2. matlab平坦衰落,平坦衰落信道的MATLAB仿真

    平坦衰落信道的MATLAB仿真 平坦衰落信道的MATLAB仿真 仿真代码如下 function [h]= Rayleigh_singlePath(fd,t) %产生瑞利衰落信道 fc=900*10^6 ...

  3. 用于长延迟多径衰落环境下的强化UF-OFDM

    增强的UF-OFDM 用于长延迟多径衰落环境 Hiroto Kuriki,Keiichi Mizutani,Takeshi Matsumura和Hiroshi Harada 京都大学信息学研究科,日本 ...

  4. 宽带码分多址系统中多径衰落与多址干扰的影响

    原作:Md. Anwar Hossain, Mohammed Tarique. Effect of multipath fading and multiple access interference ...

  5. 多径衰落详解(整理)(一)

    时变.多径是无线信道的特点,相信很多人在看了很多书之后,对无线信道感觉还是一头雾水.为什么多径导致频率选择性?为什么多普勒频移反映了信道的时变性?对这些问题感觉困惑的肯定大有人在.下面我们就用一个简单 ...

  6. Rayleigh瑞利多径信道matlab模拟和仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 瑞利衰落信道(Rayleigh fading channel)是一种无线电信号传播环境的统计模型.这种模型假设信号通过无线信道 ...

  7. MIMO-OFDM无线通信技术及MATLAB实现(4)OFDM概述

    目录 单载波传输与多载波传输 单载波传输 单载波基带传输:系统模型 ISI和奈奎斯特准则 对高速率单载波传输的限制 多载波传输 多载波传输方案的基本结构 OFDM传输方案 FMT传输方案 单载波传输与 ...

  8. 近期遇到的一些信号处理的问题,做一下总结

    近期遇到的一些信号处理的问题,做一下总结 1. 如何从频谱分析仪中得到的txt文件中,提取出对应的复信号? 频谱仪对应将信号分两路存储,I路信号和Q路信号,其存放规律是I路和Q路交替存储 提取的MAT ...

  9. 【论文翻译】5G的非正交多址接入:解决方案,挑战,机遇和未来研究趋势

    Non-Orthogonal Multiple Access for 5G: Solutions, Challenges, Opportunities, and Future Resea5G的非正交多 ...

最新文章

  1. Bug改到怀疑人生…… | 每日趣闻
  2. Python和单元测试那些事儿
  3. HttpURLConnection 发送http请求帮助类
  4. C# 模拟 鼠标 键盘操作
  5. php 简易 blog,PHP实现简易blog的制作
  6. 用C语言实现解析简单配置文件的小工具
  7. linux实现自己的write函数,Linux 内核源码阅读 - write 系统调用的实现
  8. 6-6 归并排序(递归法) (10分)
  9. 男人要懂得赞美女人,女人要懂得鼓励男人
  10. 聚簇索引和非聚簇索引的区别_学习索引的一些总结
  11. 我竟然用git send-mail通过QQ邮箱提交了push request
  12. matlab能打开mdl文件吗,simulink打开mdl文件的问题
  13. 腾讯产品策划类笔试题
  14. URI和URL的概念和区别
  15. 开源共轴双桨无人机 Tdrone 软硬件全部在 GitHub 开源
  16. iphone4S 怎么激活?
  17. [codeforces 1379B] Dubious Cyrpto 公式推导
  18. anchor-free方法总结
  19. HTML5新特性history
  20. 洛谷-P1314-聪明的质检员

热门文章

  1. Win10安装程序提示“不能打开要写入的文件xxxxx”如何解决
  2. pdf怎么编辑连续页码
  3. ASP.NET网站开发——LINQ TO SQL 查询数据库数据(八大子句)
  4. 致铭主板好礼等着您拿
  5. c++项目,制作GIF动态图
  6. CSS实现核辐射警告标志
  7. iPhone的解锁、越狱、激活、固件等等是什么意思_有什么分别
  8. Saas发展史常用架构
  9. 升级打怪小游戏(面向对象)
  10. 慧编程python硬件_慧编程 mBlock 在编程学习中有哪些好用的技巧,积木或扩展,让你感觉相见恨晚?...