单极性非归零NRZ码、双极性非归零NRZ码、2ASK、2FSK、2PSK、2DPSK及MATLAB仿真
这篇博客是用MATLAB仿真观察二进制数字信号码元速率和它的带宽的关系。书上给了数字基带信号和频带信号的功率谱密度,但是我还没搞明白FFT与功率谱密度的关系,所以博客里图片的信号幅值就不要纠结啦,看包络形状和带宽就行。如果有明白FFT与功率谱密度的关系的朋友看到博客,请留言告诉我。
单极性非归零NRZ码
在表示一个码元时,二进制符号1和0分别对应基带信号的正电平和零电平,在整个码元持续时间,电平保持不变。发1和发0等概率时,单极性非归零NRZ信号的功率谱密度为Ps(f)=14TbSa2(πfTb)+14δ(f)P_s(f)=\frac{1}{4}T_{b}Sa^{2}(\pi fT_{b})+\frac{1}{4}\delta (f)Ps(f)=41TbSa2(πfTb)+41δ(f) Tb(s)T_b(s)Tb(s) 是码元宽度,码元速率RB=1Tb(Baud)R_B=\frac{1}{T_b}(Baud)RB=Tb1(Baud)。功率谱的带宽近似为fb=1Tb(Hz)f_b=\frac{1}{T_b}(Hz)fb=Tb1(Hz)(Sa函数第一零点)。
下图为单极性非归零NRZ码的幅频特性,用MATLAB的fft函数计算的(下同),码元速率RB=100BaudR_B=100BaudRB=100Baud,抽样频率fs=5000Hzf_s=5000Hzfs=5000Hz,由于fft函数计算结果是对称的,所以只画了一半的图像。可以看到0频率处有一个冲激信号,第一个零点在100HzHzHz处。
双极性非归零NRZ码
二进制符号1和0分别对应基带信号的正电平和负电平, 双极性非归零NRZ码具有直流分量小、抽样判决门限为0、可以在电缆等不接地线上传输等优点。 发1和发0等概率时,双极性非归零NRZ码的功率谱密度为Ps(f)=TbSa2(πfTb)P_s(f)=T_{b}Sa^{2}(\pi fT_{b})Ps(f)=TbSa2(πfTb) 带宽近似为fb=1Tbf_b=\frac{1}{T_b}fb=Tb1。
下图为双极性非归零NRZ码的幅频特性,也是用fft函数计算的,RB=100BaudR_B=100BaudRB=100Baud,fs=5000Hzf_s=5000Hzfs=5000Hz。可以看到0频率处没有冲激信号,第一个零点在100HzHzHz处。
二进制幅度键控(2ASK)
2ASK是利用代表数字信息的0或1的基带矩形脉冲去键控一个连续的高频载波,使载波时断时续地输出。2ASK信号可以表示为s2ASK(t)=s(t)cos(ωct)s_{2ASK}(t)=s(t)cos(\omega_ct)s2ASK(t)=s(t)cos(ωct) ωc\omega_cωc是载波角频率,s(t)s(t)s(t)为单极性非归零NRZ矩形脉冲序列。
2ASK信号的频谱类似AM信号的频谱,都是将低频信号的频谱搬移到载波频率的位置,带宽是低频信号带宽的两倍,即B2ASK=2fb=2Tb=2RBB_{2ASK}=2f_b=\frac{2}{T_b}=2R_BB2ASK=2fb=Tb2=2RB 2ASK的频带利用率为η=RBB2ASK=12Baud/Hz\eta=\frac{R_B}{B_{2ASK}}=\frac{1}{2}Baud/Hzη=B2ASKRB=21Baud/Hz
下图为2ASK信号的幅频特性,RB=100BaudR_B=100BaudRB=100Baud,fs=5000Hzf_s=5000Hzfs=5000Hz,fc=1000Hzf_c=1000Hzfc=1000Hz。可以看到1000HzHzHz频率处有一冲激信号,主瓣的第一个零点在1100HzHzHz和900HzHzHz处,带宽为200HzHzHz。
二进制频移键控(2FSK)
2FSK信号是1对应于载频f1f_1f1,0对应载频f2f_2f2,f1f_1f1与f2f_2f2之间的改变是瞬间完成的。2FSK信号可以表示为s2FSK(t)=s(t)cos(ω1t+ϕn)+s(t)‾cos(ω2t+θn)s_{2FSK}(t)=s(t)cos(\omega_1t+\phi_n)+\overline{s(t)}cos(\omega_2t+\theta_n)s2FSK(t)=s(t)cos(ω1t+ϕn)+s(t)cos(ω2t+θn) s(t)s(t)s(t)为单极性非归零矩形脉冲序列,s(t)‾\overline{s(t)}s(t)为对s(t)s(t)s(t)逐码取反形成的矩形脉冲序列,ϕn\phi_nϕn和θn\theta_nθn是第n个码元的初相位。
2FSK可以视为两路2ASK信号的合成,其中一路以s(t)s(t)s(t)为基带信号,ω1\omega_1ω1为载频,另一路以s(t)‾\overline{s(t)}s(t)为基带信号,ω2\omega_2ω2为载频。因此,2FSK信号的频谱也是两个2ASK频谱之和。2FSK的带宽为为B2FSK=∣f2−f1∣+2fbB_{2FSK}=|f_2-f_1|+2f_bB2FSK=∣f2−f1∣+2fb fb=1Tbf_b=\frac{1}{T_b}fb=Tb1是基带信号的带宽,数值上等于码元速率。
下图为2FSK信号的幅频特 性,RB=100BaudR_B=100BaudRB=100Baud,fs=5000Hzf_s=5000Hzfs=5000Hz,f1=1000Hzf_1=1000Hzf1=1000Hz,f2=2000Hzf_2=2000Hzf2=2000Hz。可以看到1000HzHzHz和2000HzHzHz频率处各有一个冲激信号,2FSK信号带宽为B2FSK=2000−1000+2×100=1200HzB_{2FSK}=2000-1000+2\times100=1200HzB2FSK=2000−1000+2×100=1200Hz
二进制相移键控(2PSK)和二进制差分相移键控(2DPSK)
2PSK是利用载波的相位直接表示数字信息的相移方式,通常用相位0和相位π来分别表示0或1。2PSK信号可以表示为s2PSK(t)=s(t)cos(ωct)s_{2PSK}(t)=s(t)cos(\omega_ct)s2PSK(t)=s(t)cos(ωct) ωc\omega_cωc是载波角频率,s(t)s(t)s(t)为双极性非归零NRZ矩形脉冲序列。
因为s(t)s(t)s(t)的均值为0,2PSK可以视为抑制载波双边带调幅,2PSK的连续谱部分与2ASK的连续谱部分形状基本相同。2PSK信号的带宽为B2PSK=2fb=2Tb=2RBB_{2PSK}=2f_b=\frac{2}{T_b}=2R_BB2PSK=2fb=Tb2=2RB
频带利用率为η2PSK=RBB2PSK=12Baud/Hz\eta_{2PSK}=\frac{R_B}{B_{2PSK}}=\frac{1}{2}Baud/Hzη2PSK=B2PSKRB=21Baud/Hz
2DPSK是用前后码元的相对载波相位值传送数字信息,相对载波相位是指本码元与前一码元初相之差。2DPSK可以由原0、1序列的相对码(差分码)经过绝对相移键控(2PSK)而形成,2DPSK信号也可以表示为s2DPSK(t)=s(t)cos(ωct)s_{2DPSK}(t)=s(t)cos(\omega_ct)s2DPSK(t)=s(t)cos(ωct) s(t)s(t)s(t)为差分码数字序列。
2DPSK与2PSK有相同的带宽和频带利用率,即B2DPSK=B2PSKB_{2DPSK}=B_{2PSK}B2DPSK=B2PSK η2DPSK=η2PSK\eta_{2DPSK}=\eta_{2PSK}η2DPSK=η2PSK
下图为2PSK信号的幅频特性,RB=100BaudR_B=100BaudRB=100Baud,fs=5000Hzf_s=5000Hzfs=5000Hz,fc=1000Hzf_c=1000Hzfc=1000Hz。可以看到1000HzHzHz频率处没有冲激信号,主瓣的第一个零点在1100HzHzHz和900HzHzHz处,带宽为200HzHzHz。2DPSK的幅频特性与2PSK相同。
MATLAB仿真
%% Parameter
fs = 5000; %sampling frequency Hz
fc1 = 1000; %carrier frequency Hz
fc2 = 2000; %carrier frequency Hz
RB = 100; %Code Rate Baud
M = 2; %Size of signal constellation
k = log2(M);%Number of bits per symbol
N = 10000; %Number of bits to process
n = 2^(ceil(log2(N*fs/RB)));
t = (0:n-1)./fs; % time vector
f = (-n/2:n/2-1)*fs/n; %frequency range
%% Generate code or signal
data_in = randi([0,k],N,1);%unipolar code
unipolar_nrz_st = zeros(1,n);
bipolar_nrz_st = zeros(1,n);
% 1 δφ=π, 0 δφ=0
differencial_st = zeros(1,n);
last_bit = -1;
for i = 0:N-1unipolar_nrz_st((i*fs/RB+1):((i+1)*fs/RB)) = data_in(i+1);%unipolar non-zero signalif data_in(i+1) == 1bipolar_nrz_st((i*fs/RB+1):((i+1)*fs/RB)) = 1;%bipolar non-zero signallast_bit = -last_bit;differencial_st((i*fs/RB+1):((i+1)*fs/RB)) = last_bit;%differencial signalelsebipolar_nrz_st((i*fs/RB+1):((i+1)*fs/RB)) = -1;differencial_st((i*fs/RB+1):((i+1)*fs/RB)) = last_bit;end
end
%% Unipolar non-zero signal
%Baseband
S = fftshift(fft(unipolar_nrz_st));
figure('Name','Unipolar non-zero signal','NumberTitle','off');
subplot(3,1,1);
plot(f,abs(S)*2/n);
grid minor;
ylim([0,0.1]);
xlabel('f/Hz');
ylabel('S(f)');
title('Baseband signal');
%2ASK
s_ask = unipolar_nrz_st.*cos(2*pi*fc1*t);
S_ask = fftshift(fft(s_ask));
subplot(3,1,2);
plot(f,abs(S_ask)*2/n);
grid minor;
ylim([0,0.1]);
xlabel('f/Hz');
ylabel('S_{2ASK}(f)');
title('2ASK');
%2FSK
s_fsk = unipolar_nrz_st.*cos(2*pi*fc1*t) + (~unipolar_nrz_st).*sin(2*pi*fc2*t);
S_fsk = fftshift(fft(s_fsk));
subplot(3,1,3);
plot(f,abs(S_fsk)*2/n);
grid minor;
ylim([0,0.1]);
xlabel('f/Hz');
ylabel('S_{2FSK}(f)');
title('2FSK');
%% Bipolar non-zero signal
%Baseband
S = fftshift(fft(bipolar_nrz_st));
figure('Name','Bipolar non-zero signal','NumberTitle','off');
subplot(3,1,1);
plot(f,abs(S)*2/n);
grid minor;
xlabel('f/Hz');
ylabel('S(f)');
title('Baseband signal');
%2PSK
s_psk = bipolar_nrz_st.*cos(2*pi*fc1*t);
S_psk = fftshift(fft(s_psk));
subplot(3,1,2);
plot(f,abs(S_psk)*2/n);
grid minor;
xlabel('f/Hz');
ylabel('S_{2PSK}(f)');
title('2PSK');
%2DPSK
s_dpsk = differencial_st.*cos(2*pi*fc1*t);
S_dpsk = fftshift(fft(s_dpsk));
subplot(3,1,3);
plot(f,abs(S_dpsk)*2/n);
grid minor;
xlabel('f/Hz');
ylabel('S_{2DPSK}(f)');
title('2DPSK');
仿真结果
单极性非归零NRZ码、双极性非归零NRZ码、2ASK、2FSK、2PSK、2DPSK及MATLAB仿真相关推荐
- 双闭环可逆直流脉宽pwm调速系统设计及matlab仿真验证_,双闭环可逆直流脉宽PWM调速系统设计及MATLAB仿真验证-课程设计.doc...
双闭环可逆直流脉宽PWM调速系统设计及MATLAB仿真验证-课程设计 成都理工大学工程技术学院课程设计 PAGE PAGE 1 双闭环可逆直流脉宽PWM调速系统设计 及MATLAB仿真验证 专 业:电 ...
- 双闭环可逆直流脉宽pwm调速系统设计及matlab仿真验证_,双闭环可逆直流脉宽PWM调速系统设计及MATLAB仿真验证.doc...
. PAGE 双闭环可逆直流脉宽PWM调速系统设计 及MATLAB仿真验证 专 业:电力传动 学 号:201020305139 姓 名:杨 耀 指导老师:王笑宇 目录 TOC \o "1-3 ...
- 单极性归零NRZ码、双极性非归零NRZ码、2ASK、2FSK、2PSK、2DPSK及MATLAB仿真
二进制调制团圆饭 源代码 仿真结果 源代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 单极性归零NRZ码.双极性非归零NRZ码.2ASK.2FSK.2P ...
- 编码01--极性编码详解(极性码、单极性码、双极性码产生原理)
前言 数据通信中,为了正确的传输数据,就必须对原始数据进行编码,而计算机终端在不同的信道中传输需要使用不同的编码方式,不同的信道支持不同的编码类型,本文解释了编码中的极性编码. 一.极性编码 在数据通 ...
- 单极性运放采集双极性信号
单极性运放采集双极性信号 如图 18.17 所示,双极性信号(Bipolar)就是信号有正有负,单极性信号(Unipolar)只有正.绝大多数 ADC 都只能对单极性信号进行采样,双极性 ADC 虽然 ...
- 非常基础的双极性NRZ码元序列通过升余弦滚降系统冲激响应
close all; alpha=0.2; Ts=1e-2; Fs=1e3; Rs=50; M=2; Num=100; Samp_rate=Fs/Rs; Eye_num=2; NRZ=2*randin ...
- 传感器_三相-双极性-开关型-霍尔传感器 速度+电角度解算理解
1 前言 最近项目上涉及到使用三相-双极性-开关型-霍尔传感器解算 电机转速 .电角度的问题.结合自己的理解+请教前辈,终有所得,下面做一个学习的记录. 主要以思路为主,不涉及代码. 2 正文 2.1 ...
- 基于matlab的单相pwm逆变电路的仿真研究,基于Matlab的单相双极性spwm逆变电路仿真报告...
2021年2月27日发(作者:参与) 单相双极性 SPWM 桥式逆变电路实验报告 学院:电气与电子工程 班级: xxxxx 姓名: xx 一.理论介绍 < p> SPWM 控制技术是逆变电 ...
- 双逻辑非(!!)操作符
双逻辑非操作符的作用 双逻辑非操作,会把一个值(数字,字符串-..)转换为布尔值.第一次逻辑非操作取反的布尔,第二次获得最初元素本身对应的布尔. alert(!!false); //falsealer ...
- 通信原理 单、双极性码的归零和非归零01等概下的波形和功率谱密度的matlab实现
在实际的基带传输系统中,对在信道中传输的电波形的要求: (1) 不含直流成分,且低频分量应尽量少. (2) 含有丰富的定时信息,以便从接收码流提取定时信息. (3) 功率谱主瓣宽度窄,以节省传输频带. ...
最新文章
- 一个从四秒到10毫秒,花了1年的算法问题?
- 查看Tomcat版本及多版本切换
- java容器02--ArrayList源码分析
- 【云栖大会】与马云一起开启“飞天·进化”之旅
- stream对多个字段分组_java8 stream 如何按多字段分组,并对一个字段求和
- Kotlin学习笔记17 反射Part1
- python实现文件格式转换_python实现快速文件格式批量转换的方法
- 中望cad能编写lisp吗_宁水集团:中望CAD解决方案增强设计创新力,加速转型促发展...
- java list api_Java核心API -- 6(Collection集合List、Set、ArrayList、HashSet)
- 一句Python,一句R︱pandas模块——高级版data.frame
- 接口Request传参的常用注解
- Java 网络编程之Socket详解
- 文本情感倾向分析——机器学习模型
- 电商挖角潮起:工作两年百万年薪
- 现代软件工程 第一章 【概论】练习与讨论 王旭阳(2,3,4)
- 办公技巧:常用的100个Word快捷键
- resolver error connecting with ssh timed out
- 小程序如何引用阿里巴巴图标
- 基于canal根据配置实现数据库数据的同步
- 高并发高负载系统架构
热门文章
- win10专业版开机画面模糊_教你Win10系统电脑显示器显示模糊不清晰如何解决
- tenda无线网卡Linux驱动,Ubuntu 10.04上腾达W541U V2.0 无线网卡驱动的使用
- 终于找到了无毒版的fences1.0(2.0版本要收费的)
- 图像频域处理之高斯滤波器
- Spring Cloud Euraka( 服务注册中心)
- movielens 1m 的mysql_MovieLens电影数据分析
- 基于DEM,Lumion和WorldMachine的地形三维可视化
- Java基础之类加载器
- linux虚拟机读取本地磁盘文件,kvm虚拟化学习笔记(十三)之kvm虚拟机磁盘文件读取小结...
- python解二阶微分方程组_python:利用多种方式解微分方程(以二阶微分系统零状态响应为例)...