About HART Part 3

33
About HART -- Part 3 By Analog Services, Inc. Revised 8-9-99 Revised 12-1-99 Back to Table of Contents Back to Part 1: Preliminaries Back to Part 2: Practical Stuff Back to Papers Index Part 3: Ponderous Stuff Equation Describes CPFSK The HART signal is described mathematically as where V = signal voltage, t = time, Vo = amplitude, Theta_sub_0 is an arbitrary starting phase, and Theta(t) is given by where Bn(t) is a pulse that exists from 0 < t < T and has a value of 1 or -1, according to whether the nth bit is a 0 or 1. T is one bit time. If phase is plotted versus time it is a steadily increasing value that increases with two possible slopes. Generating HART Signal With MATLAB

description

Informe técnico harta parte 3 desarrollo matemático

Transcript of About HART Part 3

About HART -- Part 3By Analog Services, Inc.Revised 8-9-99Revised 12-1-99Back to Table of ContentsBack to Part 1: PreliminariesBack to Part 2: Practical StuffBack to Papers Index

Part 3: Ponderous Stuff

Equation Describes CPFSK The HART signal is described mathematically as

where V = signal voltage, t = time, Vo = amplitude, Theta_sub_0 is an arbitrary starting phase, and Theta(t) is given by

where Bn(t) is a pulse that exists from 0 < t < T and has a value of 1 or -1, according to whether the nth bit is a 0 or 1. T is one bit time. If phase is plotted versus time it is a steadily increasing value that increases with two possible slopes.

Generating HART Signal With MATLAB The following "M" file listing is a program for generating HART modulation with MATLAB [3.1]. This is useful for testing or simulation. The program uses random input bits and generates square, trapezoidal, and sinusoidal outputs. The output ranges from -1 to +1. Figure 3.1 is an example of the output. The curves have been separated for clarity. The bottom curve is the modulating signal.

% hartgen.m

% Generates HART signals.

% Stephen D. Anderson --- November 29, 1999.

% Arrays are identified by a capital letter.

clear;

% comment out the following statement to get a different set of

% random bits each time program is run.

rand('seed',0);

% Generate a random bit stream.

numb_bits = 200;

Bits = round(rand(numb_bits,1));

% Convert bits to levels of +/- 1.

Xmit = 2*Bits - 1;

% Generate bit boundary times.

H_time = (0:(length(Xmit)-1))*(1/1200);

% Set sample rate to 50 kHz.

sample_time = 1/50e3;

% Sample the transmit bits.

i=1;

for j=1:length(H_time);

while ((i-1)*sample_time