大家帮忙解释下这个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。
请大侠指点。
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位的冲激响应如何理解。
相关文章:
- 请教Rayleigh信道仿真的参考文献(05-08)
- OFDM仿真中信道过采样的问题(05-08)
- 对于香农定理和信道容量的思考(05-08)
- matlab7中瑞利信道的函数是哪个?(05-08)
- 问:::MIMO下 信道估计的一种新想法.+++(05-08)
- MIMO中常将信道归一化的目的?(05-08)
射频专业培训教程推荐