%File_C9:TD_Phy.m
%本程序仿真单用户
%TD-SCDMA的调制解调过程,使用QPSK调制,扩频因子Q=4,使用第3号码分信道,第9号扰码
clear; %清除内存中变量
clc; %清除屏幕
format compact; %在显示变量之间没有空行
%可调变量
SNR=15;
ovsf=[+j -j +j -j]; %经过信道化特征乘法算子加权的正交可变扩频因子(OVSF)码
%扩频因子为4,第3号码分信道
scram(1:16)=[j -1 j 1 j -1 -j -1 j -1 -j -1 -j 1 -j -1] %第9号复扰码序列
Len_PN=length(ovsf); %PN码位数
Len_Data=16; %信源数据个数,单位为bit
Len_Chip=Len_PN*Len_Data; %以Chip为单位的发送信息长度
Fc=1.28e+6; %码片速率
T_Chip=1.0e-6/1.28; %码片周期
%信源序列
Signal=randint(1,Len_Data); %产生随机序列
qpsk=zeros(1,Len_Data/2); %定义经过调制后的序列
for i=1:Len_Data/2; %经过调制后符号个数为二进制序列的1/2,故循环len/2次
if Signal(2*i-1)<0.5 && Signal(2*i)<0.5
qpsk(i)=j; %若b1n,b2n=00,则映射后符号为j
elseif Signal(2*i-1)<0.5 && Signal(2*i)>0.5
qpsk(i)=1; %若b1n,b2n=01,则映射后符号为1
elseif Signal(2*i-1)>0.5 && Signal(2*i)<0.5 %若b1n不等于0,即b1n=1
qpsk(i)=-1; %若b1n,b2n=10,则映射后符号为-1
else
qpsk(i)=-j; %若b1n,b2n=11,则映射后符号为-j
end
end
SigSpr=kron(qpsk,ovsf); %定义扩频后的序列
%加扰码
N=length(SigSpr)/length(scram); %扩频后序列为扰码序列的n倍
for i=1:N-1; %将扰码循环扩展,使其长度等于扩频序列的长度
scram(16*i+1:16*i+16)=scram(1:16);
end
SigSprScrab=SigSpr.*scram %扰码与扩频序列相乘
%figure(1)
%subplot(211),stem(real(SigSprScrab)),grid;subplot(212),stem(imag(SigSprScrab)),grid
Nch=length(SigSprScrab); %QPSK调制、扩频后以Chip为单位的单通道数据长度
%%经过脉冲成形滤波器
%根升余弦滤波器
Delay=8; %滤波器响应时延,即冲激响应峰值与滤波器起始点的时间延迟
%该参数与滤波器冲激响应长度有关
R=0.22; %滚降系数
Fs=4*Fc; %根升余弦滤波器的抽样率,为数据码片速率的4倍
%实部虚部分别通过滤波器
I_TrSig=rcosflt(real(SigSprScrab),Fc,Fs,'fir/sqrt',R,Delay);
%Fc为输入序列的抽样率,Fs为升余弦滤波器的抽样率
%'fir/sqrt'表示滤波器为有限冲激的根升余弦滤波器
%R为滚降系数,Delay为响应时延
%输出数据长度为Fs/Fc*(length(X)+2*DELAY)
Q_TrSig=rcosflt(imag(SigSprScrab),Fc,Fs,'fir/sqrt',R,Delay);
%%%%复发射信号经过加性高斯白噪声信道
RecSig=awgn(I_TrSig+j*Q_TrSig,SNR,'measured'); %对发射复包络信号加高斯白噪声
%%%经过接收端的低通滤波器
I_ReSig=rcosflt(real(RecSig),Fc,Fs,'fir/sqrt/fs',R,Delay);
%Fc为输入序列的抽样率,Fs为升余弦滤波器的抽样率
%'fir/sqrt'表示滤波器为有限冲激的根升余弦滤波器
%R为滚降系数,Delay为响应时延
%输出数据长度为Fs/Fc*(length(X)+2*DELAY)
Q_ReSig=rcosflt(imag(RecSig),Fc,Fs,'fir/sqrt/fs',R,Delay);
%'filter/Fs'表示输入序列的抽样率等于滤波器抽样率Fs
%输出序列长度=输入序列长度+(2*delay*Fs/Fc)
%%抽样
for j=1:Nch
D_Isample(j)=I_ReSig(65+(j-1)*4); %抽样,从第2*delay*Fs/Fc,65个符号开始
%每四个符号抽取一个,前64个符号为两个根升余
%弦滤波器时延
D_Qsample(j)=Q_ReSig(65+(j-1)*4);
end
data=D_Isample+sqrt(-1)*D_Qsample; %抽样得到的数据
%解扰
De_scram=data.*conj(scram);
%%%解扩
for i=1:Len_Data/2
De_spr(Len_PN*(i-1)+1:Len_PN*i)=De_scram(Len_PN*(i-1)+1:Len_PN*i).*conj(ovsf);
end
%%%%解相关
for k=1:Len_Data/2
Rec_Data(k)=0;
for i=1:Len_PN
Rec_Data(k)=Rec_Data(k)+De_spr((k-1)*Len_PN+i)/Len_PN;
end
end
bb=zeros(1,Len_Data);
%QPSK逆映射与判决
for j=1:Len_Data/2
for k=1:4
test(k)=abs(Rec_Data(j)-(sqrt(-1))^k); %求出接收信号与QPSK判决信号的欧式距向量
end
test_result=min(test); %加入最小欧式距判决,并进行QPSK逆映射
if test_result==test(1)
bb(2*j-1)=0;
bb(2*j)=0;
elseif test_result==test(2)
bb(2*j-1)=1;
bb(2*j)=0;
elseif test_result==test(3)
bb(2*j-1)=1;
bb(2*j)=1;
elseif test_result==test(4)
bb(2*j-1)=0;
bb(2*j)=1;
end
end
figure(1)
subplot(211),stem(bb),grid;subplot(212),stem(Signal),grid
figure(2)
m=length(I_ReSig)
xt=repmat([1:16],1,(m-64)/16); %眼图绘制
plot(xt,I_ReSig(65:m));
%程序结束
Mod-and-Demod-of-TD-SCDMA.rar_MOD_TD SCDMA_demod_demod program
版权申诉
137 浏览量
2022-07-14
14:27:07
上传
评论 1
收藏 4KB RAR 举报
周楷雯
- 粉丝: 80
- 资源: 1万+
最新资源
- hdmi in视频采集,输出到hdmi out, 支持HDMI指令控制,支持TFTP远程下载图片
- 批量word文件内容替换工具1.0 (批量实现多个 Word 文档文件文字替换利器).exe
- Cartoon GUI Pack 1.2.zip
- 【数据集和代码】基于加速度传感器的步态识别行人分类实验(可做步态识别)
- 我分享个魔兽内存修改器
- Python毕业设计基于Django的网易云数据分析可视化大屏系统的设计与实现+使用说明+全部资料(优秀项目).zip
- mp3 idv2,idv1,frame分析工具
- 鹈鹕优化算法POA MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用
- Python毕业设计基于Django的网易云数据分析可视化大屏系统的设计与实现+使用说明+全部资料(高分项目).zip
- 蛇优化算法SO MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈