基于MATLAB的二二进制数字系统的调制(包括2ask-2fsk-2psk-2dpsk)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、MATLAB编程实现仿真
用randint函数生成10个随机数,形成基带数字信号a
n
。由于一个FSK信号可以看成是两个不同载波的2ASK信号的叠加,故可利用:
生成已调信号,再通过傅里叶变换得到频谱,分析数据。
N=10;
x=[];
%调制信号生成
a=(randint(1,10,2));
for i=1:N
if a(i)==1
x(i*80-79:i*80)=ones(1,80); else
x(i*80-79:i*80)=zeros(1,80); end
end
figure(1)
subplot(4,1,1)
plot(x);
title('调制信号');
axis([0 800 -2 2]);
%载波信号
t=0.0125:0.0125:N;
ca1=sin(2*pi*2*t);
ca2=sin(2*pi*4*t);
subplot(4,1,2)
plot(ca1);
title('载波1');
axis([0 800 -2 2]);
subplot(4,1,3)
plot(ca2);
title('载波2');
axis([0 800 -2 2]);
%调制生成2ASK信号x1=~x;
fsk=x.*ca1+x1.*ca2;
subplot(4,1,4)
plot(fsk);
title('2FSK信号');
axis([0 800 -1.5 1.5]);
%频谱分析
m=length(fsk);
T=t(end);
df=1/T;
f=(-m/2:m/2-1)*df;
xf=fftshift(abs(fft(x))); figure(2);
subplot(4,1,1);
plot(f,xf);
title('调制信号频谱');
cf1=abs(fft(ca1));
subplot(4,1,2);
plot(f,cf1);
title('载波1信号频谱');
cf2=abs(fft(ca2));
subplot(4,1,3);
plot(f,cf2);
title('载波2信号频谱');
st1=fftshift(abs(fft(fsk))); sf=fftshift(st1);
subplot(4,1,4);
plot(f,sf);
title('2FSK信号频谱');