A note about Walsh Code !

In IS 95, 64 Walsh Functions are used to identify the forward (down) link channels. Walsh Codes or Walsh functions are generated from a matrix called Walsh Hadamard Matrix and also known as Walsh Hadamard Sequences. We can construct two orthogonal sequences of length 2 easily and are given as the rows of the below matrix

 

Walsh Matrix

Walsh Matrix

 

 

We can construct 2n orthogonal sequences of length 2n from sequences of length 2n-1 by equation below.

 

Walsh Matrix 2

Walsh Matrix 2

 

 

By using “walshcode.m” we can generate any number of walsh sequences. The usage is given below:

Var = walshcode(n);

The function will return walsh matrix, you can also get a randomly picked sequence from the matrix, for this you will have to modify the file little bit (you will have to cut and paste ‘%’ from the beginning of a line to another). The matlab script can be downloaded from here

the file is also available on Matlab File Exchange

———————————-

Author: Ashwini Patankar

Data Rates of Wireless Technologies – A Glance !

There are many technologies, and so as generations, and also questions. This post provides a comparative description of various wireless technologies (cellular and data) available so far with their respective links (not necessary you will get links for all). The data provided here is taken from the various sources available on the net and if the subject matter experts found something inaccurate and then please let us know.

This post contains the uplink and downlink rate for different wireless technologies along with their download link (standards) and also modulation type is given for some of them.

Data Networks:

WLAN Standards

WLAN Standards

 

WiMax 802.16e WiFi 802.11 WiFi 802.11a

 

 

WiFi 802.11b WiFi 802.11g WiFi 802.11n

Cellular Networks:

CDMA Family

CDMA Family

CDMA Family Bar Graph

CDMA Family Bar Graph

CDMA 1x RTT CDMA HSD Rev 0

CDMA HSD Rev A CDMA HSD Rev B

GSM Family

GSM Family

GSM Family Bar Graph

GSM Family Bar Graph

UMTS Family

UMTS Family

HSDPA

HSDPA

HSUPA

HSUPA

HSPA +

HSPA +

UMTS FAMILY

LTE

LTE

LTE SISO LTE 2×2 MIMO LTE 4×4 MIMO

We have not included LTE Advance.

We request subject matter experts or the experts of the fields to review it once and suggest neccessary changes.

Some Good references:

 

====================

Author: Ashwini Patankar

A note about PN Sequence

PN sequences or Pseudo Noise sequence is a periodic binary code which is random in nature generated by the use of shift registers, but generated with taking into considerations some generator polynomials. For sequence to be a pseudo noise or pseudo random it should follow the following basic rules. The rules mentioned below are simply mentioned in brief:

  1. The relative frequency of 0′s and 1′s are each ½
  2. The run lengths of 0′s and 1′s are: ½ of all run lengths are of length 1; ¼ are of length 2; 1/8 are of length 3; and so on.
  3. If a PN sequence is shifted by any non zero number of elements, the resulting sequence will have an equal number of agreements and disagreements with respect to the original sequence.

These properties are known also known as balance property, run property, and correlation property respectively. This code is orthogonal in nature. PN sequence is also known as Maximal Length Sequences.

PN sequences are used in spread spectrum systems, like CDMA, WCDMA, and Radar etc. In CDMA IS 95, 64 ling PN sequence codes are used for the identification if the reverse link channels.

The matlab script for generating pn sequence is given below, and also can be downloaded from this link.

refer figure as a companion for the matlab file

 

block diagram of pn sequence generator

block diagram of pn sequence generator

 

 

function [op_seq] = pnseq (a, b, c)

% a : no of fliflops; b = tapp _ function starting frm highest order; c = initial stae

%tapp functions or genrator polynomial

%e.g. no of flip flops 4 ==> a = 4

%generator polynomial x4+x+1 ==> b = [1 0 0 1]

%initial state [1 0 0 0] ==> c = [1 0 0 0]

%refere figure to set a relation between tap function and initial state

%

%

%

%

% <

% ———–X____________________________________

% | ___ | _____ ____ _____ |

% |> | | | | | | | | | ^|

% —–| |——–| |—| |——-| |————->o/p

% —– —– —– —-

% x1 + x2 + x3 + x4

%initial state

% 1 0 0 1

%

%take care of the reverse order of genrator polynomial and intiial states

%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

close all;

clc;

x = a;

tap_ff =b;

int_stat= c;

for i = 1:1: length(int_stat)

old_stat(i) = int_stat(i);

gen_pol(i) = tap_ff(i);

end

len = (2 ^x)-1;

gen_pol(i+1)= 1;

gen_l = length(gen_pol);

old_l = length(old_stat);

for i1 = 1: 1:len


% feed back input genration

t = 1;


for i2 = 1:old_l


if gen_pol(i2)==1

stat_str(t) = old_stat(gen_l – i2);

i2 = i2+1;

t = t+1;


else

i2 = i2+1;


end


end

stat_l = length(stat_str);

feed_ip = stat_str(1);


for i3 = 1: stat_l-1

feed_ip = bitxor(feed_ip,stat_str(i3 + 1));

feed_ipmag(i1) = feed_ip;

i3 = i3+1;


end


% shifting elements

new_stat = feed_ip;


for i4 = 1:1:old_l

new_stat(i4+1) = old_stat(i4);

old_stat(i4)= new_stat(i4);


end

op_seq(i1) = new_stat(old_l +1);

end

%op_seq;

==============================

Author: Ashwini Patankar