?? rayleigh_filtered.m
字號(hào):
%函數(shù)Rayleigh_filtered
%Ns表示抽樣得到的瑞利衰落信道點(diǎn)數(shù)
function rayleigh_t=Rayleigh_filtered(fmax,fs,Ns)
%N為仿真中瑞利衰落信道的實(shí)際點(diǎn)數(shù),它的確定需要考慮數(shù)字信號(hào)處理的內(nèi)容
N=8;
while(N)
if (N<2*fmax*Ns/fs)
N=2*N;
else
break;
end
end
%N_inv為IFFT實(shí)際點(diǎn)數(shù)
N_inv=ceil(N*fs/(2*fmax));
%f_interval為信號(hào)FFT之后的頻率間隔
f_interval=2*fmax/N;
%T_inv為抽樣點(diǎn)之間的間隔
T_inv=1/fs;
%產(chǎn)生具有N點(diǎn)的高斯隨機(jī)變量
I_input_time=randn(1,N);
Q_input_time=randn(1,N);
%做FFT變換
I_input_freq=fft(I_input_time);
Q_input_freq=fft(Q_input_time);
%產(chǎn)生具有經(jīng)典功率譜的成形濾波器
SEZ(1)=1.5/(pi*fmax);
%****0<f<fmax*****
for j=2:N/2
f(j)=(j-1)*f_interval;
SEZ(j)=1.5/(pi*fmax*sqrt(1-(f(j)/fmax)^2));
SEZ(N-j+2)=SEZ(j);
end
%f=fmax點(diǎn)的值采用多項(xiàng)式擬合的方法求得
k=3;
p=polyfit(f(N/2-k:N/2),SEZ(N/2-k:N/2),k);
SEZ(N/2+1)=polyval(p,f(N/2)+f_interval);
%高斯隨機(jī)變量通過(guò)成形濾波器
I_output_freq=I_input_freq.*sqrt(SEZ);
Q_output_freq=Q_input_freq.*sqrt(SEZ);
%做IFFT變換
I_temp=[I_output_freq(1:N/2) zeros(1,N_inv-N) I_output_freq(N/2+1:N)];
I_output_time=ifft(I_temp);
Q_temp=[Q_output_freq(1:N/2) zeros(1,N_inv-N) Q_output_freq(N/2+1:N)];
Q_output_time=ifft(Q_temp);
%得到衰落信道的沖激響應(yīng)CHANNEL
channel=I_output_time+i*Q_output_time;
channel=channel(1:Ns);
%用均方根(RMS)進(jìn)行歸一化
rms=sqrt(norm(channel,'fro'));
channel_unit=channel/rms;
rayleigh_t=diag(channel_unit'*channel_unit)';
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -