官方淘宝店 易迪拓培训 旧站入口
首页 > 无线通信 > 通信技术学习讨论 > 复高斯信道该如何生成

复高斯信道该如何生成

12-30
h-CN(0,1/(L(1+d)^a)
其中L=4,a=3,d=1000
生存32*8的复高斯信道

补充下,d是个1*8的向量,d=[494 552 495    486 517 477 531 423]

建议你好好看一看“无线衰落信道”这一章,90%的无线通信的书上都有。
你提的问题,没法回答,信道不是你想象的那样

clc;
clear all;
close all;
K=8;                                    %中继节点数
N=32;                                   %子载波数
t=rand(1,K)2*pi;
r=100*rand(1,K);
x=rcos(t);
y=rsin(t);
plot(x,y,'+');
dr=500;                                %源节点距中继圆心的距离
ds=1000;                               %目的节点距源节点的距离
d1=sqrt((dr+x).^2+y.^2);
d2=sqrt((ds-dr-x).^2+y.^2);
L=4;
alf=3;
sigma1=sqrt(1./(L*(1+d1).^alf));
for m=1:K  
x1=sigma1(1,m)/sqrt(2)(randn(L,1)+1irandn(L,1));
y1=fft(x1,N);
ch1(:,m)=abs(y1);
end
sigma2=sqrt(1./(L*(1+d2).^alf));
for m=1:K
x2=sigma2(1,m)/sqrt(2)(randn(L,1)+1irandn(L,1));
y2=fft(x2,N);
ch2(:,m)=abs(y2);
end
sigma3=sqrt(1./(L*(1+ds).^alf));
x3=sigma3/sqrt(2)(randn(L,1)+1irandn(L,1));
y3=fft(x3,N);
ch3=abs(y2);

我写的程序有不对的地方么?请赐教

请添加注释,实在没有心情和时间猜测各个变量的意义、各条语句的目的

%共一个源节点,一个目的节点,K个中继节点,OFDM调制
clc;
clear all;
close all;
K=8;                                    %中继节点数
N=32;                                   %子载波数
t=rand(1,K)2*pi;                      %生成随机的角度
r=100*rand(1,K);                        %生成随机的半径
x=rcos(t);                            %中继节点的横坐标
y=rsin(t);                            %中继节点的纵坐标
plot(x,y,'+');                          
dr=500;                                %源节点距中继圆心的距离
ds=1000;                               %目的节点距源节点的距离
d1=sqrt((dr+x).^2+y.^2);               %中继节点到源节点的距离
d2=sqrt((ds-dr-x).^2+y.^2);            %中继节点到目的节点的距离
L=4;                                   %径数
alf=3;                                 %损耗因数
sigma1=sqrt(1./(L*(1+d1).^alf));       %标准差
for m=1:K                              %每个中继节点到源节点分别生成复高斯信道
x1=sigma1(1,m)/sqrt(2)(randn(L,1)+1irandn(L,1));  
y1=fft(x1,N);                           %频域响应
ch1(:,m)=abs(y1);                       %幅值
end
sigma2=sqrt(1./(L*(1+d2).^alf));
for m=1:K                              %每个中继节点到目的节点分别生成复高斯信道
x2=sigma2(1,m)/sqrt(2)(randn(L,1)+1irandn(L,1));
y2=fft(x2,N);
ch2(:,m)=abs(y2);
end
sigma3=sqrt(1./(L*(1+ds).^alf));        %目的节点到源节点生成复高斯信道
x3=sigma3/sqrt(2)(randn(L,1)+1irandn(L,1));
y3=fft(x3,N);
ch3=abs(y2);

你这个是一个简化版的瑞利衰落信道(复高斯信道),其中与传统仿真差别最大的是:在你的信道模型里完全不考虑功率延时谱(power delay profile)的作用,认为4条多径(L=4)的平均功率都是相同的(randn(L,1)),这样人为地增大了信道的频率选择性。
当然,每个仿真都是对现实情况的一种简化,你这种简化也不是说就一定不可以,关键要看别人是否认可你这种建模方式,如果你找到一篇已发表的文章,他用的就是这种信道,别人也认可了,那么就没有什么大问题。
建模传统的瑞利信道(复高斯信道),现在流行的是用tapped-delay-line(TDL)来仿真,具体的可以参考matlab帮助文档里Rayleigh channel那一部分。TDL模型大部分的章节都在介绍如何仿真信道的时变性,如果你用的是慢衰落信道,可以跳过所有涉及多普勒功率谱的部分。
PS:我没有运行你的程序,也不知道你的发射信号是怎么产生并且应用于信道的,所以,还需要检查系统的采样频率是否匹配。

果然是高手,谢谢啦,我是按照一篇论文上写的做的。

 Hammerstrom.pdf
   We assume a uniform power delay profile, where all taps are subject to Rayleigh fading and path-loss, with a path loss exponent α.
   Therefore, the n-th channel coefficient between two nodes with distance d meters is distributed as hn-CN(0,1/L(1+d)^α).
    The frequency domain channel is given by Fourier Transformation with Nfft subcarriers.
    您看他说的uniform power delay profile和我做的是一个意思么?生成的信道系数主要用于乘以功率,然后除以噪声的方差来计算信噪比。

power delay profile应该跟他说的是一样的,他的信道很简单,但是他信噪比的定义,你要好好地琢磨并且验证。
其实你把他的结果仿真出来,如果跟他的图对比一下,那就基本没问题了。
文件开始别忘了加上:
rng('shuffle') % 随机数初始化

我在做的时候的主要问题是源节点,中继节点,目的节点之间信道系数的产生只是方差不同,方差又只与距离有关,这样导致源节点到目的节点的直达路径的信道系数过大,所以我怀疑我生成的信号有问题。

信道

实际无线通信信道的衰落由三部分组成“平均路径损耗*大规模衰落(阴影)*小规模衰落(多径)”。
其中:
平均路径损耗是一个函数,与路径长度和损耗指数有关。
大规模衰落服从对数正态分布。
小规模衰落服从复高斯分布(模服从瑞利分布)。
我研究的是点对点的通信,所以一般只针对小规模衰落做文章,而忽略前两项的影响,所以对它们不太熟。
我建议你再看看人家的文章,检查一下是不是少算了阴影的影响,以及平均路径损耗指数是不是与人家取的一样,这两项会影响衰落的平均幅度。具体内容可以参见Sklar的《数字通信》

Top