2008年10月8日 星期三

BER and BLER initial measurement

  • VSG can generate arbitrary signal. It's not limited by mac format. VSG can allocate a pdu full of data. And we use a fixed pattern to fill the pdu.
  • The maximum size of a pdu is 2K (11 bit). The whole downlink zone can be fully utilized.
  • We require BER resolution to 10^(-9). It corresponds to 30 bits in denominator counter. If we assume BLER as the calculation unit, the BLER resolution has to be 24 bits.
  • The input pattern can be fill 0 and 1.

2008年10月4日 星期六

php + mailenable

Some articles suggested to change smtp setting sections to enable mail() function. Here I use MailEnable to achieve a better solution if the smtp server takes authentication phrase.

We still keep smtp=localhost in php.ini. So mail() will send messages to localhost smtp server. We need a relay agent to relay the message to the external sendmail server. MailEnable is a freeware that can be configured to do this.

What I did is to set up smart host, which you can access by MailEnable admin tool-->MailEnable Management --> server-->smtp-->properties.
Click the tab smart host in the form. Give the right smtp server and port . Check 'remote server requires authentication'. Enter your key and pass. Check smart host takes priority. You are all set.

One feature in mailenable is that it can't take angle brakets <> as the from address. It will bracket its own.

2008年9月22日 星期一

Apache https://localhost setup

It's been a painful process to go though the setup of wamp apache https://localhost. I searched web, experimented and got some clues.
  • Wamp apache set up: follow the instruction of http://www.wampserver.com/phorum/read.php?2,32986,page=1 . It tells you how to set up a crt (signed certificate) step by step. One point missed in the instruction is the common name, that has to be set as localhost. So you won't see many error message in your err_openssl_log.
  • Broswer set up: I tested Firefox and IE. Firefox needs to add an CA agent. You can do this by (T)ool->(O)ption-> (S)->CA(驗證機構)->import. And enter the server.crt in your local folder. IE can be passed just click continue. You can also add an extra CA in IE.
  • Some useful ssl knowledge is available on http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html . That gives some example of how to use openssl to achieve many certificate things.

2008年6月29日 星期日

OSC currencies precision

OSC uses decimal place in the admin/local setting to set the truncation.
The problem often occurs are truncation after multiplication or multiplication after truncation.
All product must be priced at one currency, typically USD.
An item purchase is calculated as truncation after multiplication (good). However, when multiple items are summed up, the final price is summed in USD and then translated into TWD.
The result is different with the summation of prices in TWD.

to avoid this, we need to align the precision of product. For example, if we set the decimal place to USD is 2, then at most we can set the decimal place of TWD to 2 and the currency exchange rate to be 31.12. Please do no set higher currency precision. The truncation will screw up the total calculation.

2008年6月5日 星期四

Adaptive wimax CTC

Wimax 16e uses Convolutional code (CC) as a Turbo code base (TC). Adaptive CTC miminizes the calculation time by checking the converging condition. The condition can be determined by CC self-consistent condition.
As alpha(i, ab, t) represents the likelihood ratio of the finite state i at the value ab at time t, we can check the maximum likelihood value of alpha(i) at time 0. In the next iteration, if the ML alpha does not change, then CTC converges.
like[i] calculates the likelihood of ab=i at the current step. like[i] sums over all state transition with ab = i. So LLR is expressed as MaxStar.

2008年4月16日 星期三

Jakes' Model

Jakes' model is a deterministic model to simulate Rayleigh fading.
The classical paper is Dent' 1993 Modified Jakes's Model published in Electronic Letter.

Jakes model simplified the all angle inputs (oscillators) to a quadrant input (oscillators). The in-phase and quadrature components of each oscillator are cos(be_n) and sin(be_n). So the x-corr of I-Q is zero by the orthogonality.

The difference of Den't paper with Jakes' 1974 paper is using Walsh function in the azimuth domain to achieve orthogonality between waves (delay paths). So delay paths satisfies statistical independent, that actually is achieved by azimuth orthogonality.


In summary, there are three types of orthogonalities that are used in Dent Model.
  1. Oscillator orthogonality: cos(w_1 t), cos(w_2 t), ... are orthogonal if w_1 is not equal to w_2. This is true when the running time is larger than the largest period (smallest frequency).
  2. Azimuth orthogonal: waves inner product has oscillator components in all angle. By azimuth orthogonal functions, the inner product is zero.
  3. I-Q orthogonality: similar to Azimuth orthogonal, IQ are selected to be cos and sin.

Given the three orthogonalities, it is obvious that Li-Guan's 2000 IEEE paper is incorrect.
The azimuth orthogonality is not achieved because the author selected half cycle is as azimuth function. The right theta should be 2*pi*n*j/N0. The paper missed the 2 factor.

The good thing of the paper is that the angle amplitude is not +-1 as Dent model. The azimuth amplitude is distributed over a range, that matches the better assumption that the amplitude distribution around the angle.

Issues in simulation:
  1. The running time must be long enough to achieve oscillator orthogonality. The smallest angular frequency is wm * cos (al_n). al_n is close to pi/2 when n --> N0. The smaller angular frequency has longer period of time. The upshot is if we set N0 too big, the last few oscillator needs very long period to be orthogonal.
  2. Random phase: the random phase can be included in the oscillator, as Dent model. Li-Guan's model used incorrect j*pi/4. That loses the flexibility of random phase in the oscillator.

2008年2月28日 星期四

Wimax frame structure and multiplexing

Wimax uses TDMA and OFDMA to divide the channel resource for multiple users.

Glossary

Symbol: A time slice of OFDM. It covers all subcarriers.
Slot: The atomic structure of communication. Each slot has 48 carriers. According to the modulation type, each slot has 48 subcarriers. Depending on modulation, a slot has 48* k bits. k = 2, 4, 6 for QPSK, 16 QAM, 64 QAM.
Burst: Data region, OFDMA divides temporal-frequency space into user regions. Each user is allocated a burst. A burst (block) includes multiple slots. A zone has multiple bursts.
A burst has slots ranging in temporal and frequency domains. In simulation, the slot count in T (symbol axis) is 18 and slot count in F (subchannel axis) is 5. The total slots in a burst is 5*18 = 90.

PUSC: Partial usage of subchannels.

2008年2月18日 星期一

Channel Simulation

My target is to maintain ConvTurboDecoder(). They want to implement an adaptive decoder.
The function is invoked by RX, and by main().
They measure two things:
  • BER
  • BLER: block error rate (block is a frame?)
  • HARQ: hybrid Automatic Repeat REquest
Convolution code is 1/2 rate. Convolution Turbo Code (CTC) is 1/3 rate.
The interleaver adds new priori to the estimator.
When there are two evidence, without further information, they are equally likely.
The extrnsic information is the difference of the prior.

Data block size 54, rate = 3/4. The encoded block size is 54 *4/3 = 72. The bit count is 54 * 8 = 432. N = 432/2 = 216.

We do subblock interleaving after CTC encoding. Another interleaving is inside Turbo code.
Subblock interleaver: Remap the address (of a block)by 2 segments.
  • Block size = 216, N = 108.
Turbo Code uses a different prior called extrinsic information to feed into MAP.

Example:

64-QAM, data block size = 60 bytes/block.
45 blocks Before CTC: 21600 in = 45 (block) * 60 bytes/block * 8
45 blocks After CTC: 25920 = 45 * Ncpbs = 45 * 576
The code rate is 5/6 = 480/576.
Each subblock has size 240. That is encoded into (m, j) = (7, 2). The maximum index is 2^7 * 2 - 1= 255. The index over 240 will be discarded. In the interacitve process, the original index may go over 240 until all destination index are filled.
Only a fractional of parity bits are selected to transmit. Those parity bits are permuted by (m, j) and reselected.

+ Wimax CTC uses a single convolutional encoder. It is switched over to calculate (Y1, W1) and (Y2, W2).
+ Circulation state: There is a reinitialization of CTC. The final state is taken as the initial state.
+ SPID is the subpacket ID. It is used for incremental redundancy (in CTC) HARQ. This value will shift the packet index.

2008年1月2日 星期三

Laptop memory

HP laptop puts the model on the LCD panel, either at top right or bottom right corner. In my case, my laptop is HP331, but the real model is shown on the bottom right as Compaq nc4400.

This model uses DDRII memory modules. The memory can be either 533MHz or 667MHZ. They have model name PC2 4200 and PC2 5300 respectively. So if you want to expand your laptop, just look for the two types of memory modules and plug in and here you go!