www.pudn.com > tiaozhijietiao.rar > tiaozhijietiao.m


fs=700000000;%样频率  
f0=70000000;%载频 
fd=5000000; 
n=400; 
a=[1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0]; 
%//////////串并转换、差分编码 
a1=zeros(1,length(a)); 
a1(1)=1; 
for i=2:length(a) 
    a1(i)=xor(a(i),a1(i-1)); 
end 
I1=a1(1:2:length(a)); 
Q1=a1(2:2:length(a)); 
figure(1); 
subplot(4,1,1); 
stem(a);grid on; 
title('a'); 
subplot(4,1,2); 
stem(a1);grid on; 
title('a1'); 
subplot(4,1,3); 
stem(I1);grid on; 
title('I1'); 
subplot(4,1,4); 
stem(Q1);grid on; 
title('Q1'); 
%//////////采样 
I1=I1'; 
Q1=Q1'; 
fq=round(fs/fd); 
yy=[]; 
  for i=1:size(I1,2) 
      tmp=I1(:,ones(1,fq)*i)'; 
      yy=[yy tmp(:)]; 
  end 
I2=yy'; 
I3=I2+I2-1; 
yy=[]; 
  for i=1:size(Q1,2) 
      tmp=Q1(:,ones(1,fq)*i)'; 
      yy=[yy tmp(:)]; 
  end 
Q2=yy'; 
Q3=Q2+Q2-1 
figure(2); 
subplot(4,1,1); 
stem(I2);grid on;title('I2'); 
subplot(4,1,2); 
stem(I3);grid on;title('I3'); 
subplot(4,1,3); 
stem(Q2);grid on;title('Q2'); 
subplot(4,1,4); 
stem(Q3);grid on;title('Q3'); 
 
%////////////两路正交信号合成一路///// 
t=0:1/fs:(length(I3)-1)/fs; 
s1=cos(2*pi*f0*t); 
s2=sin(2*pi*f0*t); 
ss1=I3.*s1; 
ss2=Q3.*s2; 
s=ss1+ss2; 
figure(3); 
subplot(3,1,1); 
plot(ss1);grid on;title('ss1'); 
subplot(3,1,2); 
plot(ss2);grid on;title('ss2'); 
subplot(3,1,3); 
plot(t,s);grid on; 
title('DQPSK信号'); 
 
 
%///////频谱/////// 
nfft=2048; 
y=fft(s,nfft); 
ps1=abs(y(1:nfft/2)).^2; 
p1=ps1/max(ps1); 
f=fs*(0:(nfft/2-1))/nfft; 
figure(4); 
plot(f,p1);grid on; 
title('DQPSK频谱'); 
%/////////解调部分////// 
fs1=40000000; 
fq1=fs/fs1; 
s12=s(1:fq1:length(s)); 
t1=0:1/fs1:(length(s12)-1)/fs1; 
figure(5); 
plot(t1,s12);grid on;title('s12'); 
nfft=2048; 
y=fft(s12,nfft); 
ps1=abs(y(1:nfft/2)).^2; 
p1==ps1/max(ps1); 
f=fs1*(0:(nfft/2-1))/nfft; 
figure(6); 
plot(f,p1);grid on; 
 
title('DQPSK'); 
%///////////// 
ss_d1=s.*s1; 
ss_d2=s.*s2; 
figure(7); 
subplot(2,1,1); 
plot(ss_d1);grid on; 
subplot(2,1,2); 
plot(ss_d2);grid on; 
b1=fir1(30,100*2/fs,'low');% 
sd1=filter(b1,1,ss_d1);%察看 
sd2=filter(b1,1,ss_d2);% 
figure(8);grid on; 
subplot(2,1,1); 
plot(sd1);grid on; 
title('In'); 
subplot(2,1,2); 
plot(sd2);grid on; 
title('Qn'); 
%///////抽样判决/// 
fq=round(fs/fd); 
sdqpsk1=sd1(fq:fq:length(sd1)); 
for i=1:length(sdqpsk1) 
    if sdqpsk1(i)>0 
       sdqpsk1(i)=1; 
   else 
       sdqpsk1(i)=0; 
   end 
end 
sdqpsk2=sd2(fq:fq:length(sd2)); 
for i=1:length(sdqpsk2) 
    if sdqpsk2(i)>0 
       sdqpsk2(i)=1; 
   else 
       sdqpsk2(i)=0; 
   end 
end 
figure(9); 
subplot(2,1,1); 
stem(sdqpsk1); 
subplot(2,1,2); 
stem(sdqpsk2); 
%/////并串转换///// 
wq(1:2:20)=sdqpsk1; 
wq(2:2:20)=sdqpsk2; 
figure(10); 
stem(wq);grid on; 
%///////差分解码////// 
aq(1)=wq(1); 
for i=2:20 
    aq(i)=xor(wq(i),wq(i-1)) 
end 
figure(11); 
stem(aq); 
title('原始信号')