⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mccdmalast1.m

📁 单用户MC-CDMA系统仿真程序及结果
💻 M
字号:
clear all;
format long;
Vt = 0;
%c为扩频序列
d_num=10000;
c=[1; 1 ;1 ;1; 1 ;j; -1; -j ;1 ;-1; 1; -1; 1; j ;-1; -j];

N=16;
a=[];
d1=[];
d2=[];
Plot_Pe = [];

plot_EbNo = -30:2:30; %-20:2:10;
for EbNo = -30:2:30,
    %convert back from dB
Eb_No = EbNo; %dB
Eb_No = 10.^(Eb_No/10);
%assume No = 2;
No = 2;
Eb = No * Eb_No;
%calculate power p
Tc = 1;
Ts = N * Tc;
p = Eb / Ts;
i=1;
%N =16,产生随机的原始数据d,
%d=bingen(d_num);
d = bingen(d_num);
d_original = d;
d = sqrt(p)*d;

%generate Rayleigh fading
[env,phi] = fade(length(d),0.5);

%generate faded sequence
d = env.*d';
d = d';
%d=rand(1,d_num);
%d(find(d<0.5))=-1;
%d(find(d>0.5))=1;
for k=0:1:d_num/2-1;
    d1=d(2*k+1);
    d2=d(2*k+2);
    x1=d1*c;
    x2=d2*c;
    x=[x1';x2']
mod=ifft(x);
y=reshape(mod,1,32);
%scale by appropriate power factor
%y = sqrt(p)*y;
%add AWGN to signal
y = awgn(y,1);
y1=reshape(y,2,16);
demod=fft(y1);
demod1=demod(1,:);
demod2=demod(2,:);
dec1=demod1*c;
dec2=demod2*c;
    dec1(find(dec1<0.5))=-1;
    dec1(find(dec1>=0.5))=1;
    dec2(find(dec2<0.5))=-1;
    dec2(find(dec2>=0.5))=1;
    recover=[dec1 dec2];
    
    a(i:i+1)=[recover];
    i=i+2;
end
a
Pe = length(find(d_original - a))/d_num;

Plot_Pe = [Plot_Pe Pe];
end %end for EbNo
%display the calculated Pd and Pfa
Plot_Pe

%plot Pe versus Eb/No
semilogy(plot_EbNo,Plot_Pe,'m*:')
xlabel('Eb/No (dB)')
ylabel('BER')
s=sprintf('BER versus Eb/No in Rayleigh fading and AWGN');
title(s);
grid on
hold on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
format long;
Vt = 0;
%c为扩频序列
d_num=10000;
c=[1; 1 ;1 ;1; 1 ;1; 1; 1 ;1 ;1; 1; 1; 1; 1 ;1; 1];

N=16;
a=[];
d1=[];
d2=[];
Plot_Pe = [];

plot_EbNo = -30:2:30; %-20:2:10;
for EbNo = -30:2:30,
    %convert back from dB
Eb_No = EbNo; %dB
Eb_No = 10.^(Eb_No/10);
%assume No = 2;
No = 2;
Eb = No * Eb_No;
%calculate power p
Tc = 1;
Ts = N * Tc;
p = Eb / Ts;
i=1;
%N =16,产生随机的原始数据d,
d=bingen(d_num);

d_original = d;
d = sqrt(p)*d;

%generate Rayleigh fading
[env,phi] = fade(length(d),0.5);

%generate faded sequence
d = env.*d';
d = d';
%d=rand(1,d_num);
%d(find(d<0.5))=-1;
%d(find(d>0.5))=1;
for k=0:1:d_num/2-1;
    d1=d(2*k+1);
    d2=d(2*k+2);
    x1=d1*c;
    x2=d2*c;
    x=[x1';x2']
mod=ifft(x);
y=reshape(mod,1,32);
%scale by appropriate power factor
%y = sqrt(p)*y;
%add AWGN to signal
y = awgn(y,1);
y1=reshape(y,2,16);
demod=fft(y1);
demod1=demod(1,:);
demod2=demod(2,:);
dec1=demod1*c;
dec2=demod2*c;
    dec1(find(dec1<0.5))=-1;
    dec1(find(dec1>=0.5))=1;
    dec2(find(dec2<0.5))=-1;
    dec2(find(dec2>=0.5))=1;
    recover=[dec1 dec2];
    
    a(i:i+1)=[recover];
    i=i+2;
end
a
Pe = length(find(d_original - a))/d_num;

Plot_Pe = [Plot_Pe Pe];
end %end for EbNo
%display the calculated Pd and Pfa
Plot_Pe

%plot Pe versus Eb/No
semilogy(plot_EbNo,Plot_Pe,'bo:')
xlabel('Eb/No (dB)')
ylabel('BER')
lengend('\it*-正交序列,o-WALSH序列')
grid on

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -