官方淘宝店 易迪拓培训 旧站入口
首页 > 无线通信 > 通信技术学习讨论 > 大家帮忙解释下这个rayleigh信道的生成代码

大家帮忙解释下这个rayleigh信道的生成代码

12-16
前代码是配置的参数,速度,Fc等
Nv=datalen/fs*fd;
rn = floor((Nv-1)/2);          
sqrtpsd=1./(1-( [-rn:1:rn]/(Nv/2) ).^2).^.25;
% Generate complex Gaussian
ampl=randn(1,2*rn+1)+j*randn(1,2*rn+1);
y=amplsqrtpsd;
%below sentences for fftshift, although we may not necessary to do this for
Rayleigh amplitude
%Nint = ceil(Nv*fs/fd);            
%get how many points in [-pi, pi), we also use Nint-point ifft
pos=y(rn+1:2*rn+1);
neg=y(1:rn);
shifted=[pos,zeros(1,datalen-(2*rn+1)),neg];
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
h =  ifft(shifted); % h is channel impulse response  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
不明白为什么要把pos和neg放在两边,而中间设成全0。
请大侠指点。

代码太长了贴不清楚,思考了下明白了加0为了增加分辨率,但是还存在一个疑问:
代码的目的是传递衰落信道给tx data,tx data为大约20000位的0,1随机数。代码首先
生成一个rayleigh信道的doppler频谱,有效数据只有大约30个左右,然后再zero-padd
ing,再ifft到时域,然后再同时域的tx data点乘,模型设信道长度为Lc,随后进行移位
相加得到总的信道响应。 问题是频域的响应怎么可以变换到时域的20000位再同tx dat
a想乘呢,20000位的冲激响应如何理解。

Top