【模拟信号】基于matlab标准调幅信号产生+解调【含Matlab源码 984期】

2021/6/19 14:26:46

本文主要是介绍【模拟信号】基于matlab标准调幅信号产生+解调【含Matlab源码 984期】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、简介

1 调制原理
常规双边带调幅又叫标准调幅,简称调幅(AM)。假设调制信号 m(t) 的平均值为 0,将其加上一个直流分量 A0 后与载波相乘就可以得到AM信号。
调制模型如下图所示:
在这里插入图片描述
2 解调原理
对于AM信号来说,使用两种解调方式:相干解调和非相干解调均可。在通常情况下,因为其包络与调制信号 m(t)的形状、波形起伏完全一致。故可以使用实现较为简便的包络检波法来恢复原信号。
包络检波器如下图所示:
在这里插入图片描述
其中,利用的原理分别是二极管的单向导通性、电容的高频旁路特性和电容的隔直特性。

二、源代码

t0=0.1; 
fs=12000; %采样频率
fc=1000;%载波频率
Vm=2;%载波振幅
A0=1;%直流分量
n=-t0/2:1/fs:t0/2;
x=cos(150*pi*n);%调制信号
y2=Vm*cos(2*pi*fc*n);%载波信号
N=length(x);
Y2=fft(y2);
figure(1);
function [b,a] = u_buttap(N,Omegac);
% Unnormalized Butterworth Analog Lowpass Filter Prototype
% --------------------------------------------------------
% [b,a] = u_buttap(N,Omegac);
%      b = numerator polynomial coefficients of Ha(s)
%      a = denominator polynomial coefficients of Ha(s)
%      N = Order of the Butterworth Filter
% Omegac = Cutoff frequency in radians/sec
%
[z,p,k] = buttap(N);
      p = p*Omegac;
      k = k*Omegac^N;
      B = real(poly(z));
      b0 = k;
      b = k*B;
      function [b,a] = imp_invr(c,d,T)
% Impulse Invariance Transformation from Analog to Digital Filter
% ---------------------------------------------------------------
% [b,a] = imp_invr(c,d,T)
%  b = Numerator polynomial in z^(-1) of the digital filter
%  a = Denominator polynomial in z^(-1) of the digital filter
%  c = Numerator polynomial in s of the analog filter
%  d = Denominator polynomial in s of the analog filter
%  T = Sampling (transformation) parameter
%
[R,p,k] = residue(c,d);
p = exp(p*T);
% 注:  wp(或Wp)为通带截止频率   ws(或Ws)为阻带截止频率   Rp为通带衰减  As为阻带衰减
%butterworth低通滤波器原型设计函数  要求Ws>Wp>0    As>Rp>0 
function [b,a]=afd_butt(Wp,Ws,Rp,As)
N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws)));
    %上条语句为求滤波器阶数      N为整数
    %ceil 朝正无穷大方向取整

三、运行结果

在这里插入图片描述
在这里插入图片描述

四、备注

版本:2014a
完整代码或代写加1564658423



这篇关于【模拟信号】基于matlab标准调幅信号产生+解调【含Matlab源码 984期】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程