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

📄 rake_receiver.m

📁 rake_receive, one part of another matlab communication simulation with wirele
💻 M
字号:
%rake receiver design
clear;clc;num=4;
t=linspace(0,5,1000);
s=sin(2*pi*t)+cos(4*pi*t);
decay=rand(num,1000);
noise=sqrt(0.65)*rand(1,1000)+0.2;
for k=1:num
    x(k,:)=s.*decay(k,:)+noise;
end

for i=1:1000
    %MRC:Maximum ratio combining
    Ymrc(i)=sum((x(:,i).^2)/(noise(i)^2));
    Snr_mrc(i)=Ymrc(i)^2/(noise(i)^2);
%EGC:equal gain combining
    Yegc(i)=sum(x(:,i));
    Snr_egc(i)=Yegc(i)^2/(noise(i)^2);
%SC:select combining
    Ysc(i)=max(x(:,i));
    Snr_sc(i)=Ysc(i)^2/(noise(i)^2);
end

t=1:1000;
figure(1);
plot(t,s,'r',t,Ymrc,'g',t,Yegc,'b',t,Ysc,'k');
title('三种分集合并方法的信号比较');
ylabel('幅度');xlabel('时刻');
legend('Original signal','MRC','EGC','SC');
figure(2);
plot(t,10*log10(Snr_mrc),t,10*log10(Snr_egc),t,10*log10(Snr_sc));
title('三种分集合并方法的信噪比比较');
ylabel('SNR');xlabel('时刻');
legend('MRC','EGC','SC');


for j=1:20    
    num=j;
t=linspace(0,5,1000);
s=sin(2*pi*t)+cos(4*pi*t);
decay=rand(num,1000);
noise=sqrt(0.65)*rand(1,1000)+0.2;
for k=1:num
    x(k,:)=s.*decay(k,:)+noise;
end

for i=1:1000
    %MRC:Maximum ratio combining
    Ymrc(i)=sum((x(:,i).^2)/(noise(i)^2));
    Snr_mrc(i)=Ymrc(i)^2/(noise(i)^2);
%EGC:equal gain combining
    Yegc(i)=sum(x(:,i));
    Snr_egc(i)=Yegc(i)^2/(noise(i)^2);
%SC:select combining
    Ysc(i)=max(x(:,i));
    Snr_sc(i)=Ysc(i)^2/(noise(i)^2);
end
Amrc(j)=10*log10(sum(Snr_mrc)/1000);
Aegc(j)=10*log10(sum(Snr_egc)/1000);
Asc(j)=10*log10(sum(Snr_sc)/1000);
end
j=1:20;
figure(3);
plot(j,Amrc,'r',j,Aegc,'b',j,Asc,'k');
title('三种分集合并方法的平均信噪比比较');
ylabel('平均信噪比');xlabel('支路数N');
legend('MRC','EGC','SC');
figure(4);
for N=1:20
s1(N)=log2(N);
s2(N)=log2(1+(N-1)*pi/4);
s3(N)=0;
for iii=1:N
    s3(N)=s3(N)+1/iii;
end
s3(N)=log2(s3(N));
end
N=1:20;
plot(N,s1,'r',N,s2,'b',N,s3,'k');
title('三种分集合并方法的性能比较');
ylabel('合并增益');xlabel('支路数N');
legend('MRC','EGC','SC');

⌨️ 快捷键说明

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