bpsk 调制解调的误码率Matlab仿真程序
% ***********SIMULATION OF COEFFICIENTS OF RAYLEIGH FADING
CHANNEL************
%
% VEHICULAR SPEED, DOPPLER SHIFT
% FADING COEFFICIENTS
%**********************************************************************
********
Num_path=2000; % Number of paths t=0.0001:10/Num_path:10; % Time range f=150*10.^6; % Carrier frequency (150 Mhz, 900 Mhz)
wc=2*pi*f;
vehicle_speed=100; % Speed of car[km/hrs] v=vehicle_speed*5/18; % Receiver speed[m/hrs] c=300*10^3; % Speed of light wm=wc*(v/c); % Maximum shift fm=wm/(2*pi); % Doppler shift
% SIMULATING ENSEMBLES OF SINUSOIDS
for i=1:Num_path
A(i)=(2*pi/Num_path)*i; %Azimuthal angles
wn(i)=wm*cos(A(i));
phi(i)=(pi*i)/(Num_path+1);
xc(i)=2*cos(wn(i)*t(i)).*cos(phi(i))+cos(wm*t(i));
xs(i)=2*cos(wn(i)*t(i)).*sin(phi(i));
T(i)=(1/(2*Num_path+1)^0.5).*(xc(i)+j*xs(i));% Complex envelope
end;
M=mean(abs(T)); % Mean
MdB=20*log10(M);
TdB=floor(20*log10(abs(T))); % Field [dB]
% PLOTTING THE HISTOGRAM
z1=hist(abs(T));
z=hist(TdB,9);
n=0;
for k=1:9
n=n+z(k);
end
for j=1:9
P(j)=z(j)/n;
end
f(1)=P(1);
for x=2:9
f(x)=f(x-1)+P(x);
F(10-x)=f(x);
end
plot(z1); % Distribution chart title('Rayleigh distribution');
semilogy(t,abs(T)/max(abs(T)),'r') % Fading graphic title('Received field');
ylabel('Received field intensity');
xlabel('time');
grid on;
%*********************BINARY PHASE SHIFT KEYING *******************
%
% Simulation of BPSK system in presence of Additive White Guassian Noise
% and Rayleigh fading and Dopper shift and using SPREAD SPECTRUM TECH
%
%******************DIRECT SEQUENCE SPREAD SEQUENCE******************
clear all
clc
f_data=1; % DATA FREQUENCY
f_chip=11; % LENGTH OF CHIP SEQUENCE fc=220; % RELATIVE CARRIER FREQUENCY fs=fc*3; % SAMPLING FREQUENCY
N=fs/f_chip; % CODING RATE
data_length=1000;
M=2; % BINARY LEVEL CODING
matches=0;
errors=0;
count=1;
SNRpbit=0;
SNR=SNRpbit;
rand('state',12345); % INITIALISATION 'SEED' randn('state',54321);
numplot=100;
msg_unspread=randsrc(data_length,1,[0:M-1]); % GENERATION OF RANDOM DATA
PN_sequence=randsrc(11,1,[0:1]); % GENERATION OF PN SEQUENCE
% GENERATION OF SPREADED MESSAGE
j=1;
for i = 1:data_length
for k = j:j+f_chip
msg_orig(k) = msg_unspread(i);
end;
msg_orig(j:(j+f_chip-1)) =
xor(msg_orig(j:(j+f_chip-1))',PN_sequence(1:f_chip));
j = f_chip*i+1;
end;
len_of_orig=length(msg_orig);
% MODULATING THE SPREAD MESSAGE
msg_tx=dmod(msg_orig,fc,f_chip,fs,'psk',M); len_of_tx=length(msg_tx);
% % RAYLEIGH COEFFICIENTS
% magT=abs(T);
%
% % ADDING RAYLEGH FADING COEFFICIENTS % k=1;
% for i=1:len_of_tx
% msg_tx(1,i)=msg_tx(1,i)*10*magT(1,k); % if(mod(i,k))
% k=k+300;
% end ;
% end;
% PERFORMANCE ANALYSIS FOR VARYING SNR'S
for SNRpbit=0:1:7
SNR=SNRpbit;
rand('state',12345);
randn('state',54321);
% ADDING AWGN TO THE SIGNAL
msg_rx_data=awgn(msg_tx,SNR-10*log10(N),'measured','dB');
% plot(t,msg_rx(1:length(t)),'b-');
msg_rx= msg_rx_data ;
msg_rx=msg_tx;
% DEMODULATING THE RECEIVED SIGNAL
msg_demod=ddemod(msg_rx,fc,f_chip,fs,'psk',M);
% CORRELATING WITH THE PN SEQUENCE
j=1;
for i = 1:data_length
msg_demod(j:(j+f_chip-1)) =
xor(msg_demod(j:(j+f_chip-1))',PN_sequence(1:f_chip));
j = f_chip*i+1;
end;
% DESPREADING THE RECEIVED SIGNAL
j=1;
for i = 1:data_length
sum=0;
for k = j:j+f_chip
sum=sum+msg_demod(k);
end;
if (sum >=7)
msg_demod_rec(i)=1;
else
msg_demod_rec(i)=0;
end;
j = f_chip*i+1;
end;
% CALCULATION OF ERRORS
for i=1:data_length;
if (msg_demod_rec(1,i)== msg_unspread(i,1))
matches=matches+1;
else
errors=errors+1;
end ;
end;
% BER_ray(count)=errors/data_length;
BER_awgn(count)=errors/data_length;
%BER_theo(count)=0.07*erfc(SNR^0.5);
count=count+1;
errors=0;
end;
本文档为【bpsk 调制解调的误码率Matlab仿真程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。