wcdma matlab程序,wcdmasource.m 源代码在线查看 - 用matlab建立模型设计fpga 资源下载 虫虫电子下载站...

len=76800; %产生两帧数据pn9_output=zeros(1,len); %测试源的输出Fs=3.84*8e6; %抽样频率sf_length=128; %扩频因子tpc=zeros(15,2);slot=zeros(15,8);seed=[1 1 zeros(1,7)]; %将不同信道的数作为pn9的种子%不同码路的延迟,见25.141协议表6.2time=[86 134 52 45 143 112 59 23 1 88 30 18 30 61 128 143 83 25 103 97 56 104 51 26 137 65 37 125 149 123 83 5 91 7 32 21 29 59 22 138 31 17 9 69 49 20 57 121 127 114 100 76 141 82 64 149 87 98 46 37 87 149 85 69];%不同码路的扩频码编号,见25.141协议表6.2code=[2 11 17 23 31 38 47 55 62 69 78 85 94 102 113 119 7 13 20 27 35 41 51 58 64 74 82 88 97 108 117 125 4 9 12 14 19 22 26 28 34 36 40 44 49 53 56 61 63 66 71 76 80 84 87 91 95 99 105 110 116 118 122 126];%不同码路的增益,见25.141协议表6.2db=[-16 -16 -16 -17 -18 -20 -16 -17 -16 -19 -22 -20 -16 -17 -19 -21 -19 -21 -18 -20 -24 -24 -22 -21 -18 -20 -17 -18 -19 -23 -22 -21 -17 -18 -20 -17 -19 -21 -19 -23 -22 -19 -24 -23 -22 -19 -22 -21 -18 -19 -22 -21 -19 -21 -19 -21 -20 -25 -25 -25 -24 -22 -20 -15];slot(1,:)=[-1 -1 -1 -1 -1 -1 -1 1];slot(2,:)=[-1 -1 1 1 -1 -1 -1 1];slot(3,:)=[-1 -1 1 -1 -1 -1 1 -1];slot(4,:)=[-1 -1 1 1 -1 -1 1 1];slot(5,:)=[-1 -1 -1 1 -1 -1 1 -1];slot(6,:)=[-1 -1 -1 -1 -1 -1 -1 1];slot(7,:)=[-1 -1 -1 -1 -1 -1 1 1];slot(8,:)=[-1 -1 -1 1 -1 -1 1 1];slot(9,:)=[-1 -1 1 -1 -1 -1 -1 1];slot(10,:)=[-1 -1 -1 -1 -1 -1 -1 -1];slot(11,:)=[-1 -1 1 -1 -1 -1 1 -1];slot(12,:)=[-1 -1 -1 1 -1 -1 -1 -1];slot(13,:)=[-1 -1 -1 1 -1 -1 1 1];slot(14,:)=[-1 -1 1 1 -1 -1 -1 -1];slot(15,:)=[-1 -1 1 1 -1 -1 -1 -1];%产生OVSF扩频码sf=ovsf(sf_length);%产生扰码scr=scramble (0, 1);%PN9序列的生成for i=1:2:15 tpc(i,:)=[1 1];endfor i=2:2:14 tpc(i,:)=[-1 -1];endfor k=1:64 seed_temp1=dec2bin(code(k)); temp=zeros(1,length(seed_temp1)); for i=1:length(seed_temp1) if seed_temp1(i)=='0' c=0; else c=1; end temp(i)=c; end; seed_temp=[zeros(1,7-length(temp)),temp]; seed_temp=fliplr(seed_temp); seed(1,3:9)=seed_temp; %产生pn9码 reg=seed; for i1=1:511 temp5=reg(1,5); temp1=reg(1,9); pnt=reg(1,9); for j2=8:-1:1 reg(1,j2+1)=reg(1,j2); end; reg(1,1)=mod(temp5+temp1,2); if(pnt==0) pnout(k,i1)=1; else pnout(k,i1)=-1; end; end;end;%64路数据按权相加,形成输出pn9_outputfor k=1:64 for i=1:15 pn9_dpch(k,(i-1)*40+1:(i-1)*40+6)=pnout(k,(i-1)*30+1:(i-1)*30+6); pn9_dpch(k,(i-1)*40+7:(i-1)*40+8)=tpc(i,:); pn9_dpch(k,(i-1)*40+9:(i-1)*40+32)=pnout(k,(i-1)*30+7:(i-1)*30+30); pn9_dpch(k,(i-1)*40+33:(i-1)*40+40)=slot(i,:); end pn9_dpch(k,601:1200)=pn9_dpch(k,1:600); pn9(k,1:2*time(k))=0; pn9(k,2*time(k)+1:1200)=pn9_dpch(k,1:1200-2*time(k));%每路数据end%串并变换,每个比特重复128次for k=1:64; pn9real(k,:)=pn9(k,1:2:1199); pn9imag(k,:)=pn9(k,2:2:1200); for i=1:600; pn9real_spread(k,(i-1)*sf_length+1:i*sf_length)=pn9real(k,i); pn9imag_spread(k,(i-1)*sf_length+1:i*sf_length)=pn9imag(k,i); end;end;%加扩for k=1:64 %64路数据 for i=1:600; pn9real_sf(k,(i-1)*sf_length+1:i*sf_length)=pn9real_spread(k,(i-1)*sf_length+1:i*sf_length).*sf(code(k),1:sf_length); pn9imag_sf(k,(i-1)*sf_length+1:i*sf_length)=pn9imag_spread(k,(i-1)*sf_length+1:i*sf_length).*sf(code(k),1:sf_length); end; pn9sf(k,:)=pn9real_sf(k,:)+j*pn9imag_sf(k,:); %加扰 scr2(1:38400)=scr; scr2(38401:76800)=scr; pn9_scra(k,:)=pn9sf(k,:).*scr2; per=10^(db(k)/10); pn9_output=pn9_output+per*pn9_scra(k,:);end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值