BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #7882同步于 2011/2/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

谁能看懂这段M程序?

lzc86
2011/2/25镜像同步1 回复
下面的代码是仿真SUI信道,其有3径,第一径是赖斯分布,其他两径为瑞利分布,然后该随机变量通过多普勒滤波器形成具有多普勒谱的信道参数,通过重采样得到各径抽头系数(即各径的快衰值)。其中 Doppler PSD,resample我已经看了两天了,感觉一点也看不懂,连基本原理是啥感觉都模糊,非常诚心的希望懂的同学能给我具体讲讲(对SUI模型一点也不懂),有详细的资料发给我也行(邮箱:buptlzc@gmail.com)。 function [y]=paths_OR() %%%%%%%%%%%%%%%%%%%%%%%%%%% simulation parameters %%%%%%%%%%%%%%%%%%%%%%% N=40000; %number of independent random realizations OR=4; %observation rate in Hz M=1024; %number of taps of the Doppler filter Dop_res=0.1; %Doppler resolution of SUI parameter in Hz res_accu=20; %accuracy of resampling process %%%%%%%%%%%%%%%%%%%%%%% SUI-3/Omni channel parameters %%%%%%%%%%%%%%%%%%% p=[0,-5,-10]; %power in each tap in dB k=[1,0,0]; %Ricean K-factor in linear scale tau=[0.0,0.5,1.0]; %tap delay in us Dop=[0.4,0.4,0.4]; %Doppler maximal frequency parameter in Hz ant_corr=0.4; %antenna correlation Fnorm=-1.5113; %gain normalization factor in dB %%%%%%%%%%%%%%%%%%%%%%% calculate the power %%%%%%%%%%%%%%%%%%%%%%%%%%% p=10.^(p/10); %calculate linear power s2=p./(k+1); %calculate variance m2=p.*(k./(k+1)); %calculate constant power m=sqrt(m2); %calculate constant part %%%%%%%%%%%%%% calculate the Ricean channel coefficients %%%%%%%%%%%%%% L=length(p); %number of taps paths_r=sqrt(1/2)*(randn(L,N)+j*randn(L,N)).*((sqrt(s2))'*ones(1,N)); paths_c=m'*ones(1,N); %%%%%%%%%%%%%%%%%%%%%%%%%%%%% Doppler PSD %%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:3 D=Dop(i)/max(Dop)/2; %normalize to highest Doppler f0=[0:M*D]/(M*D); %frequency vector PSD=0.758*f0.^4-1.72*f0.^2+1.0; %PSD approximation filt=[PSD(1:end-1),zeros(1,M-2*M*D),PSD(end:-1:2)]; %S(f) filt=sqrt(filt); %from S(f) to H(f) filt=ifftshift(ifft(filt)); %get impulse response filt=real(filt); %want a real-valued filter filt=filt/sqrt(sum(filt.^2)); %normalize filter path=fftfilt(filt,[paths_r(i,:),zeros(1,M)]); paths_r(i,:)=path(1+M/2:end-M/2); end; paths=paths_r+paths_c; paths=paths*10^(Fnorm/20); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% resample %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SR=max(Dop)*2; %implicit sample rate m=lcm(SR/Dop_res,OR/Dop_res); P=m/SR*Dop_res; %find nominator Q=m/OR*Dop_res; %find denominator paths_OR=zeros(L,ceil(N*P/Q)); %creat new array for s=1:3 paths_OR(s,:)=resample(paths(s,:),P,Q,res_accu); end; y=paths_OR;
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
lzc86机器人#1 · 2011/2/26
怎么没有人呢?