• 大小: 7KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-06
  • 语言: Matlab
  • 标签: IQ调制  

资源简介

matlabIQ调制程序

资源截图

代码片段和文件信息

clear all
close all
clc

%全局变量
%N=2^12                                 %宽度,或称为点数
Ts=0.01        ;%时间分辨率(时间间隔),抽样时间间隔
t=0:Ts:10         ;                      %时间坐标
N=length(t);
fs=1/Ts;
df=fs/(N-1)   ;                          %df为频率分辨率(频率间隔)
n=-(N-1)/2:(N-1)/2;
f=n*df       ;                           %频率坐标

%基带信号
figure
p=[1 0 1 1 0 1 0 0 1 1]   ;             %待传送的编码串可用randint(1n)产生信源;若用rand(1nM),则范围是1~M-1
d1=[0:1:t(end)-1]         ;             %每个编码的发送延迟时间
p1=[pzeros(length(d1)-length(p))] ;    %在发送串后补零
d=[d1;p1]‘                    ;         %产生d矩阵
m=pulstran(t-0.5d‘rectpuls‘);
subplot(211)
plot(tm)
axis([t(1) t(end) -0.5 1.5])
grid on
title(‘基带信号p‘)
%基带信号频谱
M=fft(m);
M=fftshift(M);
subplot(212)
plot(fabs(M)/N)
title(‘基带信号频谱‘)

%抽取IQ信号  BPSK只映射一路I。QPSK两个基带符号为一组,映射到一对IQ
figure
pQI=reshape(p25);
pQ=pQI(1:);
pI=pQI(2:);
d2=[0:2:t(end)-2];
dQ=[d2;pQ]‘;
dI=[d2;pI]‘;
mI=pulstran(t-1dI‘rectpuls‘2);
mQ=pulstran(t-1dQ‘rectpuls‘2);
subplot(211)
plot(tmI)
axis([t(1) t(end) -0.5 1.5])
grid on
title(‘I路抽取‘)
subplot(212)
plot(tmQ)
axis([t(1) t(end) -0.5 1.5])
grid on
title(‘Q路抽取‘)
%IQ值映射   “0”映射成1,“1”映射成-1
figure
I(pI==1)=-1;
I(pI==0)=1;
Q(pQ==1)=-1;
Q(pQ==0)=1;
dImap=[d2;I]‘;
dQmap=[d2;Q]‘;
mImap=pulstran(t-1dImap‘rectpuls‘2);
mQmap=pulstran(t-1dQmap‘rectpuls‘2);
subplot(211)
plot(tmImap)
axis([t(1) t(end) -1.5 1.5])
grid on
title(‘映射后的I路信号‘)
subplot(212)
plot(tmQmap)
axis([t(1) t(end) -1.5 1.5])
grid on
title(‘映射后的Q路信号‘)

%载波信号
fc=5                 %载波频率;
c1=cos(2*pi*fc*t);
c2=sin(2*pi*fc*t);
%载波信号频谱
figure
C1=fft(c1);
C1=fftshift(C1);
subplot(211)
plot(fabs(C1)/N)
title(‘载波cos频谱‘)
C2=fft(c2);
C2=fftshift(C2);
subplot(212)
plot(fabs(C2)/N)
title(‘载波sin频谱‘);

%已调信号
figure
s1=mImap.*c1;
subplot(311)
plot(ts1)
axis([t(1) t(end) -1.5 1.5])
title(‘I路调制cos‘)
grid on
s2=mQmap.*c2;
subplot(312)
plot(ts2)
axis([t(1) t(end) -1.5 1.5])
title(‘Q路调制sin‘);
grid on
s=s1-s2;
subplot(313)
plot(ts)
axis([t(1) t(end) -1.5 1.5])
title(‘进入信道的信号s=s1-s2‘)
grid on

%已调信号频谱
figure
S1=fft(s1);
S1=fftshift(S1);
subplot(311)
plot(fabs(S1)/N)
title(‘s1频谱‘)
S2=fft(s2);
S2=fftshift(S2);
subplot(312)
plot(fabs(S2)/N)
title(‘s2频谱‘)
S=fft(s);
S=fftshift(S);
subplot(313)
plot(fabs(S)/N)
title(‘s频谱‘)

%通过信道后接收到信号
figure
r=awgn(s10);
subplot(211)
plot(tr)
axis([t(1) t(end) -1.5 1.5])
title(‘接收信号时域‘)
%接收信号的频谱
R=fft(r);
R=fftshift(R);
subplot(212)
plot(fabs(R)/N)
title(‘接收信号频域‘)

%解调
figure
y1=r.*c1;
subplot(211)
plot(ty1)
axis([t(1) t(end) -1.5 1.5])
title(‘I路解调‘)
y2=r.*(-c2);
subplot(212)
plot(ty2)
axis([t(1) t(end) -1.5 1.5])
title(‘Q路解调‘)


%解调后从时域积分(求和)判决
y1sum=0;
y2sum=0;
for i=1:5
    y1sum(i)=sum(y1(200*(i-1)+1:200*i));
    y2sum(i)=sum(y2(200*(i-1)+1:200*i));
end 
y1d=sign(y1sum);
y2d=sign(y2sum);

%反映射
y1rmap(y1d==1)=0;
y1rmap(y1d==-1)=1;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3557  2014-11-10 10:47  IQ\3971002my_QPSKmod_201107\my_QPSKmod_201107.m

     文件       5398  2008-03-07 14:44  IQ\40474840lfm_iq\lfm_iq.m

     文件       1203  2009-04-18 21:44  IQ\69154523IQ\IQ.m

     文件       5811  2009-06-22 14:43  IQ\786579139IQ\IQ.m

     文件        355  2014-11-10 10:55  IQ\786579139IQ\Untitled2.m

     文件       1457  2010-04-22 21:28  IQ\877815358IQ\IQ.m

     目录          0  2014-11-10 10:45  IQ\3971002my_QPSKmod_201107

     目录          0  2012-03-30 10:59  IQ\40474840lfm_iq

     目录          0  2012-03-30 10:59  IQ\69154523IQ

     目录          0  2014-11-10 10:55  IQ\786579139IQ

     目录          0  2012-03-30 11:00  IQ\877815358IQ

     目录          0  2014-11-18 16:43  IQ

----------- ---------  ---------- -----  ----

                17781                    12


评论

共有 条评论