Matlab系列之信号解调

上一篇对信号调制有进行了些介绍,本篇将对调制后的信号做还原,即解调。偷个懒,只讲几组比较有代表性的解调信号。

信号的调制可以理解成是原信号“叠加”在载波信号上,所以对于解调的简单理解,就可以是:把载波信号去除,剩下的便是原信号了~

解调的方式有相关解调和使用匹配滤波器,本篇就只介绍用相干解调来对调制信号做解调。

还有个前提要说下,因为实际上,接收机接收到的被调制的信号其实会和本地用于相关的载波信号不同步,所以在去载波前或者去载波后可能会有需要做另外的处理,从而实现信号同步,然后做另外的信号处理,不过不是本篇的需求了,所以本篇用到的信号就假设是个已经同步的调制信号了。

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('解调结果');

结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值