• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Matlab
  • 标签:

资源简介

MATLAB编写的QPSK仿真实例,个人能整理,可用。各部分的解释简单明了。希望对大家有帮助。

资源截图

代码片段和文件信息

 
T=1;                          % 基带信号宽度也就是频率 
fc=10/T;                      % 载波频率 
ml=2;                         % 调制信号类型的一个标志位 
nb=100;                       % 传输的比特数 
delta_T=T/200;                % 采样间隔 
fs=1/delta_T;                 % 采样频率 
SNR=0;                        % 信噪比 
t=0:delta_T:nb*T-delta_T;     % 限定t的取值范围 
N=length(t);                  % 采样数   
%-------------------------  调制部分 
% 基带信号的产生 
data=randn(1nb)>0.5;         
datanrz=data.*2-1;             %变成极性码
data1=zeros(1nb/delta_T);     %创建一个1*nb/delta_T的零矩阵
for q=1:nb 
    data1((q-1)/delta_T+1:q/delta_T)=datanrz(q);  %将极性码变成对应的波形信号
end  
%将基带信号变换成对应波形信号
 data0=zeros(1nb/delta_T);
for q=1:nb
       data0((q-1)/delta_T+1:q/delta_T)=data(q);
end
figure(1);
plot(data0)title(‘原始信号‘);
axis([0 20000 -2 2]);
%串并转换,将奇偶位数据分开
idata=datanrz(1:ml:(nb-1));   %将奇偶位分开,因此间隔为2
qdata=datanrz(2:ml:nb);
%将I相和Q相信号画出
figure(2);
subplot(211);
stairs(idata)title(‘I路信号‘);
axis([0 50 -2 2]);
subplot(212);
stairs(qdata);title(‘Q路信号‘);
axis([0 50 -2 2]);
%QPSK信号的调制
ich=zeros(1nb/delta_T/2);    %创建一个1*nb/delta_T/2的零矩阵,以便后面存放奇偶位数据
for i=1:nb/2 
    ich((i-1)/delta_T+1:i/delta_T)=idata(i); 
end  
 
for ii=1:N/2 
    a(ii)=sqrt(2/T)*cos(2*pi*fc*t(ii));  
end 
idata1=ich.*a;       %将奇数位数据与余弦函数相乘,得到一路的调制信号         
qch=zeros(1nb/2/delta_T);

评论

共有 条评论

相关资源