ssb的matlab仿真,单边带调制(SSB调制)的理论基础和MATLAB仿真
前言
《通讯原理》这门课程的第一次研讨中,老师提供了一个关于SSB调制的研讨方向。本文汇总了咱们小组准备的资料,分红SSB的理论实现部分和基于MATLAB的仿真部分两部分,带领你们详细探讨SSB调制过程,但愿你们有所收获。(若是各位看官发现问题,还请不吝指出,谢谢~)html
1、SSB调制的起源
1. 信号的幅度调制:
《通讯原理》(第2版)的定义:用消息信号去控制载波的瞬时幅度,使载波的幅度随调制信号而变化。
听着很抽象是否是?如下是通俗易懂版本:
无线通讯的发射端须要把信号加在一个功率很大的载波信号上,才可以确保在很远的地方接收到信号,这个过程能够参考射频传输加以了解。
网络
2. AM和DSB-SC:
常规调幅(AM):
时域表达式:
优势:接收端的制造成本低(只须要使用包络检波电路就能够实现);
在须要大量接收机的时候有优点;
缺点:调制效率不高(发送的过程当中发送了大量纯载波,也就是“1”);
抑制载波双边带调制(DSB-SC):
时域表达式:
优势:没有了载波“1”,传输效率能够达到100%;
缺点:提升了接收端的成本(须要使用锁相环进行相干解调);
dom
3. SSB调制:
改进:DSB-SC使用的双边带调制,在频带资源很紧张的状况下,传输双边带显然会形成资源浪费,由于根据傅里叶变换的性质,实函数(真实传输的信号)的正负频率部分是共轭对称的。函数
实现方式一:滤波法
用滤波法产生SSB信号的原理框图以下:
性能
由上图可知,边带滤波器有两种,其中,Husb(w)用于剔除下边带,Hlsb(w)用于剔除上边带。spa
实现方式二:相移法(MATLAB仿真)
用相移法产生SSB信号的原理框图以下:
.net
2、MATLAB仿真
1.Hilbert变换的仿真:
理论基础部分:3d
解析信号 = 原(实)信号 + j * 通过Hilbert变换以后的原信号,即:z(t) = x(t) + j * hilbert(x(t));code
MATLAB中的hilbert()函数获得的是复信号,缘由为:hilbert()的做用是将原信号中正频率的部分相移 -π/2,负频率部分相移π/2,所以须要经过实部和虚部一块儿表示信号(能够浏览附录一的图片加以理解);orm
关键代码展现:
%%
%时域分析
ts = 0.0025;
fs = 1/ts;
N = 200;
f = 50;
k = 0:N-1;
t = k*ts;
% 结论:sin信号通过Hilbert变换后变为cos信号
y = sin (2* pi *f*t);
yh = hilbert(y); % matlab函数获得信号是合成的复信号
yi = imag (yh); % 虚部为相移以后的原信号
%%
%频域分析
y_length=length(y);
yi_length=length(yi);
NFFT_y = 2^nextpow2(y_length);
NFFT_yi = 2^nextpow2(yi_length);
F_Y_domain = (fs/2)*linspace(0,1,NFFT_y/2);
F_YI_domain = (fs/2)*linspace(0,1,NFFT_yi/2);
Y = fft(y,NFFT_y)/y_length;
YI = fft(yi,NFFT_yi)/yi_length;
Amp_Y = 2*abs(Y(1:NFFT_y/2));
Amp_YI = 2*abs(YI(1:NFFT_yi/2));
ANG_Y = angle(Y(1:NFFT_y/2));
ANG_YI = angle(YI(1:NFFT_yi/2));
仿真结果展现:
2.“sin(t)”+"cos(t)"的仿真:(以正弦信号为例验证Hilbert变换)
理论基础部分:
正弦函数的FT变换以下:
咱们不妨作如下尝试来验证Hilbert变换:
a. 对通过hilbert变换以后的正弦信号翻转π/2(即*j),而后看这个处理以后的信号在实轴的投影,若是这个信号的投影为0,而且它的相位谱和原信号的相位谱相同,则说明Hilbert变换确实改变了信号的相位;
b. 看原信号和通过上述特殊处理的信号相加获得的叠加信号的频谱,若是在正频率上的幅度谱是直接相加获得的,则说明Hilbert变换确实没有改变信号的幅度谱。
关键代码展现:
%%
%信号翻转
y = sin (2* pi *f*t);
yh = hilbert(y); % matlab函数获得信号是合成的复信号
yi = j * imag (yh); % *j 作翻转
%%
%信号叠加
y_yi = y + yi;
y_yi_length=length(y_yi);
NFFT_y_yi = 2^nextpow2(y_yi_length);
F_Y_YI_domain = (fs/2)*linspace(0,1,NFFT_y_yi/2);
Y_YI = fft(y_yi,NFFT_y_yi)/y_yi_length;
Amp_Y_YI = 2*abs(Y_YI(1:NFFT_y_yi/2));
ANG_Y_YI = angle(Y_YI(1:NFFT_y_yi/2));
仿真结果展现:
3.SSB的仿真:(以理想的“u(t)-u(t-1) ”信号做为原信号)
理论基础部分:
本仿真过程当中采用的是剔除下边带SSB调幅法,即:
因为MATLAB中的Hilbert()变换阶数有限,因此对一个理想的窗函数进行Hilbert变换以后,得不到理想的冲击函数,而是有必定的高度;
因为Hilbert变换在频率为零的附近没有定义,为了保证幅度谱的连续性,MATLAB会强制在零频率幅值,因此一个理想的窗函数通过Hilbert变换以后,在频域上得不到理想的sinc函数;
载波的频率为5000hz,因此原信号和通过了Hilbert变换以后的信号相加获得的叠加信号的幅度谱,在5000hz的右边(上边带)为两个信号的幅度谱直接相加,在5000hz的左边(下边带)为两个信号的幅度谱直接相减;
因为MATLAB都是使用DFT进行信号的处理,因此仿真出来的结果不会出现理想的状况。
关键代码展现:
变量表示的意思:
y:cos载波信号;y_h:sin载波信号;
m:原信号; m_h:通过Hilbert变换以后的原信号;
y_m:原信号加载在cos载波信号;y_h_m_h:通过Hilbert变换以后的原信号加载在sin载波信号;
y_m_y_h_m_h:y_m + y_h_m_h
%%
%定义相移法中用到的载波
ts = 0.000025;
fs = 1/ts;
N_zai = 200;
f_zai = 5000;
k = 0:N_zai;
t_zai = k*ts;
%获得cos载波信号
y = cos (2* pi *f_zai*t_zai);
yh = hilbert(y);
%获得sin载波信号
y_h = imag (yh);
%%
%原函数:使用理想的u(t)-u(t-1) (时域)
f_yuan = 50;
t = -2:1/f_yuan:2;
ut1 = stepfun(t,0);
ut2 = stepfun(t,1);
m = ut1 - ut2;
mh = hilbert(m);
m_h = imag (mh);
%原函数:使用理想的u(t)-u(t-1) (频域)
m_length=length(m);
NFFT_m = 2^nextpow2(m_length);
F_M_domain = (fs/2)*linspace(0,1,NFFT_m/2);
M = fft(m,NFFT_m)/m_length;
Amp_M = 2*abs(M(1:NFFT_m/2));
M_H = fft(m_h,NFFT_m)/m_length;
Amp_M_H = 2*abs(M_H(1:NFFT_m/2));
%%
%SSB的相移过程:(默认Ac=1)
y_m = m.*y;
y_h_m_h = (j*m_h).*(j*y_h);
y_m_y_h_m_h = y_m + y_h_m_h;
y_m_length=length(y_m);
y_h_m_h_length=length(y_h_m_h);
y_m_y_h_m_h_length=length(y_m_y_h_m_h);
NFFT_y_m = 2^nextpow2(y_m_length);
NFFT_y_h_m_h = 2^nextpow2(y_h_m_h_length);
NFFT_y_m_y_h_m_h = 2^nextpow2(y_m_y_h_m_h_length);
F_Y_M_domain = (fs/2)*linspace(0,1,NFFT_y_m/2);
F_Y_H_M_H_domain = (fs/2)*linspace(0,1,NFFT_y_h_m_h/2);
F_Y_M_Y_H_M_H_domain = (fs/2)*linspace(0,1,NFFT_y_m_y_h_m_h/2);
Y_M = fft(y_m,NFFT_y_m)/y_m_length;
Y_H_M_H = fft(y_h_m_h,NFFT_y_h_m_h)/y_h_m_h_length;
Y_M_Y_H_M_H = fft(y_m_y_h_m_h,NFFT_y_m_y_h_m_h)/y_m_y_h_m_h_length;
Amp_Y_M = 2*abs(Y_M(1:NFFT_y_m/2));
Amp_Y_H_M_H = 2*abs(Y_H_M_H(1:NFFT_y_h_m_h/2));
Amp_Y_M_Y_H_M_H= 2*abs(Y_M_Y_H_M_H(1:NFFT_y_m_y_h_m_h/2));
ANG_Y_M = angle(Y_M(1:NFFT_y_m/2))*180/pi;
ANG_Y_H_M_H = angle(Y_H_M_H(1:NFFT_y_h_m_h/2))*180/pi;
ANG_Y_M_Y_H_M_H = angle(Y_M_Y_H_M_H(1:NFFT_y_m_y_h_m_h/2))*180/pi;
仿真结果展现:
总结
原信号通过Hilbert变换器获得与原信号相位不一样、幅值相同的新信号,而后经过一个简单的加法器就能够进行叠加,最后实现SSB调制。这种调制方式既可以解决AM调制效率不高的问题,又可以解决DSB-SC浪费频带的问题,是如今实现幅度调制比较好而且能够调制性能比较高的调幅方式。
最后,特别感谢通讯原理第一小组的全部组员们(因为网络隐私问题,这里就不写你们的名字了)。可以获得最后仿真的成果,是由于你们一块儿准备的材料,尤为是你们汇总的PPT,能够说,这篇文章,只是把你们汇总的PPT进行了书面的表达。因此,再次感谢你们~
引用(感谢如下做者)
附录:四次Hilbert变换
ssb的matlab仿真,单边带调制(SSB调制)的理论基础和MATLAB仿真相关推荐
- matlab解调2fsk,2FSK调制解调系统的MATLAB实现
第 34 卷 第 2 期 玉林师范学院学报(自然科学) Vol.34 No.2 2013 年 JOURNAL OF YULIN NORMAL UNIVERSITY (Natural Science) ...
- 单边带调制(SSB调制)的理论基础和MATLAB仿真
文章目录 前言 一.SSB调制的起源 1. 信号的幅度调制: 2. AM和DSB-SC: 3. SSB调制: 二.MATLAB仿真 1.Hilbert变换的仿真: 2."sin(t)&quo ...
- matlab仿真软件 高阶调制,高阶差分幅度相移键控调制解调系统及仿真
摘要: 本文研究了高阶差分幅度相移键控调制解调(MDASPK)的算法.MDAPSK与具有高频谱利用率已实用化的QAM相比,MDAPSK是由差分幅度(DASK)和差分相移键控(DPSK)结合的一种调制方 ...
- 基于matlab的ldpc编码的构造,基于LDPC编码的GMSK调制与解调及matlab仿真实现(含录像)...
基于LDPC编码的GMSK调制与解调及matlab仿真实现(含录像)(开题报告,论文10700字,程序代码,录像) 摘 要 随着无线通信技术的不断发展与进步,数字电视广播.移动视频点播等对数据吞吐量要 ...
- matlab画2fsk频谱,2fsk信号调制解调频谱的matlab仿真
2fsk信号调制解调频谱的matlab仿真 2FSK信号的调制解调与频谱绘制的matlab仿真 a=randint(1,16); t=0.0001:0.001:1; inisig=a(ceil(t./ ...
- MFSK调制与相干解调-MATLAB基带仿真
MFSK调制与相干解调-MATLAB基带仿真 MFSK调制原理 发送信号形式:(等概) s 1 = ( E , 0 , - , 0 ) s_{1}=(\sqrt{\mathcal{E}}, 0, \l ...
- LTE物理层概述(6)-- LTE之调制与解调及其matlab仿真
LTE(长期演进)下行链路 PHY(物理)层处理链路可以认为是下行链路共享信道(DLSCH)和物理下行链路共享信道(PDSCH)处理的组合.DLSCH 即 下行链路传输信道 TrCH. LTE下行链路 ...
- matlab调制解调开题报告,基于MATLB的数字调制与解调设计与仿真开题报告.doc
基于MATLB的数字调制与解调设计与仿真开题报告 毕业(设计)论文 开 题 报 告 系 别 电子信息工程系 专 业 电子信息工程专业 班 级 122102 学生姓名 朱椰子 学 号 111861 指导 ...
- 基于matlab仿真的数字调制与解调设计
随着通信系统复杂性的增加,传统的手工分析与电路板试验等分析设计方法已经不能适应发展的需要,通信系统计算机模拟仿真技术日益显示出其巨大的优越性.计算机仿真是根据被研究的真实系统的模型,利用计算机进行实验 ...
- fsk调制matlab 仿真,基于MATLAB对FSK信号调制与解调的仿真
基于MATLAB对FSK信号调制与解调的仿真 基于 MATLAB 对 FSK 信号调制与解调的仿真摘要 Matlab 平台的著名仿真环境 Simulink 作为一种种专业和功能强大且操作简单的仿真工具 ...
最新文章
- 央视首位AI手语主播亮相,动作精确、实时转译,网友:能接住广权的段子么?...
- c# 之Web.config
- 加工中心刻字宏程序_加工中心通用铣螺纹宏程序实例,千万别说你学不会!
- 该怎么写Angular JS
- 《转》Java字符串驻留池
- java上下左右_上下左右代替maquee的滚动代码
- 节奏大师闪退android,游戏动态:《节奏大师》闪退问题解决方法汇总
- java学术论文_java毕业设计论文-学术参考网
- 今日头条 mysql_今日头条这么牛逼,用了什么技术?
- SFP光模块怎么配对光纤线缆
- R语言的帮助文档以及相关函数
- Repeater:Redriver 和Retimer
- 超实用的 IPTV 管理工具,xTeVe 助你定制专属电视频道。
- 私域流量公众号+小程序+企业微信+视频号+积分组合营销
- 淘东电商项目(68) -互联网安全架构设计(黑名单拦截及MD5加签)
- C++实现输出一个集合的全部子集
- 计算机多系统启动光盘制作,多系统U盘启动盘制作方法图文介绍
- 路由中的shells / CLI
- eva新世纪福音战士_盘点《新世纪福音战士》中的历代EVA机体!
- hbase的系统表、分裂、下载和上传