October 14, 2008

Here is a Good Link about the InfiniBand …



August 19, 2008

Today I was reading the homodyne technique in Berstein book , its very nicely described.

At first I thought it is just simple Hermitian Property of the FFT that is used.

But the Phase Correction need to be done so that we account for the assymetry and also for the assumption that Image is real.

Now I understood why we need those Extra K-space lines and for 256 Y Res we need to acquire little moree than 128 lines … i.e around 160 linjes 🙂

P File Details

August 11, 2008

Data Elements = No. of Data Elements need to be read for 1 Slice.  ( da_xres *2* (da_yres-1)  )

The Multiplication with 2 is because of the Real and Imaginary Portion

FrameSize = Size of One View ( da_xres *2*point_size )

here Point_size is if each element is a captured as 32 bit or 16 bit , related to Extended Dynamic Range

Echo_Size = Size of Data for a single Echo ( FrameSize * da_yres)

slice_size = Size of Data for a single Slice (n_echos * Echo_Size)

mSlice_size = Size of the data in one acquisition ( N-Slices_in_1_pass * slice_size)

Way a P FIle has Data


      rec1 :  Slice1 :Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

                 Slice2 :Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

                  Slice 3: Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

      rec2 :  Slice1 :Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

                 Slice2 :Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

                  Slice 3: Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

    rec3 :  Slice1 :Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

                 Slice2 :Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

                  Slice 3: Echo 1 (All Views) :Echo2(All Views) : Echo 3 (All Views) ……….

Eigen Values and Eigen Vectors

July 21, 2008

When we look at the eigen vectors of a matrix , it actually gives us a vector that doesnt change the direction when the matrix is applied … (Ofcourse it is allowed to rotate 180 degrees ….) . At the same time the vector is shrunk to an extent .

If B is the matrix and v is the  eigen vector with an eigen value k.

B * v = k*v

if k < 0 then its rotated by 180 degrees.  the Eigen vector is shrunk by k.

If B is a symetric matrix then it has linearly independent eigen vectors.

Non-Linear Optimization

July 17, 2008

As I was going through the compress sensing , I realised the importance of the non-linear optimization …. I remember asking questions “where do we use this method” when my teachers taught me the conjugate Gradient method ……

I almost forgot lot of math I read , about positive definite matrices, or steepest decent methods …. I need to Brush up on lot of them … ahem ahem … Here is a good paper or a tutorial that is talking about the basics of optimization without much pain 🙂

The Paper on painless conjugate Gradient method is painless-conjugate-gradient

Compress Sensing + parallel Imaging

July 10, 2008

As I was getting to understand abt the CS and why l1 norm alone works and l2 norm doesnt work …

With my discussion with RV , he was talking abt using CS and PI together.  The idea here is to use the PI to give an initial estimate image rather than using the zero filled Density corrected image as the initial estimate.

When I went through the abstracts I found a similar (I should say same) idea as part of the abstract ..

The abstract is here  01488 🙂

Compress Sensing Algorthimically

July 9, 2008

Let m be the Final Image which we are planning to arrive at

Let phi be the transform in which the image m is sparse

let y be the undersampled k-space

FFTU be the Fourier Transform operator based on the sampling pattern

Then we want to minimize of l1 norm of phi*m

with the constraint  | FFTU*m – y| < epsilon

SO here sparsity is important because we are trying to minimize and sparsity helps …

Now why is the incoherence needed ? Looks like the incoherence doesnt give any visible artifacts ,

so we should ensure that the sampling pattern is incoherent …

Point spread function gives good estimate of coherence i.e incoherence ….

Point spread function is Fourier Transform of the filter i.e the sampling pattern we have.

Probability Density Function

July 9, 2008

Integral representation of the probability Distribution

Generating a PDF based on the radius of the unit circle

create a linspace from -1 to 1based on the no.of Points needed (1-r).^p

If its a uniform pdf then lets say its 1 every where. then sum(pdf(:)) gives row*col.

Now we want to generate a pdf such that sum(pdf(:)) = row * col * sampling rate;

use the distance from the centre to create the pdf.

The code is genpdf1

Compress Sensing

July 7, 2008

Today I spent some time in trying to understand how Compress Sensing works.

I got through the idea of using the sparsity of the transform domain and reducing the degrees of freedom and arrive at this sparse elements with a relatively small set of sampled points.

Some one said that nyquist was a pessimist as he gave the upper bound. Now we are interested in the lower bound …..

A decently good tutorial (Though I didnt understand the head or tail of UUP or RIP … Need to spend more time)

This blog seemed to cover lot on CS …. I spent some time on the links provided …

At present I m reading this article called sparseMRI , where cs is used to get the Scan Time optimization on the cartesian Grid for angiogram images … sparsemri1

GPU vs CELL Processor

July 3, 2008

This is a good article on CPU /GPU/CELL/FPGA … Its interesting ….

I m not sure where my company is headed 🙂