>Hi,
>I'm currently doing project on OFDM based. I want to transmit my signal
>through a Rayleigh channel. assume that the received signal should be
>y(t)=x(t)*h(t)+n(t) or Y(f)=X(f)H(f)+N(f).
>
>I understand that in order to get y(t), we need to do a convolution
>between x(t) and h(t). let say, after IFFT in OFDM part, then I change

the

>signal into serial where the data is in time domain. Now, I don't want

to

>do the convolution part, where from my understanding convolution in time
>domain is multiplication in freq. domain.
>
>I came across this matlab codes % Rayleigh fading
> h = sqrt(0.5)*( randn( 1, symbols_per_frame) + j*randn(
>1,symbols_per_frame) );
> % complex noise
> noise = sqrt(variance)*( randn(1,symbols_per_frame) +
>j*randn(1,symbols_per_frame) );
> % in all
> y = h.*x + noise;
>
>so my questions now are:
>
>1. Is the matrix multiplication means circular convolution where it need
>me to change the time domain data back to freq. domain by FFT {x(t)}?
>
>2. If I already do the FFT of the data, it is means that I don't needs

to

>FFT it again at the receiver, right?
>
>3. is the h in the above code is valid to implement? how can I define

the

>doppler from the code?
>
>Please help me, I really stuck at this for so long.
>TQ
>
>
>
>
>
>
>

You need to make a zeros padding to your input signal and your filter, you
may better look at fast convolution with overlap add or overlap save
method.
Moctar

Reply by nhusna●April 21, 20092009-04-21

TQ for all the comments. I have a question if we are using convolution
function, for example, given
x=[1 2 3 4] and h=[1 2 3 4 5],
y1=conv(x,h) =[1 4 10 20 30 34 31 20]
where the size of y=x+h-1
now, if I want to do the circular convolution, the size of matrix x and h
should be the same as x+h, so I set x=[1 2 3 4 0 0 0 0 0] and h=[1 2 3 4 5
0 0 0 0]
y=ifft(fft(x).*fft(h))
y2=y1
so my question is let say x is transmitted bit and h impulse response. the
size of h is bigger than x. usually, at the channel part, we will do
convolution between transmitted signal and channel response. if we do
circular conv., we will padding the transmitted bit with zero. so, at the
receiver, how can we extract back the signal since the size is already
increase? can we just take y2=[1 4 10 20] since the original size of x is
4?

Reply by Felis Dwiyasa●April 20, 20092009-04-20

Let me try to give comment to your second question.

> 2. If I already do the FFT of the data, it is means that I don't needs
> to FFT it again at the receiver, right?

In real system, signal is always be in time domain when transmitted
within channel.
Unless your concern is just creating Rayleigh channel model (which will
not be used in overall OFDM system), you can not discard FFT block in
receiver just because you have done it in channel model.
After doing FFT and multiplication with H(f) in channel model, you
should IFFT back that signal so the output of channel model is in time
domain again.
IMHO, it is important to make good system partition when creating a
relative large system model.
Felis

Reply by julius●April 20, 20092009-04-20

On Apr 19, 10:51�pm, "nhusna" <nhu...@ic.utm.my> wrote:

> >I'm not going to read your code, but realize that in real life,
> >neither your channel nor your signal is going to be periodic.
> >The FFT is a fast version of the DFT, which is for periodic
> >discrete-time signals both in time and in frequency.
>
> >So how do you make sure that your simulation is realistic?
>
> >Julius
>
> Usually, we will assume that the signal is periodic first in simulation to
> make the simplification of the analysis system (I guess...)

What you need is to learn about "fast convolution," in particular
about "overlap-add" and "overlap-save." This is an example
of how a periodic operator can be applied to a non-periodic
signal (or channel).
Julius

Reply by nhusna●April 19, 20092009-04-19

>I'm not going to read your code, but realize that in real life,
>neither your channel nor your signal is going to be periodic.
>The FFT is a fast version of the DFT, which is for periodic
>discrete-time signals both in time and in frequency.
>
>So how do you make sure that your simulation is realistic?
>
>Julius
>

Usually, we will assume that the signal is periodic first in simulation to
make the simplification of the analysis system (I guess...)

Reply by julius●April 17, 20092009-04-17

On Apr 17, 7:58�am, "nhusna" <nhu...@ic.utm.my> wrote:

> Hi,
> I'm currently doing project on OFDM based. I want to transmit my signal
> through a Rayleigh channel. assume that the received signal should be
> y(t)=x(t)*h(t)+n(t) or Y(f)=X(f)H(f)+N(f).
>
> I understand that in order to get y(t), we need to do a convolution
> between x(t) and h(t). let say, after IFFT in OFDM part, then I change the
> signal into serial where the data is in time domain. Now, I don't want to
> do the convolution part, where from my understanding convolution in time
> domain is multiplication in freq. domain.
>
> I came across this matlab codes % Rayleigh fading
> �h = sqrt(0.5)*( randn( 1, symbols_per_frame) + j*randn(
> 1,symbols_per_frame) );
> �% complex noise
> �noise = sqrt(variance)*( randn(1,symbols_per_frame) +
> j*randn(1,symbols_per_frame) );
> �% in all
> �y = h.*x + noise;
>
> so my questions now are:
>
> 1. Is the matrix multiplication means circular convolution where it need
> me to change the time domain data back to freq. domain by FFT {x(t)}?
>
> 2. If I already do the FFT of the data, it is means that I don't needs to
> FFT it again at the receiver, right?
>
> 3. is the h in the above code is valid to implement? how can I define the
> doppler from the code?
>
> Please help me, I really stuck at this for so long.
> TQ

I'm not going to read your code, but realize that in real life,
neither your channel nor your signal is going to be periodic.
The FFT is a fast version of the DFT, which is for periodic
discrete-time signals both in time and in frequency.
So how do you make sure that your simulation is realistic?
Julius

Reply by nhusna●April 17, 20092009-04-17

Hi,
I'm currently doing project on OFDM based. I want to transmit my signal
through a Rayleigh channel. assume that the received signal should be
y(t)=x(t)*h(t)+n(t) or Y(f)=X(f)H(f)+N(f).
I understand that in order to get y(t), we need to do a convolution
between x(t) and h(t). let say, after IFFT in OFDM part, then I change the
signal into serial where the data is in time domain. Now, I don't want to
do the convolution part, where from my understanding convolution in time
domain is multiplication in freq. domain.
I came across this matlab codes % Rayleigh fading
h = sqrt(0.5)*( randn( 1, symbols_per_frame) + j*randn(
1,symbols_per_frame) );
% complex noise
noise = sqrt(variance)*( randn(1,symbols_per_frame) +
j*randn(1,symbols_per_frame) );
% in all
y = h.*x + noise;
so my questions now are:
1. Is the matrix multiplication means circular convolution where it need
me to change the time domain data back to freq. domain by FFT {x(t)}?
2. If I already do the FFT of the data, it is means that I don't needs to
FFT it again at the receiver, right?
3. is the h in the above code is valid to implement? how can I define the
doppler from the code?
Please help me, I really stuck at this for so long.
TQ