这篇博客是用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)=41​Tb​Sa2(πfTb​)+41​δ(f) Tb(s)T_b(s)Tb​(s) 是码元宽度,码元速率RB=1Tb(Baud)R_B=\frac{1}{T_b}(Baud)RB​=Tb​1​(Baud)。功率谱的带宽近似为fb=1Tb(Hz)f_b=\frac{1}{T_b}(Hz)fb​=Tb​1​(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)=Tb​Sa2(πfTb​) 带宽近似为fb=1Tbf_b=\frac{1}{T_b}fb​=Tb​1​。
  下图为双极性非归零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(ωc​t) ω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​=Tb​2​=2RB​ 2ASK的频带利用率为η=RBB2ASK=12Baud/Hz\eta=\frac{R_B}{B_{2ASK}}=\frac{1}{2}Baud/Hzη=B2ASK​RB​​=21​Baud/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(ω1​t+ϕn​)+s(t)​cos(ω2​t+θ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​=Tb​1​是基带信号的带宽,数值上等于码元速率。
  下图为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(ωc​t) ω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​=Tb​2​=2RB​
频带利用率为η2PSK=RBB2PSK=12Baud/Hz\eta_{2PSK}=\frac{R_B}{B_{2PSK}}=\frac{1}{2}Baud/Hzη2PSK​=B2PSK​RB​​=21​Baud/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(ωc​t) 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仿真相关推荐

  1. 双闭环可逆直流脉宽pwm调速系统设计及matlab仿真验证_,双闭环可逆直流脉宽PWM调速系统设计及MATLAB仿真验证-课程设计.doc...

    双闭环可逆直流脉宽PWM调速系统设计及MATLAB仿真验证-课程设计 成都理工大学工程技术学院课程设计 PAGE PAGE 1 双闭环可逆直流脉宽PWM调速系统设计 及MATLAB仿真验证 专 业:电 ...

  2. 双闭环可逆直流脉宽pwm调速系统设计及matlab仿真验证_,双闭环可逆直流脉宽PWM调速系统设计及MATLAB仿真验证.doc...

    . PAGE 双闭环可逆直流脉宽PWM调速系统设计 及MATLAB仿真验证 专 业:电力传动 学 号:201020305139 姓 名:杨 耀 指导老师:王笑宇 目录 TOC \o "1-3 ...

  3. 单极性归零NRZ码、双极性非归零NRZ码、2ASK、2FSK、2PSK、2DPSK及MATLAB仿真

    二进制调制团圆饭 源代码 仿真结果 源代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 单极性归零NRZ码.双极性非归零NRZ码.2ASK.2FSK.2P ...

  4. 编码01--极性编码详解(极性码、单极性码、双极性码产生原理)

    前言 数据通信中,为了正确的传输数据,就必须对原始数据进行编码,而计算机终端在不同的信道中传输需要使用不同的编码方式,不同的信道支持不同的编码类型,本文解释了编码中的极性编码. 一.极性编码 在数据通 ...

  5. 单极性运放采集双极性信号

    单极性运放采集双极性信号 如图 18.17 所示,双极性信号(Bipolar)就是信号有正有负,单极性信号(Unipolar)只有正.绝大多数 ADC 都只能对单极性信号进行采样,双极性 ADC 虽然 ...

  6. 非常基础的双极性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 ...

  7. 传感器_三相-双极性-开关型-霍尔传感器 速度+电角度解算理解

    1 前言 最近项目上涉及到使用三相-双极性-开关型-霍尔传感器解算 电机转速 .电角度的问题.结合自己的理解+请教前辈,终有所得,下面做一个学习的记录. 主要以思路为主,不涉及代码. 2 正文 2.1 ...

  8. 基于matlab的单相pwm逆变电路的仿真研究,基于Matlab的单相双极性spwm逆变电路仿真报告...

    2021年2月27日发(作者:参与) 单相双极性 SPWM 桥式逆变电路实验报告 学院:电气与电子工程 班级: xxxxx 姓名: xx 一.理论介绍 < p> SPWM 控制技术是逆变电 ...

  9. 双逻辑非(!!)操作符

    双逻辑非操作符的作用 双逻辑非操作,会把一个值(数字,字符串-..)转换为布尔值.第一次逻辑非操作取反的布尔,第二次获得最初元素本身对应的布尔. alert(!!false); //falsealer ...

  10. 通信原理 单、双极性码的归零和非归零01等概下的波形和功率谱密度的matlab实现

    在实际的基带传输系统中,对在信道中传输的电波形的要求: (1) 不含直流成分,且低频分量应尽量少. (2) 含有丰富的定时信息,以便从接收码流提取定时信息. (3) 功率谱主瓣宽度窄,以节省传输频带. ...

最新文章

  1. 一个从四秒到10毫秒,花了1年的算法问题?
  2. 查看Tomcat版本及多版本切换
  3. java容器02--ArrayList源码分析
  4. 【云栖大会】与马云一起开启“飞天·进化”之旅
  5. stream对多个字段分组_java8 stream 如何按多字段分组,并对一个字段求和
  6. Kotlin学习笔记17 反射Part1
  7. python实现文件格式转换_python实现快速文件格式批量转换的方法
  8. 中望cad能编写lisp吗_宁水集团:中望CAD解决方案增强设计创新力,加速转型促发展...
  9. java list api_Java核心API -- 6(Collection集合List、Set、ArrayList、HashSet)
  10. 一句Python,一句R︱pandas模块——高级版data.frame
  11. 接口Request传参的常用注解
  12. Java 网络编程之Socket详解
  13. 文本情感倾向分析——机器学习模型
  14. 电商挖角潮起:工作两年百万年薪
  15. 现代软件工程 第一章 【概论】练习与讨论 王旭阳(2,3,4)
  16. 办公技巧:常用的100个Word快捷键
  17. resolver error connecting with ssh timed out
  18. 小程序如何引用阿里巴巴图标
  19. 基于canal根据配置实现数据库数据的同步
  20. 高并发高负载系统架构

热门文章

  1. win10专业版开机画面模糊_教你Win10系统电脑显示器显示模糊不清晰如何解决
  2. tenda无线网卡Linux驱动,Ubuntu 10.04上腾达W541U V2.0 无线网卡驱动的使用
  3. 终于找到了无毒版的fences1.0(2.0版本要收费的)
  4. 图像频域处理之高斯滤波器
  5. Spring Cloud Euraka( 服务注册中心)
  6. movielens 1m 的mysql_MovieLens电影数据分析
  7. 基于DEM,Lumion和WorldMachine的地形三维可视化
  8. Java基础之类加载器
  9. linux虚拟机读取本地磁盘文件,kvm虚拟化学习笔记(十三)之kvm虚拟机磁盘文件读取小结...
  10. python解二阶微分方程组_python:利用多种方式解微分方程(以二阶微分系统零状态响应为例)...