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

📄 watch_rake.asv

📁 这是一个TD-SCDMA系统的RAKE接收模型
💻 ASV
字号:
close all;
clear all;
A=[1 1 1 1 0 0 0 1 0 0 1 1 0 1 0];%用户A扩频码 
B=[1 1 0 0 1 0 0 0 1 1 1 1 0 1 0];
h=[0.6,0.8];%多径信道
A1=2*A-1;%BPSK调制
B1=2*B-1;
errcount=0;
tercount=0;
mod_angle=exp(j*[1/2*pi 0 pi -1/2*pi]);

for m=1:100000
src=[i,-1,1];%用户A信源比特 
%src_B=[-1,1 1];%信源比特
src_B=[i,-1,1];
L_src=length(src);
Lm=length(A);%扩频码长度
Lh=length(h);%信道长度
snd=[];
snd_B=[];
for k=1:1:L_src
    tt=A1*src(k);
    snd=[snd,tt];%发送chip数组,前16chip是第一比特。。。
    tt_B=B1*src_B(k);
    snd_B=[snd_B,tt_B];
end

%The signals after the multi-path channel
L=Lm*L_src;%发送的chip序列
L1=L+Lh+3;%加上信道传输延迟
y=zeros(1,L1);%置接收信号长度和令初始值为0
y_B=zeros(1,L1);
%for k=1:1:Lh
%    y(1,k:L+k-1)=y(1,k:L+k-1)+snd*h(k);% 经多径信道传播以后的chip数组
%    y_B(1,k:L+k-1)=y_B(1,k:L+k-1)+snd_B*h(k);
%end

for k = 1:Lh
    y(1,(k-1)*4+1:L+(k-1)*4) = y(1,(k-1)*4+1:L+(k-1)*4)+snd*h(k);
    y_B(1,(k-1)*4+1:L+(k-1)*4)=y_B(1,(k-1)*4+1:L+(k-1)*4)+snd_B*h(k);
end


y=y+y_B;
%figure(1)%是chip的图
%plot(y);

%Rake receiver
%Detect the first bit of userA
a1=sum(y(1:Lm).*A1);%相干RAKE(*扩频码)
b1=sum(y(5:(Lm+4)).*A1);%第二径比第一径有一个chip 延迟
r1=(a1+b1)/Lm
dist=abs(mod_angle-r1);               %确定与星座图点的距离
    
[temp,index]=min(dist);
sr1=mod_angle(index);

%Detect the second bit
a2= sum( y((Lm+1):(Lm+Lm)).*A1 );
b2= sum( y((Lm+5):(Lm+Lm+4)).*A1 );
r2=(a2+b2)/Lm

dist=abs(mod_angle-r2);               %确定与星座图点的距离
    
[temp,index]=min(dist);
sr2=mod_angle(index);

%Detect the third bit
a3= sum( y((2*Lm+1):(2*Lm+Lm)).*A1 );
b3= sum( y((2*Lm+5):(2*Lm+Lm+4)).*A1 );
r3=(a3+b3)/Lm

%15扩频,bpsk,2径RAKE

⌨️ 快捷键说明

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