📄 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('原始信号')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -