AM &DSB信号解调的MATLAB实现

简介: AM &DSB信号解调的MATLAB实现

AM &DSB信号解调的MATLAB实现


一、实验目的


掌握AM&DSB解调器电路原理;

掌握AM&DSB解调仿真原理。

了解MATLAB软件,学习应用MATLAB软件的仿真技术。它主要侧重于某些理论知识的灵活运用,以及一些关键命令的掌握,理解,分析等。


二、实验仪器

计算机、MATLAB软件


三、实验原理

(1)在接收端从AM已调信号中恢复出原始信号S(t)的过程称之为解调。对AM常用的解调方式有:非相干解调(检波)与相干解调(同步解调)。

AM的非相干解调是将AM信号通过一检波二极管,再经过一低通滤波器即可获取原始的模拟信号s(t)。AM的非相干解调不需要本地载波,此方法常用于民用通信设备中,可大大降低接收机的成本,提高整机通信的可靠性。

AM的同步解调是将接收的AM信号与本地相干载波(同步载波)相乘,经低通滤波器获得原始的模拟信号S(t)。同步解调需要在接收端产生与发送端频率相同的本地载波,该方法可提高解调器的性能(即提高接收机的灵敏度),但这也将使接收机复杂化。

“AM”调制信号产生模块电路如图1所示,解调模块电路如图2所示。

image.png


(2) DSB信号的解调

DSB信号解调电路由相乘器和低通滤波器组成。如图3所示

image.png

图3 振幅解调电路的组成框图

在电路中,将u(t)先与一个等幅余弦电压uo(t)相乘,要求这个电压与输入载波信号同频同相,即uc(t)=UcMcoswct,称为同步信号,相乘结果是u(t)频谱被搬移到ωc的两边,一边搬到2ωc上,构成载波角频率为2ωc的双边带调制信号,它是无用的寄生分量;另一边搬到零频率上,这样,u(t)的一边带就必将被搬到负频率轴上,负频率是不存在的,实际上,这些负频率分量应叠加到相应的正频率分量上,构成实际的频谱,因此它比搬移到2ωc上的任一边带频谱在数值上加倍。而后用低通滤波器滤除无用的寄生分量,取出所需的解调电压。

必须指出,同步信号uc(t)必须与输入信号保持严格同步(同频、同相)是实现上述电路模型的关键,故将这种检波电路称为同步检波电路。否则检波性能就会下降。

四、实验内容

在MATLAB中实现下面例题的调制程序,:

信源:m(t)=sqrt(2)cos(2pit);

载波:s(t)=A.cos(20pit)

求当AM:A=2;DSB:A=1;调制信号的相干解调后的信号波形


1、求出AM/DSB/SSB/VSB调制信号的相干解调后的信号波形。

然后对处理好的实验结果进行分析。


实验目的:运用MATLAB软件编写相应的程序,求出AM/DSB/SSB/VSB调制信号的相干解调后的信号波形。实验程序:


////

dt=0.01;  %时间采样间隔
fmax=1;   %信源最高频率
B=2*fmax;
fc=10;    %载波中心频率
T=5;      %信号时长
N=floor(T/dt);
t=[0:N-1]*dt;
mt=sqrt(2)*cos(2*pi*fmax*t);
%AM modulation
A=2;
am=(A+mt).*cos(2*fc*pi*t);
amd=am.*cos(2*fc*pi*t);
amd=amd-mean(amd);
[f,AMf]=FFT_SHIFT(t,amd);
B=2*fmax;
[t,am_t]=RECT_LPF(f,AMf,B);
%DSB modulation
dsb=mt.*cos(20*pi*t);
dsbd=dsb.*cos(20*pi*t);
dsbd=dsbd-mean(dsbd);
[f,DSBf]=FFT_SHIFT(t,dsbd);
[t,dsb_t]=RECT_LPF(f,DSBf,B);
%SSB modulation
ssb=real(hilbert(mt).*exp(1i*2*pi*fc*t));
ssbd=ssb.*cos(2*fc*pi*t);
ssbd=ssbd-mean(ssbd);
B=2*fmax;
[f,SSBf]=FFT_SHIFT(t,ssbd);
[t,ssb_t]=RECT_LPF(f,SSBf,B);
%VSB modulation
vsb=mt.*cos(2*pi*fc*t);
[f,vsbf]=FFT_SHIFT(t,vsb);
[t,vsb]=vsbmd(f,vsbf,0.2*fmax,1.2*fmax,fc);
vsbd=vsb.*cos(2*pi*fc*t);
vsbd=vsbd-mean(vsbd);
[f,VSBf]=FFT_SHIFT(t,vsbd);
[t,vsb_t]=RECT_LPF(f,VSBf,2*fmax);

信息输出

%plot m(t),am(t),dsb(t),ssb(t),vsb(t)
subplot(5,1,1);
plot(t,mt);
title('相干解调后的信号与输入信号的比较');
ylabel('m(t)');
xlabel('t');
subplot(5,1,2);
plot(t,am_t);
ylabel('am(t)');
xlabel('t');
subplot(5,1,3);
plot(t,dsb_t);
ylabel('dsb(t)');
xlabel('t');
subplot(5,1,4);
plot(t,ssb_t);
ylabel('ssb(t)');
xlabel('t');
subplot(5,1,5);
plot(t,vsb_t);
ylabel('vsb(t)');
xlabel('t');
% RECT_LPF函数
function[t,st]=RECT_LPF(f,Sf,B)
df=f(2)-f(1);
fN=length(f);
RectH=zeros(1,fN);
BN=floor(B/df);
BN_SHIFT=[-BN:BN-1]+floor(fN/2);
RectH(BN_SHIFT)=1;
Yf=RectH.*Sf;
[t,st]=IFFT_SHIFT(f,Yf);
% IFFT_SHIFT函数
function [t,st]=IFFT_SHIFT(f,Sf)
df=f(2)-f(1);
fmax=(f(end)-f(1)+df);
dt=1/fmax;
N=length(f);
t=[0:N-1]*dt;
Sf=fftshift(Sf);
st=fmax*ifft(Sf);
st=real(st);
% vsbmd函数
function [t,st]=vsbmd(f,sf,B1,B2,fc)%低通滤波器
df=f(2)-f(1);
T=1/df;
hf=zeros(1,length(f));
bf1=[floor((fc-B1)/df):floor((fc+B1)/df)];
bf2=[floor((fc+B1)/df):floor((fc+B2)/df)];
f1=bf1+floor(length(f)/2);
f2=bf2+floor(length(f)/2);
stepf=1/length(f1);
hf(f1)=0:stepf:1-stepf;
hf(f2)=1;
f3=-bf1+floor(length(f)/2);
f4=-bf2+floor(length(f)/2);
hf(f3)=0:stepf:(1-stepf);
hf(f4)=1;
yf=hf.*sf;
[t,st]=IFFT_SHIFT(f,yf);
st=real(st);

实验结果分析

为了无失真地恢复原基带信号,接受端必须提供一个与接受的已调载波同步的本地载波,它与接受的调制信号相乘后,经低通滤波器去除低频分量,即可得到原始的基带调制信号。

相干解调的特点是无门限效应,使用AM、DSB、SSB、VSB。而只要求载波同步。

微信图片_20221008131647.png

三、 实验设备

1、 计算机

2、 软件MATLAB

四、写写你对本次实验的心得体会及意见(字数不少于400)

解调是在接收端将已调波信号从高频段变换到低频段, 恢复原调制信号。调制与解调是通信原理方向最主要的模块之一,先是通过在课堂上对理论知识的学习,反复研究,了解了调制与解调系统的基本方式以及其原理。再将理论在实验中得到验证和应用,是我们学习当中的一个问题。

从这次实验中,见识到了MATLAB软件处理的强大之处。我们不仅加深理解和巩固了理论课上所学习的有关模拟调制技术和相干解调的基本概念、基本理论和基本方法、而且锻炼了分析和解决问题的能力。同时对MATLAB的一些基本操作和应用有了更深入的了解。如:基本信号波形的输出,RECT_LPF、IFFT_SHIFT、vsbmd函数的使用等。

但对MATLAB软件的一些函数处理还不熟悉,还是会出现函数没有定义的编译错误。后续需要我们自己学习和思考,尽快熟悉对matlab软件的使用。

这次实验较比上星期速度快了很多,但还是会出现因为粗心代码写错等马虎的毛病,过程中会通过微信和同学交流,互相学习。后期我会强对MATLAB软件的学习和研究,认真做好接下来的每一次实验。



相关文章
|
机器学习/深度学习 数据采集 算法
【信号识别】识别半监督粗糙模糊拉普拉斯特征图(Matlab代码实现)
【信号识别】识别半监督粗糙模糊拉普拉斯特征图(Matlab代码实现)
221 0
|
安全 算法 自动驾驶
使用SSTL规范控制信号化交叉口研究(Matlab代码实现)
使用SSTL规范控制信号化交叉口研究(Matlab代码实现)
189 6
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
机器学习/深度学习 算法 语音技术
【语音分离】通过分析信号的FFT,根据音频使用合适的滤波器进行语音信号分离(Matlab代码实现)
【语音分离】通过分析信号的FFT,根据音频使用合适的滤波器进行语音信号分离(Matlab代码实现)
361 4
|
算法 Python
【国防科大硕士论文】V调频信号脉冲压缩+V-FM ISAR成像研究(Matlab代码实现)
【国防科大硕士论文】V调频信号脉冲压缩+V-FM ISAR成像研究(Matlab代码实现)
237 1
|
编解码 资源调度 算法
【信号处理】时序数据中的稀疏辅助信号去噪和模式识别(Matlab代码实现)
【信号处理】时序数据中的稀疏辅助信号去噪和模式识别(Matlab代码实现)
262 1
|
数据格式
表面肌电信号(sEMG)完整处理流程 MATLAB
表面肌电信号(sEMG)完整处理流程 MATLAB
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
1055 0
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
1291 0
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
440 0

热门文章

最新文章