基于Matlab----MSK调制与解调

一、题目

MSK调制解调

二、仿真要求

画出MSK信号产生的信息、I路、Q路信号对比图以及接收端解调的信息恢复的对比图。

三、主要代码

n=10000;
count=100;
N=n/count;	%N=100
r=rand(1,N-1);
for i=1:N-1,
if (r(i)>=0.5) r(i)=1;
else r(i)=-1; end;
end;

for i=1:n-count	% ?9900??
R(i)=r(((i-1)-mod((i-1),count))/count+1); end;	%
a(1)=1;
for i=2:N
if r(i-1)==1 a(i)=-a(i-1);
else a(i)=a(i-1);
end;
end;

for i=1:n
A(i)=a(((i-1)-mod((i-1),count))/count+1); 
end;

for i=1:N
if(mod(i,2))
l(i)=a(i);
l(i+1)=a(i);
else q(i)=a(i);
q(i-1)=a(i); 
end;
end;

for i=1:n
I(i)=l(((i-1)-mod((i-1),count))/count+1); 
end;
for i=1:n
Q(i)=q(((i-1)-mod((i-1),count))/count+1);
end;
ts=0.0001;
Ts=ts*count; 
fs=1/ts; 
fc=5/(2*Ts); 
t0=Ts*N-ts;
f=1/(4*Ts);
df=0.3;
tI=[-Ts:ts:t0-Ts];
tQ=[0:ts:t0];
tQ_R=[0:ts:t0-Ts];
c=2*pi*f;
u=I.*cos(c*tI);
v=Q.*sin(c*tQ);
U=u.*cos(2*pi*fc*tI);
V=v.*sin(2*pi*fc*tQ); 
for i=count+1:n
W(i)=U(i)+V(i-count); 
end;
figure 
subplot(4,1,1);
plot(tQ_R,R,'k');
axis([-Ts,0.1,-2,2]);
grid on 
subplot(4,1,2);
plot(tI,A,'k');axis([-Ts,0.1,-2,2]);
grid on
subplot(4,1,3);
plot(tI,I,'k');
axis([-Ts,0.1,-2,2]);
title('I');
grid on
subplot(4,1,4); plot(tQ,Q,'k');axis([-Ts,0.1,-2,2]);
title('Q');
grid on 
figure
subplot(3,1,1); 
plot(tI,U,'k');
axis([-Ts,0.1,-2,2]); 
title('I路信号');
grid on 
subplot(3,1,2); 
plot(tQ,V,'k');
axis([-Ts,0.1,-2,2]); 
title('Q路信号');
grid on

subplot(3,1,3); 
plot(tI,W,'k');
axis([-Ts,0.1,-2,2]);
title('MSK');
grid on

四、仿真结果

MSK信号产生的信息:
基于Matlab----MSK调制与解调_第1张图片I路、Q路信号对比图以及接收端解调的信息:
基于Matlab----MSK调制与解调_第2张图片

你可能感兴趣的:(matlab,信号处理,数字信号处理)