Matlab实现单(双)极性(不)归零码

摘要:
%符号周期N_样本=128;(N*N_sample-1)*dt;N%生成序列ifRAN(i)==1se1=[se1gt1];N_样本)];轴([0202]);%通过公式方法^2/(N*Ts)计算概率谱密度PE2=10*log10(abs(fft_se2));%符号周期N_样本=128;(N*N_sample-1)*dt;N_样本/2)];
Matlab实现单(双)极性(不)归零码

内容大纲

  • Matlab实现单极性不归零波形(NRZ),0 1 幅值
  • Matlab实现单极性归零波形(RZ),0 1 幅值
  • Matlab实现双极性不归零波形,-1 1 幅值
  • Matlab实现双极性归零波形, -1 1 幅值

设计

首先需要确定单个码元信号,以一秒为一个码元周期,每次采样128个点得到两个码元信号,分别是RZ信号和NRZ信号

%% 生成单个码元
Ts = 1; % 码元周期
N_sample = 128; % 单个码元抽样点数
dt = Ts / N_sample; % 抽样时间间隔
N = 100; % 码元数
t = 0 : dt : (N * N_sample - 1) * dt; % 序列传输时间
gt1 = ones(1, N_sample); % NRZ
gt2 = [ones(1, N_sample / 2), zeros(1, N_sample / 2)]; % RZ

然后根据码元数生成N个0 1 的随机序列,然后根据随机序列在1时取一个码元信号,随机序列为0时取一个零信号

%% 生成随机序列
RAN = round(rand(1, N)); % 随机0 1序列
se1 = [];
se2 = [];
for i = 1 : N % 生成序列
   if RAN(i)==1
       se1 = [se1 gt1];
       se2 = [se2 gt2];
   else
       se1 = [se1 zeros(1, N_sample)];
       se2 = [se2 zeros(1, N_sample)];
   end
end

然后观察波形看是否正确

%% 绘制出结果
subplot(2, 1, 1);plot(t, se1);grid on;axis([0 20 0 2]);title('NRZ');
subplot(2, 1, 2);plot(t, se2);grid on;axis([0 20 0 2]);title('RZ');

求信号的功率谱,功率谱 = 信号的频率的绝对平方 / 传输序列的持续时间, 求得的功率谱进行单位换算以dB值表示

4

%% 功率谱密度计算
fft_se1 = fftshift(fft(se1)); % 求序列的频谱
fft_se2 = fftshift(fft(se2));
PE1 = 10 * log10(abs(fft_se1) .^ 2 / (N * Ts)); % 公式法求概率谱密度
PE2 = 10 * log10(abs(fft_se2) .^ 2 / (N * Ts));
PEL1 = (-length(fft_se1) / 2 : length(fft_se1) / 2 - 1) / 10; % 求区间长度
PEL2 = (-length(fft_se2) / 2 : length(fft_se2) / 2 - 1) / 10;

注意:这里使最终观察的波形易于观察,需要使用fftshift函数使0频率响应移到频域中心,而频域较宽,因此只观察整个频域的1/10,取中心部位观察

观察功率谱是否正确

%% 绘制出结果
subplot(2, 2, 1);plot(t, se1);grid on;axis([0 20 -1.5 1.5]);title('DBNRZ');
subplot(2, 2, 2);plot(t, se2);grid on;axis([0 20 -1.5 1.5]);title('DBRZ');

把单极性转化为双极性观察:此处与单极性不同的地方在于,生成序列的时候,随机序列为0时取单个码元信号的乘以-1,而不是取0信号

此处以附上双极性的全部代码(与单极性差别不大)

clear all
close all
clc
%% 生成单个码元
Ts = 1; % 码元周期
N_sample = 128; % 单个码元抽样点数
dt = Ts / N_sample; % 抽样时间间隔
N = 100; % 码元数
t = 0 : dt : (N * N_sample - 1) * dt; % 序列传输时间
gt1 = ones(1, N_sample); % NRZ
gt2 = [ones(1, N_sample / 2), zeros(1, N_sample / 2)]; % RZ
%% 生成随机序列
RAN = round(rand(1, N)); % 随机0 1序列
se1 = [];
se2 = [];
for i = 1 : N % 生成序列
   if RAN(i)==1
       se1 = [se1 gt1];
       se2 = [se2 gt2];
   else
       se1 = [se1 -1*gt1];
       se2 = [se2 -1*gt2];
   end
end
%% 绘制出结果
subplot(2, 2, 1);plot(t, se1);grid on;axis([0 20 -1.5 1.5]);title('DBNRZ');
subplot(2, 2, 2);plot(t, se2);grid on;axis([0 20 -1.5 1.5]);title('DBRZ');
%% 功率谱密度计算
fft_se1 = fftshift(fft(se1)); % 求序列的频谱
fft_se2 = fftshift(fft(se2));
PE1 = 10 * log10(abs(fft_se1) .^ 2 / (N * Ts)); % 公式法求概率谱密度
PE2 = 10 * log10(abs(fft_se2) .^ 2 / (N * Ts));
PEL1 = (-length(fft_se1) / 2 : length(fft_se1) / 2 - 1) / 10; % 求区间长度
PEL2 = (-length(fft_se2) / 2 : length(fft_se2) / 2 - 1) / 10;
%% 绘制出结果
subplot(2, 2, 3);plot(PEL1, PE1); grid on; axis([-50 50 -50 50]); title('density-DBNRZ');
subplot(2, 2, 4);plot(PEL2, PE1); grid on; axis([-50 50 -50 50]); title('density-DBRZ');

运行效果

单极性归零信号和单极性不归零信号及其功率谱密度:

re1

分析:单个码元信号的周期是1,图中很坐标以2显示一个点,实际为1。占空比的设置为50%。以0~1时间段为例,图一的信号一直都是1,这是不归零的信号,图二在0~0.5时为1,0.5~1时为0,也就是在下一个码元来临前回归零,这是归零信号的特性。而两者信号的功率谱密度显示,在0频率处能量最集中,各个平垫的能量分布较为均衡,向两极逐渐递减,这适应于一个随机信号的特性

双极性归零信号和单极性不归零信号及其功率谱密度:

re2

分析:双极性信号不归零信号只有1 -1 两种幅值,而归零信号则多一个0幅值。由于与单极性信号相比,只是幅值上面有所差异,对于频域的没有太大的影响,因而其功率谱密度也是十分相似的

后记

关于单(双)极性(不)归零编码的应用看了网上一篇博客:多路复用技术、频分多路复用、时分多路复用、波分多路复用、码分多址、空分多址,讲得还不错。贴网址:

http://blog.csdn.net/sunnyboy_cia/article/details/6382573

免责声明:文章转载自《Matlab实现单(双)极性(不)归零码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇postman的基本用法,请求,断言,环境变量jq 下拉框获取选中自定义属性值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

去耦电容与旁路电容

6、去耦电容(decoupling capacitor):是电路中装设在元件的电源端的电容,此电容可以提供较稳定的电源,同时也可以降低元件耦合到电源端的噪声,间接可以减少其他元件受此元件噪声的影响,主要功能是提供较为稳定的电源。去耦电容也称为退耦电容,是把输出信号的干扰作为滤除对象,,一般放在不需要交流的地方,用来消除自激震荡,使放大器处于稳定工作状态。去...

oracle-触发器

触发器的定义 触发器定义就是当某个条件成立的时候,触发器里面定义的语句就会自动被执行,因此触发器不需要人为的去调用,也不能调用,并且触发器的触发条件其实是在你定义的时候就已经设定好了。 触发器分类 触发器分为两种 1. 语句级触发器:可以在某些语句执行前或执行后被触发 2. 行级触发器:在定义的触发的表中的行数据改变时就会被触发一次 触发器的语法 1....

我的学习笔记,侧信道攻击,从喊666到入门之——波形采集

​在N久之前的上篇文章中,我们讨论了如何对已经采集好的能量轨迹进行侧信道攻击,但是,有个问题我挖了一个坑,就是如何对芯片的能量轨迹进行采集。今天我会讨论这个问题。 ​本文会先介绍采集设备和相应的示波器使用和通信上的一些知识,之后介绍三种进行能量轨迹采集的方法和注意事项,并对比他们的优缺点,最后说一下我在采集中的噪音控制问题。 设备信息 采集设备 ​ 目前...

WPS企业版序列号

终身授权: 694BF-YUDBG-EAR69-BPRGB-ATQXH 其他(未验证是否永久): 某政府版激活码:THUV2-32HH7-6NMHN-PTX7Y-QQCTH 某人社局激活码:R7AKQ-KLBXV-RNX3F-BPACQ-NQDGE 企业版序列号1:R8R8P-MTT6F-KLRPM-J7CAB-PJM8C 企业版序列号2:A4XV7-QP...

android wifi断开原因分析

最近在解bug的过程中经常遇到密码正确但处于saved的状态,总结原因有已下几种:1 在ASSOCIATING阶段由于丢包导致ASSOC REJECT03-16 09:22:12.440 D/WifiMonitor( 924): Event [IFNAME=wlan0 CTRL-EVENT-DISCONNECTED bssid=08:cc:68:9e:ac...

SV中的Interface和Program

Interface:SV中新定义的接口方式,用来简化接口连接,使用时注意在module或program之外定义interface,然后通过'include来添加进工程。         interface  arb_if(input bit clk);              //clk信号,一般单独拿出来                        ...