>On Wed, 03 Feb 2016 11:58:54 -0600, JAlbertoDJ wrote:
>
>>>On Wed, 03 Feb 2016 07:48:48 -0600, "JAlbertoDJ" <12823@DSPRelated>
>>>wrote:
>>>
>>>>Hello,
>>>>
>>>>I am using the ifft for the typical channel estimation in the
frequency
>>>>domain, in this case using 64 carriers:
>>>>
>>>> ChannelEst= ifft( Y./X , 64);
>>>>
>>>>Y is the FFT of RX signal X is the FFT of TX signal
>>>>
>>>>When all the 64 FFT points are filled, the channel estimation is
>>>>perfect.
>>>>
>>>>But if i only TX some carriers: [12:50] and the rest of carriers are
>>>>zero, then the estimation channel has a lot of error.
>>>>
>>>>some idea?
>>>>
>>>>thanks
>>>
>>>The elements of X that are zero will be causing a divide-by-zero in
>>>Y./X., If the elements of X are very small the energy in those
>>>subcarriers will be amplified. That's probably not what you want.
>>>
>>>
>>>Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
>>
>>
>> You are agree, but i only divide Y./X. for the subcarriers position.
>> Rest,
>> i consider Y(n)=0, then Y(n)/X(n)=0
>
>Then, AFAIK, your channel estimation is almost as good as it can get, at
>least in a mean-square sense. Moreover, if the noise is white and the
>transmit power in the occupied channels equal, it's as good as it can
>get, period (in the mean-square sense).
>
>--
>www.wescottdesign.com
This is my code filling only (11:51) subcarriers. No AWGN added, however
estimation is bad.
nCP = 8; % Ciclic prefix
nFFT = 64;
L = 5; %L channel
NT = nFFT + nCP;
% Random channel taps
g = randn(L,1);
g = g/norm(g);
% generation of symbol
X = randi([0 15],nFFT,1); %16QAM symbols
modObj = modem.qammod(M);
XD(1:10)=0;
XD(11:51) = modulate(modObj,X(11:51)); % normalizing symbol power
XD(52:nFFT)=0;
x=ifft(XD,nFFT);
xout = [x(nFFT-nCP+1:nFFT);x]; % add Ciclic prefix
% channel convolution
y = conv(xout,g);
% Receiver processing
y = y(nCP+1:NT);
Y = fft(y,nFFT);
% frequency doimain LS channel estimation
HhatLS(1:10)=0;
HhatLS(11:51) = Y(11:51)./XD(11:51);
HhatLS(52:nFFT)=0;
ghatLS = real(ifft(HhatLS,nFFT));
ghatLS=ghatLS(1:L);
ghatLS = ghatLS/norm(ghatLS);
Error=ghatLS-g;
stem(Error)
---------------------------------------
Posted through http://www.DSPRelated.com
Reply by Tim Wescott●February 3, 20162016-02-03
On Wed, 03 Feb 2016 11:58:54 -0600, JAlbertoDJ wrote:
>>On Wed, 03 Feb 2016 07:48:48 -0600, "JAlbertoDJ" <12823@DSPRelated>
>>wrote:
>>
>>>Hello,
>>>
>>>I am using the ifft for the typical channel estimation in the frequency
>>>domain, in this case using 64 carriers:
>>>
>>> ChannelEst= ifft( Y./X , 64);
>>>
>>>Y is the FFT of RX signal X is the FFT of TX signal
>>>
>>>When all the 64 FFT points are filled, the channel estimation is
>>>perfect.
>>>
>>>But if i only TX some carriers: [12:50] and the rest of carriers are
>>>zero, then the estimation channel has a lot of error.
>>>
>>>some idea?
>>>
>>>thanks
>>
>>The elements of X that are zero will be causing a divide-by-zero in
>>Y./X., If the elements of X are very small the energy in those
>>subcarriers will be amplified. That's probably not what you want.
>>
>>
>>Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
>
>
> You are agree, but i only divide Y./X. for the subcarriers position.
> Rest,
> i consider Y(n)=0, then Y(n)/X(n)=0
Then, AFAIK, your channel estimation is almost as good as it can get, at
least in a mean-square sense. Moreover, if the noise is white and the
transmit power in the occupied channels equal, it's as good as it can
get, period (in the mean-square sense).
--
www.wescottdesign.com
Reply by JAlbertoDJ●February 3, 20162016-02-03
>On Wed, 03 Feb 2016 07:48:48 -0600, "JAlbertoDJ" <12823@DSPRelated>
>wrote:
>
>>Hello,
>>
>>I am using the ifft for the typical channel estimation in the frequency
>>domain, in this case using 64 carriers:
>>
>> ChannelEst= ifft( Y./X , 64);
>>
>>Y is the FFT of RX signal
>>X is the FFT of TX signal
>>
>>When all the 64 FFT points are filled, the channel estimation is
>>perfect.
>>
>>But if i only TX some carriers: [12:50] and the rest of carriers are
>>zero, then the estimation channel has a lot of error.
>>
>>some idea?
>>
>>thanks
>
>The elements of X that are zero will be causing a divide-by-zero in
>Y./X., If the elements of X are very small the energy in those
>subcarriers will be amplified. That's probably not what you want.
>
>
>Eric Jacobsen
>Anchor Hill Communications
>http://www.anchorhill.com
You are agree, but i only divide Y./X. for the subcarriers position. Rest,
i consider Y(n)=0, then Y(n)/X(n)=0
---------------------------------------
Posted through http://www.DSPRelated.com
Reply by Eric Jacobsen●February 3, 20162016-02-03
On Wed, 03 Feb 2016 07:48:48 -0600, "JAlbertoDJ" <12823@DSPRelated>
wrote:
>Hello,
>
>I am using the ifft for the typical channel estimation in the frequency
>domain, in this case using 64 carriers:
>
> ChannelEst= ifft( Y./X , 64);
>
>Y is the FFT of RX signal
>X is the FFT of TX signal
>
>When all the 64 FFT points are filled, the channel estimation is
>perfect.
>
>But if i only TX some carriers: [12:50] and the rest of carriers are
>zero, then the estimation channel has a lot of error.
>
>some idea?
>
>thanks
The elements of X that are zero will be causing a divide-by-zero in
Y./X., If the elements of X are very small the energy in those
subcarriers will be amplified. That's probably not what you want.
Eric Jacobsen
Anchor Hill Communications
http://www.anchorhill.com
Reply by JAlbertoDJ●February 3, 20162016-02-03
Hello,
I am using the ifft for the typical channel estimation in the frequency
domain, in this case using 64 carriers:
ChannelEst= ifft( Y./X , 64);
Y is the FFT of RX signal
X is the FFT of TX signal
When all the 64 FFT points are filled, the channel estimation is
perfect.
But if i only TX some carriers: [12:50] and the rest of carriers are
zero, then the estimation channel has a lot of error.
some idea?
thanks
---------------------------------------
Posted through http://www.DSPRelated.com