EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教大神,为什么会出现未定义函数或变量 'Parameter_Classical',感谢!
$ E& D8 l( T% V! K) {
clearall; closeall; carrier_count=1024;%子载波数 IFFT_length=1024;%FFT点数 N=2000;%信源0,1序列长度 %产生瑞利信道衰落 T=1; T_interval=0.01; N1=64; N2=64; fmax=1000; H=ceil(T/T_interval); t=(0:H-1)*T_interval; Variance1=1; [f1,c1,theta1]=Parameter_Classical(N1,Variance1,fmax,'rand'); [f2,c2,theta2]=Parameter_Classical(N2,Variance1,fmax,'rand'); c1=c1/sqrt(2); c2=c2/sqrt(2); reyleigh_t=Gauss_generator(c1,f1,theta1,T_interval,T)+j*(Gauss_generator(c2,f2,theta2,T_interval,T)); DATA_R_IFFT_length=zeros(1,IFFT_length); for SNR=0:3:15 for n_H=1:1:H r_h=reyleigh_t(1,n_H); % 取一个信道样点,共H=5000个点 % 信号产生2000bit随机0,1序列 data=zeros(1,N/2); %产生1*1000的零矩阵; message=randint(1,N); %产生2000bit随机0,1序列 reshape_message=reshape(message,N/2,2); %串并转换,变为1000*2的矩阵 for n=1:1:N/2 %星座映射 ifreshape_message(n, ==[1,1] data(1,n)=sqrt(2)/2+j*sqrt(2)/2; end ifreshape_message(n, ==[1,0] data(1,n)=sqrt(2)/2-j*sqrt(2)/2; end ifreshape_message(n, ==[0,1] data(1,n)=-sqrt(2)/2+j*sqrt(2)/2; end ifreshape_message(n,:)==[0,0] data(1,n)=-sqrt(2)/2-j*sqrt(2)/2; end end %产生待IFFT变换的数据,1*1024矩阵,中间置0,两头添0 DATA_T=[0 0 0 0 0 0 0 0 0 0 0[data(1:500) 0 data(501:1000)] 0 0 0 0 0 0 0 0 0 0 0 0]; DATA_ifft=ifft(DATA_T,1024);%进行1024点的ifft变换 Recieve1=r_h.*DATA_ifft; %过信道 r = awgn(Recieve1,SNR,'measured');%加噪声 Recieve_h=r/r_h; % 去信道Recieve. Recieve_fft=fft(Recieve_h,1024); % 接受的1*1024矩阵进行fft变换 for n_R=1:1:1024 % fft变换后判断每一点在星座图的位置 x=real(Recieve_fft(1,n_R)); y=imag(Recieve_fft(1,n_R)); d_1=sqrt((x-sqrt(2)/2)^2+(y-sqrt(2)/2)^2); d_2=sqrt((x+sqrt(2)/2)^2+(y-sqrt(2)/2)^2); d_3=sqrt((x+sqrt(2)/2)^2+(y+sqrt(2)/2)^2); d_4=sqrt((x-sqrt(2)/2)^2+(y+sqrt(2)/2)^2); D=[d_1 d_2 d_3 d_4]; d_min=min(D); %以最小距离为基准判断 if d_min==d_1 DATA_R_IFFT_length(n_R)=sqrt(2)/2+j*sqrt(2)/2; elseif d_min==d_2 DATA_R_IFFT_length(n_R)=-sqrt(2)/2+j*sqrt(2)/2; elseif d_min==d_3 DATA_R_IFFT_length(n_R)=-sqrt(2)/2-j*sqrt(2)/2; elseif d_min==d_4 DATA_R_IFFT_length(n_R)=sqrt(2)/2-j*sqrt(2)/2; end end DATA_R=[DATA_R_IFFT_length(12:511)DATA_R_IFFT_length(513:1012)]; data_r=zeros(N/2,2); for k=1:1:N/2 %用星座图点变回0,1序列 if DATA_R(1,k)==sqrt(2)/2+j*sqrt(2)/2 data_r(k,:)=[1 1]; elseifDATA_R(1,k)==sqrt(2)/2-j*sqrt(2)/2 data_r(k,:)=[1 0]; elseif DATA_R(1,k)==-sqrt(2)/2+j*sqrt(2)/2 data_r(k,:)=[0 1]; elseifDATA_R(1,k)==-sqrt(2)/2-j*sqrt(2)/2 data_r(k,:)=[0 0]; end end message_r=reshape(data_r,1,N); bit_errors=find(message~=message_r); bit_errors_count=size(bit_errors,2); ber=bit_errors_count/2000; ber_total(1,n_H)=ber; end ber_avg=mean(ber_total); semilogy(SNR,ber_avg,'--rs','LineWidth',2,'MarkerEdgeColor','k','Marke RFaceColor','g','MarkerSize',10); title('BER曲线'); xlabel('SNR'); ylabel('BER'); hold on; grid on; end
6 Y. D. _+ _% F |