【数字信号调制】ASK调制解调(含误码率对比)系统【含GUI Matlab源码 2703期】

本文介绍了如何在MATLAB中实现不同的数字信号调制方法,如幅度调制(AM)、双边带调制(DSB)、单边带调制(SSB)和频率调制(FM),以及它们的解调原理和抗噪声性能。还提供了使用示例和MATLAB代码片段,包括调制、加噪声、解调和判决过程。
摘要由CSDN通过智能技术生成

在这里插入图片描述

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源: 【数字信号调制】基于matlab GUI ASK调制解调(含误码率对比)系统【含Matlab源码 2703期】
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏Matlab信号处理(初级版)

备注:
点击上面蓝色字体付费专栏Matlab信号处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab信号处理(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、调制解调简介

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 = ASK(varargin)
% ASK MATLAB code for ASK.fig
% ASK, by itself, creates a new ASK or raises the existing
% singleton*.
%
% H = ASK returns the handle to a new ASK or the handle to
% the existing singleton*.
%
% ASK(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in ASK.M with the given input arguments.
%
% ASK(‘Property’,‘Value’,…) creates a new ASK or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ASK_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ASK_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help ASK

% Last Modified by GUIDE v2.5 17-May-2023 15:04:02

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ASK_OpeningFcn, …
‘gui_OutputFcn’, @ASK_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before ASK is made visible.
function ASK_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 ASK (see VARARGIN)

% Choose default command line output for ASK
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes ASK wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.
function varargout = ASK_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 when selected object is changed in uibuttongroup1.
function uibuttongroup1_SelectionChangedFcn(hObject, eventdata, handles)
% hObject handle to the selected object in uibuttongroup1
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%% 基本参数
M=10; % 产生码元数
L=100; % 每码元复制L次,每个码元采样次数
Ts=0.001; % 每个码元的宽度,即码元的持续时间
Rb=1/Ts; % 码元速率1K
TotalT=MTs; % 总时间
Fs=1e5;
L=Fs
Ts;
dt=Ts/L;
t=0:dt:TotalT-dt; % 时间
%% 产生单极性波形
wave=[1 0 1 0 1 1 0 0 1 0];
fz=ones(1,L); % 定义复制的次数L,L为每码元的采样点数
x1=wave(fz,:); % 将原来wave的第一行复制L次,称为LM的矩阵
jidai=reshape(x1,1,L
M); % 产生单极性不归零矩形脉冲波形,将刚得到的LM矩阵,按列重新排列形成1(L*M)的矩阵

%% 2ASK调制
fc=10000; % 载波频率10kHz
zb=cos(2pifc*t); % 载波
ask2=jidai.*zb; % 2ASK的模拟调制

%% 信号经过高斯白噪声信道
noise_ask=awgn(ask2,40); % 信号ask2中加入白噪声,信噪比为SNR=40dB

%%解调部分
tz=noise_ask.*zb; % 相干解调,乘以相干载波

%% 加噪信号经过滤波器
%低通滤波器设计
fp=2*Rb; % 低通滤波器截止频率,乘以2是因为下面要将模拟频率转换成数字频率wp=Rb/(Fs/2)
b=fir1(30, fp/Fs, boxcar(31));% 生成fir滤波器系统函数中分子多项式的系数
% fir1函数三个参数分别是阶数,数字截止频率,滤波器类型
% 这里是生成了30阶(31个抽头系数)的矩形窗滤波器
[h,w]=freqz(b, 1,512); % 生成fir滤波器的频率响应
% freqz函数的三个参数分别是滤波器系统函数的分子多项式的系数,分母多项式的系数(fir滤波器分母系数为1)和采样点数(默认)512
lvbo=fftfilt(b,tz); % 对信号进行滤波,tz是等待滤波的信号,b是fir滤波器的系统函数的分子多项式系数

%% 抽样判决
pdst=1*(lvbo>0.5); % 滤波后的向量的每个元素和0.5进行比较,大于0.5为1,否则为0
% 取码元中间时刻值为判决值
panjue=[];

for j=(L/2):L:(L*M)
if pdst(j)>0
panjue=[panjue,1];
else
panjue=[panjue,0];
end
end

⛄四、运行结果

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

⛄五、matlab版本及参考文献

1 matlab版本
2014a

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

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

ask2问答系统是以php+MySQL进行开发的php问答系统源码ask2问答系统于2016年3月28发布开源,第一个版本V3.0,内置三套PC模板, default默认是百度问答模板 sowenda是高仿360问答的。 soso模板是仿腾讯soso问答界面。 一套wap模板,仿天涯问答的手机版。 pc和wap模板后台设置里自由切换,还可以绑定手机独立二级域名。 强大的搜索功能,支持xunsearch全文检索,seo友好,强大的标签自动识别功能,内置标签库,还有seo相关的优化,无需小白操心。 内置超强采集,好几十个问答网站规则内置,无需编写,支持防采集网站采集,2天采集30万数据不成问题。 ask2问答系统 更新日志: 1、采用全新的ZUI框架开发前端模板,zui基于bootstrap开发,完美兼容bt,并且扩展了更丰富的UI组件. 2、完善细节,从站内检索功能到seo站内聚合,一一做到。 3、支持积分充值,后台可配置支付宝设置,用户中心右侧导航选择积分充值即可。 4、强化编辑器功能,采用百度最新的UEditor编辑器,支持各种图片上传,还可以直接复制图片本地化保存,太完美了。 5、增加用户专栏,文章聚合,专栏展示用户文章,专栏首页随机切换内容,完爆seo,让爬虫每次光顾都能抓取不同内容,收录杠杠的。 6、后台界面大更新,焕然一新,并支持文章和问题百度推送 7、后台增加在线模板管理 8、采集功能进一步强化,支持各种浏览器在线采集,上百个采集规则随便选,上百个,你没看错,各类行业问答网站均包括在内,你不要问百度,搜搜,360问答,知乎这些了,小儿科。 9、完美支持广告投放,后台可以配置。 10、后台支持logo和banner大图配置,无需在繁琐的ftp上传 11、支持各类cms后台配置整合和dz整合,一键搞定 2016年11月1号更新: 1、强化验证码,防止绕过验证码发垃圾数据 2、增加根据用户等级设置不同角色能提问和回答问题数目限制,防止用户恶意发送内容 3、修改部分小bug
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值