序
上一篇对信号调制有进行了些介绍,本篇将对调制后的信号做还原,即解调。偷个懒,只讲几组比较有代表性的解调信号。
信号的调制可以理解成是原信号“叠加”在载波信号上,所以对于解调的简单理解,就可以是:把载波信号去除,剩下的便是原信号了~
解调的方式有相关解调和使用匹配滤波器,本篇就只介绍用相干解调来对调制信号做解调。
还有个前提要说下,因为实际上,接收机接收到的被调制的信号其实会和本地用于相关的载波信号不同步,所以在去载波前或者去载波后可能会有需要做另外的处理,从而实现信号同步,然后做另外的信号处理,不过不是本篇的需求了,所以本篇用到的信号就假设是个已经同步的调制信号了。
BASK信号解调
BASK属于一维的信号,解调也比较简单,直接上实例看效果吧。示例的过程大概为:先产生数据,并叠加白噪声信号模拟实际的干扰,再进行相干解调,最后通过检测器输出结果。
示例
clear all
close all
fs=1e3;
t=0:1/fs:1-1/fs;%1s
a=randi(2,1,10)-1;%随机数
s=a(ceil(10*t+0.01)).*cos(2*pi*100*t);%生成BASK信号
r=awgn(s,0);%加白噪声,信噪比为0dB
%开始解调
T=0:1/fs:(1-1/fs)/10;%100ms
carrier=cos(2*pi*100*T);
for n=0:9
result=trapz(T,r(n*100+1:n*100+100).*carrier);%trapz是个求积分的函数,先将信号与载波做相关,再trapz做100ms的相干积分
if result>0.1/4%检测器的判断阈值,即相干的阈值,可以根据情况进行设定该阈值~
output(n+1)=1;
else
output(n+1)=0;
end
end
%绘图
subplot(221);plot(t,a(ceil(10*t+0.01)));title('原信号');
subplot(222);plot(t,s);title('调制信号');
subplot(223);plot(t,r);title('调制信号加噪');
subplot(224);plot(t,output(ceil(10*t+0.01)));title('解调结果');