【Signal系列】调频信号FM相干解调与非相干解调原理及其实现

Date: 2019.3.26


前言

    回想一下大学时期学习的通信原理,还记得多少东西呢,额,调制解调,基带信号,调制信号,似乎没有多少了。。。。不用是硬伤啊。下面对调频信号FM的相干解调进行分析并实现,网上非相干解调的实现非常多,但是相干解调由于应用较少,实现也比较少。

1、参考

高斯白噪声及Matlab常用实现方法
FM调制解调
【通信基础知识】白噪声、相关解调和相干解调
AM、FM、DSB、SSB、ISB信号及其频谱
对SSB信号的调制以及相干解调过程进行仿真
相干解调与非相干解调

2、相干解调与非相干解调

区别:相干解调表明本地的载波和发送载波同频同相,而非相干解调则不必关注发送载波是什么相位。

相干解调:
接收机接收到的信号为已调信号,该信号通过解调器再次与一个载波信号相乘。
解调后的信号包含一个低频信号 和一个高频成分,用一个低通滤波器把高频成分滤掉,就得到了要传递的基带信号。以上这个解调过程就是相干解调。

调频指数:
调频指数Mf是最大频偏Δfm与调制信号频率F的比值:

Mf=Δfm/F

窄带调频:
就是指Mf远小于1,即最大频偏远远小于调制信号频率的调频信号。

3、调制方式

(一) 模拟调制:用连续变化的信号去调制一个高频正弦波(载波信号)。

主要有:

  1. 幅度调制(调幅AM,双边带调制DSBSC,单边带调幅SSBSC,残留边带调制VSB以及独立边带ISB);

  2. 角度调制(调频FM,调相PM)两种。因为相位的变化率就是频率,所以调相波和调频波是密切相关的;

(二) 数字调制:用数字信号对正弦或余弦高频振荡进行调制。

主要有:

  1. 振幅键控ASK;

  2. 频率键控FSK;

  3. 相位键控PSK;

(三) 脉冲调制:用脉冲序列作为载波进行调制。

主要有:

  1. 脉冲幅度调制(PAM:Pulse Amplitude Modulation);

  2. 脉宽调制(PDM:Pulse Duration Modulation);

  3. 脉位调制(PPM:Pulse Position Modulation);

  4. 脉冲编码调制(PCM:Pulse Code Modulation) ;

4、相干解调Matlab代码实现(部分)

这里仅提供了相干解调的部分代码,需要完整代码可通过QQ(2963033731)联系我。

%生成FM信号
clc
clear all;
close all;
%%%%%%%%%%%%%%%%%%FM调制%%%%%%%%%%%%%%%%%%%%%
ps = 625000;                    % 数据率625KHz
Fs = 80*10^4;                   % 80M采样率
dt = 1/Fs;                      % 采样间隔
a  = 1000;                      
t  = 0:dt:(a*Fs/ps-1)/Fs;       % 产生时间序列
N  = length(t)-1;
am = 5;                         % 设定调制信号幅度
fm = 15*10^2;                   % 调制信号频率
fc = 5*10^6;                    % 载波频率5M
mt = am*sin(2*pi*fm*t);         % 生成调制信号
ct = cos(2*pi*fc*t);            % 生成载波信号
kf = 10000;                     % 调频系数  频偏75kHz

integral_mt(1)=0;
for i=1:N                                %积分
    integral_mt(i+1)=integral_mt(i)+mt(i)*dt;
end
%figure(100);plot(t,integral_mt); title('integral_mt');
sfm= am*cos(2*pi*fc*t+2*pi*kf*integral_mt); %已调信号

%%%%%%%%%%%%画图%%%%%%%%%%%%
figure(1);
subplot(311);
plot(t,mt); title('调制信号时域');
%axis([0 10^(-3) -5 5]);  
subplot(312);plot(t,ct); title('载波信号时域');
%axis([0 10^(-5) -1 2]);  
subplot(313);plot(t,sfm);title('FM已调信号时域');
%axis([0 10^(-5) -5 5]);  

实验效果图:【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第1张图片

【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第2张图片

【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第3张图片

【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第4张图片

5、非相干解调Matlab代码实现(部分)

这里仅提供了非相干解调的部分代码,需要完整代码可通过QQ(2963033731)联系我。

% 
% dt=0.001;                                  %设定时间步长
% t=0:dt:1.5;                                  %产生时间向量
% am=15;                                      %设定调制信号幅度←可更改
% fm=15;                                       %设定调制信号频率←可更改
% mt=am*cos(2*pi*fm*t);            %生成调制信号
% fc=50;                                        %设定载波频率←可更改
% ct=cos(2*pi*fc*t);                      %生成载波
% kf=10;                                        %设定调频指数
% int_mt(1)=0;				    	      %对mt进行积分
% for i=1:length(t)-1  
% int_mt(i+1)=int_mt(i)+mt(i)*dt;
% end 
% sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt); 		%调制,产生已调信号
% plot(sfm)

echo   off       
close  all
clear  all
clc
%FM调制
dt=0.001;                                   %设定时间步长
t=0:dt:1.5;                    	           %产生时间向量
am=5;                                      %设定调制信号幅度
fm=5;                                      %设定调制信号频率
mt=am*cos(2*pi*fm*t);                        %生成调制信号
fc=50;                                      %设定载波频率
ct=cos(2*pi*fc*t);                             %生成载波
kf=10;                                      %设定调频指数
int_mt(1)=0;
for i=1:length(t)-1  
int_mt(i+1)=int_mt(i)+mt(i)*dt;               %求信号m(t)的积分
end                                          %调制,产生已调信号
sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt);            %调制信号
%添加高斯白噪声
sn1=10;                                     %设定信躁比(小信噪比)
sn2=30;                                     %设定信躁比(大信噪比)
sn=0;                                       %设定信躁比(无信噪比)
db=am^2/(2*(10^(sn/10)));                 %计算对应的高斯白躁声的方差
n=sqrt(db)*randn(size(t));                      %生成高斯白躁声
nsfm=n+sfm;                       %生成含高斯白躁声的已调信号(信号通
%过信道传输)
%FM解调
for i=1:length(t)-1                          %接受信号通过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;
end
diff_nsfmn = abs(hilbert(diff_nsfm)); %hilbert变换,求绝对值得到瞬时%幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn-zero;
%时域到频域转换
ts=0.001;                                    %抽样间隔
fs=1/ts;                                      %抽样频率
df=0.25;                          %所需的频率分辨率,用在求傅里叶变换
%时,它表示FFT的最小频率间隔
%对调制信号m(t)求傅里叶变换
m=am*cos(2*pi*fm*t);                         %原调信号
fs=1/ts;
if nargin==2
n1=0;
else
n1=fs/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));
M=fft(m,n);
m=[m,zeros(1,n-n2)];
df1=fs/n;                       %以上程序是对调制后的信号u求傅里变换
M=M/fs;                                %缩放,便于在频铺图上整体观察
f=[0:df1:df1*(length(m)-1)]-fs/2;            %时间向量对应的频率向量

实验效果图:

【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第5张图片
【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第6张图片
【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第7张图片
【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第8张图片
【Signal系列】调频信号FM相干解调与非相干解调原理及其实现_第9张图片


THE END!

在这里插入图片描述

你可能感兴趣的:(【通信与信号原理】,【实用毕设项目】)