一、获取代码方式

获取代码方式1:
完整代码已上传我的资源: 【数字信号调制】基于matlab GUI ASK+OOK+BPSK+8PSK+QPSK+AM调制解调【含Matlab源码 1368期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、简介

1 绪论
调制:把消息信号寄托到载波的某个参数上,形成已调信号。
解调:调制的逆过程,从已调信号中恢复消息信号。

2 调制的目的
无线通信中,匹配信道特性,提高发射信号的频率,减小天线尺寸;频谱搬移,一条信道中同时传输多路信号,多路复用,提高信道利用率;扩展信号带宽,提高系统抗干扰能力;实现带宽与信噪比的互换(有效性和可靠性);利用电话线将PC机接入Internet,需要翻译模/数信号。

3 调制的分类
3.1 涉及的信号
消息信号,又称调制信号、基带信号;
载波:运载工具,常用的是正弦波、脉冲序列;
已调信号:受调载波,载有消息信号的信息,具有多种形式。
3.2 可以从不同角度分类
按调制信号的类型:模拟调制/数字调制
按已调信号的频谱结构:线性调制/非线性调制
按正弦载波的受调参量:幅度调制/频率调制/相位调制
按载波信号的类型:连续波调制/脉冲调制

4 幅度调制
4.1 一般模型
(1)理论基础:傅里叶变换
(2)一般模型
幅度调制:消息信号控制正弦载波的幅度。
方法:用消息信号通过相乘器乘上载波信号,再通过带通滤波器(时域卷积滤波器特性)。
举例:AM、DSB、SSB、VSB。

4.2 常规双边带调幅AM
t 域:已调信号的波形,调制/解调方法
f 域:已调信号的频谱,带宽B
AM信号的包络正比于消息信号的规律,因此可以采用简单的**包络检波方法(非相干解调)**解调;
频谱由载波、上边带USB、下边带LSB组成。带宽BAM=2fH;
幅度调制又称为线性调制;
应用:中短波调幅广播。
缺点:功率利用率低,最多达到50%

4.3 抑制载波双边带DSB
频谱由上边带USB、下边带LSB组成,没有了载波分量。带宽BDSB=BAM=2fH;
调制效率可达100%。
采用相干解调:
方法:用消息信号通过想乘器乘上相干载波信号,再通过低通滤波器(时域卷积滤波器特性)。
要求:载波同步(相干载波和载波信号同频同相)

4.4 单边带调制SSB
只传输一个边带,频带利用率高。带宽BSSB=BAM/2=fH;在频谱拥挤的通信场合,如短波通信、多路载波电话系统。低功耗特性。使用于移动通信系统。
缺点:设备复杂,存在技术难点,需要相干解调。

4.5 残留边带调制VSB
残留边带滤波器特性:在载频处具有互补对称特性;介于单边带与双边带之间的方案。

5 角度调制
正弦载波有三个参量:幅度、频率、相位。都可以携带消息信号。
其中,频率(FM)和相位(PM)都称为角度调制。
频率调制(FM)
幅度恒定,对瞬时相位对t求微分,得到瞬时角频率。
调频的频谱由载频分量wc两侧的无数多对边频wc±nwm组成,其幅度取决于mf;
理论上,调频的带宽无穷大;
实际中,用卡森公式计算FM带宽:BFM=2(mf+1)fm。fm为调制信号的最高频率
FM调制为非线性调制。FM解调也称鉴频 ,采用微分电路+包络检波实现。
FM的特点和应用
特点:幅度不变,包络恒定。
优势:抗噪能力强;
代价:占用较大信道带宽,频谱利用率低;
应用:高质量或信道噪声大的场合。如卫星通信、移动通信、微波通信等。

6 抗噪声性能
性能指标:输出信噪比、制度增益
输入信噪比:Ni=n0B。n0是噪声的单边功率谱密度,B=2fH是带宽,是基带带宽的2倍。

AM DSB SSB VSB(幅度调制)
相干解调器:线性解调,信号和噪声可以分开处理。
双边带和单边带调制的抗噪声性能相同。
小信噪比时,信号被干扰为噪声,产生门限效应。原因是包络检波的非线性解调作用。
信噪比固定。
FM(角度调制)
FM系统可以通过增加传输带宽来改善抗噪声性能(信噪比)。

总结
频谱利用率 SSB>VSB>DSB/AM>FM
抗噪声性能:FM>DSB/SSB>VSB>AM
设备复杂度:AM最简,DSB/FM次之,SSB最复杂

三、部分源代码

function varargout = digital_modulation(varargin)
%DIGITAL_MODULATION % Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @digital_modulation_OpeningFcn, ...'gui_OutputFcn',  @digital_modulation_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before digital_modulation is made visible.
function digital_modulation_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to digital_modulation (see VARARGIN)hold off;axes(handles.axes1);h=[1 1 0 1 0 0 1 1 1 0];hold off;bit=[];for n=1:2:length(h)-1;if h(n)==0 & h(n+1)==1se=[zeros(1,50) ones(1,50)];elseif h(n)==0 & h(n+1)==0se=[zeros(1,50) zeros(1,50)];elseif h(n)==1 & h(n+1)==0se=[ones(1,50) zeros(1,50)];elseif h(n)==1 & h(n+1)==1se=[ones(1,50) ones(1,50)];endbit=[bit se];endplot(bit,'LineWidth',1.5);grid on;axis([0 500 -1.5 1.5]);
%*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-axes(handles.axes3)hold off;fc=30;g=[1 1 0 1 0 0 1 1 1 0]; %modulanten=1;while n<=length(g)if g(n)==0tx=(n-1)*0.1:0.1/100:n*0.1;p=(1)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;else tx=(n-1)*0.1:0.1/100:n*0.1;p=(2)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;endn=n+1;end% Choose default command line output for digital_modulation
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes digital_modulation wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = digital_modulation_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- Executes on button press in random.
function random_Callback(hObject, eventdata, handles)
% hObject    handle to random (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
a=round(rand(1,10)); %genarar bits aleatorios
ran=[a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),a(9),a(10)];
set(handles.bit1,'String',ran(1));
set(handles.bit2,'String',ran(2));
set(handles.bit3,'String',ran(3));
set(handles.bit4,'String',ran(4));
set(handles.bit5,'String',ran(5));
set(handles.bit6,'String',ran(6));
set(handles.bit7,'String',ran(7));
set(handles.bit8,'String',ran(8));
set(handles.bit9,'String',ran(9));
set(handles.bit10,'String',ran(10));%*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
handles.bits=ran;h=handles.bits;
axes(handles.axes1)
hold off;
bit=[];
for n=1:2:length(h)-1;if h(n)==0 & h(n+1)==1se=[zeros(1,50) ones(1,50)];elseif h(n)==0 & h(n+1)==0se=[zeros(1,50) zeros(1,50)];elseif h(n)==1 & h(n+1)==0se=[ones(1,50) zeros(1,50)];elseif h(n)==1 & h(n+1)==1se=[ones(1,50) ones(1,50)];endbit=[bit se];
end
plot(bit,'LineWidth',1.5);grid on;
axis([0 500 -1.5 1.5]);%*-*-*-*-*-*-*-*-*-*-*-*-
hold off;
axes(handles.axes3);
cod=get(handles.select_mod,'Value');
switch cod
%*-*-*-*Modulation ASK*-*-*-*-*-*-*-*-*case 1hold off;axes(handles.axes3)fc=30;g=handles.bits; %modulanten=1;while n<=length(g)if g(n)==0tx=(n-1)*0.1:0.1/100:n*0.1;p=(1)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;
%    axis([0 n*2/fc -3 3]);else tx=(n-1)*0.1:0.1/100:n*0.1;p=(2)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;endn=n+1;end%*-*-*-*-*-*-*-Modulation OOK*-*-*-*-*-*-*-*-*-case 2hold off;axes(handles.axes3);t=0:0.001:1;m=1;fc=30;g=handles.bits; %modulanten=1;while n<=length(g)tx=(n-1)*1/length(g):0.001:n*1/length(g);p=(g(n))*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);hold on;axis([0 (n)*1/length(g) -1.5 1.5]);grid on;n=n+1;end
%*-*-*-*-*-*-*-Modulation BPSK*-*-*-*-*-*-*-*-*-*-*-case 3axes(handles.axes3)hold off;g=handles.bits;fc=10;n=1;while n<=length(g)if g(n)==0 %0 is -1tx=(n-1)*0.1:0.1/100:n*0.1;p=(-1)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;elsetx=(n-1)*0.1:0.1/100:n*0.1;p=(1)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;endn=n+1;end

四、运行结果






五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.

【数字信号调制】基于matlab GUI ASK+OOK+BPSK+8PSK+QPSK+AM调制解调【含Matlab源码 1368期】相关推荐

  1. 【图像去噪】基于matlab GUI butterworth+中值+维纳+小波图像去噪【含Matlab源码 520期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab GUI butterworth+中值+维纳+小波图像去噪[含Matlab源码 520期] 获取代码方式2: ...

  2. 【物理应用】基于matlab GUI气象参数计算综合指标和IAQI【含Matlab源码 2116期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[物理应用]基于matlab GUI气象参数计算综合指标和IAQI[含Matlab源码 2116期] 点击上面蓝色字体,直接付费下载,即可 ...

  3. 【语音处理】基于matlab GUI低通滤波器语音信号加噪与去噪【含Matlab源码 1708期】

    ⛄一.语音处理简介(附课程作业报告) 1 语音信号的特点 通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点: ①在频域内,语音信号的频谱分量主要集中在300-3400Hz的范围内.利用这 ...

  4. 基于JavaWeb Mybatis+MVC(JSP + servlet + javabean)的高校就业管理系统(含项目源码)

    基于JavaWeb Mybatis+MVC的高校就业管理系统 项目简介 基本功能简介 项目要求 概要设计 数据模型(E-R图) 数据库结构设计 主要页面展示 项目实现 创建项目 项目结构展示 项目关键 ...

  5. 【目标检测】基于matlab GUI背景差分算法视频运动物体跟踪【含Matlab源码 1915期】

    一.背景差分法和帧间差分法的车辆运动目标检测简介 1 引言 运动目标检测是从图像序列中检测运动目标.通过运动目标检测可以得到图像中的运动目标,获取图像中的运动信息.运动目标检测在医学辅助诊断.航天航空 ...

  6. 【图像加密】基于matlab GUI正交拉丁方+二维Arnold置乱图像加密【含Matlab源码 813期】

    ⛄一.正交拉丁方置乱及二维Arnold置乱简介 0 引言 随着通讯技术的飞速发展, 越来越多的领域需要传送数字图像信号, 因此信息的传送安全问题显得越来越重要.通常应用于数字图像通信的两种保护技术为: ...

  7. 【裂缝识别】基于matlab GUI路面裂缝识别(带面板)【含Matlab源码 1648期】

    ⛄一.简介 1 案例背景 随着国家对公路建设的大力投入,我国的公路通车总里程己经位居世界前列,这样进一步促进了我国经济建设的发展.随着公路的大量投运,公路日常养护和管理已经成为制约公路运营水平提高的瓶 ...

  8. 【口罩识别】基于matlab GUI RGB滤波+YCbCr+肤色标定口罩识别【含Matlab源码 1895期】

    ⛄一.口罩识别简介 口罩规范佩戴识别是基于人脸口罩检测结果进行的,该部分的输入是人脸口罩检测的输出且是有佩戴口罩的人脸.首先,将人脸部分的图像提取出来:然后映射到YCrCb颜色空间并进行非线性变换,经 ...

  9. 【ACO三维路径规划】基于matlab GUI蚁群算法无人机三维路径规划【含Matlab源码 254期】

    一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水下 ...

  10. 【目标跟踪】基于matlab GUI帧差法结合卡尔曼滤波行人姿态识别【含Matlab源码 1127期】

    ⛄一.基于人体特征识别和卡尔曼滤波的行人跟踪算法简介 1 基于体型和行为姿态特征的人体识别算法 从红外图像中可以得到目标与背景之间的灰度级差别,从而区分出有生命特征的运动物体,但仅从亮度特征无法区别出 ...

最新文章

  1. MySQL第4天:MySQL的架构介绍之修改数据库编码格式
  2. iclone7.8中文版
  3. net::ERR_INCOMPLETE_CHUNKED_ENCODING(php项目+nginx)
  4. 中如何计算工龄_在Substrate中如何计算交易权重
  5. OpenShift 4之唤醒休眠的OpenShift应用
  6. Android系统开发之唤醒与功耗
  7. 贝塔斯曼龙宇:李斌能征善战 提前七年兑现了自己的承诺
  8. 如何以静默方式将.REG文件添加到注册表
  9. 写给学生看的系统分析与验证笔记(十二)——验证ω-正则属性(Verifying ω-regular properties)
  10. 浅谈互联网一件新机(改机)发展历史
  11. 图像处理之计算任意点与轮廓点集中距离最近的点坐标
  12. 07 ,日志入库项目 :
  13. 学生会管理系统(SSM)vue+ssm+shiro
  14. 黑马12月开班丨2021年倒计时,你还有机会改变!
  15. JZOJ-senior-5935. 【NOIP2018模拟10.29】小凯学数学
  16. 使用MobaXterm的ssh登录阿里云服务器总是acess deind
  17. ESP8266-Arduino编程实例-MCP23017并行IO扩展驱动
  18. bzoj2246: [SDOI2011]迷宫探险
  19. 有多少人戴着黑帽子?
  20. css特效:鼠标滑过图片出现一道闪光效果

热门文章

  1. java switch的应用
  2. CodeForces - 816A Karen and Morning 解题
  3. 网站域名安全:泛解析处理及防护
  4. AutoPlay Menu Builder入门教程
  5. 清北第一套题(zhx)
  6. SPOJ DISUBSTR Distinct Substrings 后缀数组
  7. flex measure
  8. SELECT COUNT用法
  9. 《图解算法》学习笔记之广度优先搜索(breadth-first search, BFS)
  10. 扇贝有道180907每日一句