From: Eric Jacobsen on
On 12/9/2009 9:02 AM, commengr wrote:
> Hello,
>
> I am simulating the performance of an OFDM based communication system,
> where I convolve OFDM symbols with the Channel Impulse Response (7-Tap
> Rayleigh distributed)
>
> The problem is that Matlab function conv( ) takes a lot of processing
> time. I tried to declare the output variable as a vector of zeros. This did
> help, but only slightly.
>
> Under Monte Carlo's method, it gets really annoying. Another alternate is
> the filter( ) command, where I can assume the channel is an FIR filter,
> however, this approach makes the use of cyclic prefix redundant (changing
> CP does not have any affect on BER)
>
> Any suggestions?
>
>
> ---
> Oh, by the way, since the data is not cyclic, I can't do Fast Convolution
> via DFT
>
>
> On an unrelated matter, after modeling the channel as an FIR filter and
> checking its frequency response using the freqz( ) function, the phase
> apparently shows as 'non-linear', so many books say that phase of an FIR
> filter is always linear like Ifeachor's book etc
>
>

Symmetric FIRs guarantee linear phase, in other cases the phase is not
necessarily linear. Minimum phase FIRs are generally not linear phase.
Anything in between is also possible.

You might try a loop with dot products in Matlab. Using array or matrix
functions is what it's good at. Otherwise recoding in C or something
suitable might be an option.

--
Eric Jacobsen
Minister of Algorithms
Abineau Communications
http://www.abineau.com
From: Greg Berchin on
On Wed, 09 Dec 2009 10:58:48 -0600, "commengr"
<communications_engineer(a)yahoo.com> wrote:

>Thanks Greg. Any idea on a faster method for convolution?

Rune actually covered it. Zeropad sufficiently to ensure linear convolution,
and use the FFT:multiply:IFFT.

I had thought that the Matlab conv() function already used the FFT, but after
digging a little bit it appears that it does not. So the FFT may save you some
time.

Greg
From: steveu on
>>On 9 Des, 17:02, "commengr" <communications_engin...(a)yahoo.com> wrote:
>>> Hello,
>>>
>>> I am simulating the performance of an OFDM based communication
system,
>>> where I convolve OFDM symbols with the Channel Impulse Response
(7-Tap
>>> Rayleigh distributed)
>>>
>>> The problem is that Matlab function conv( ) takes a lot of processing
>>> time.
>>
>>> Oh, by the way, since the data is not cyclic, I can't do Fast
>Convolution
>>> via DFT
>>
>>IDIOT!!
>>
>>You, for listening to the delusions of almost all the
>>regulars here; Almost all the regulars for messing around
>>with the cyclic proerties of the DFT causing this
>>kind of confusion among the incopmpetent and mentally
>>challenged!
>>
>>Of course you can use the DFT. Just zero-pad the data
>>sufficiently to avoid the wrap-around effects. This is
>>so basic that it is covered in *all* textbooks on DSP.
>>
>>Rune
>>
>
>===========================================================
>
>RUNE, THERE ARE BETTER WAYS TO START AN ANSWER!
>
>I think your answer is offensive!
>
>If you thought it was a poor question you should have not
>answer it!
>===========================================================
>
>I do not want to increase the number of bits to what I already have due
to
>
>monte carlo.

There are better ways to start an education, too. You are trying to do
OFDM (something reasonably advanced), yet you clearly don't understand the
basics of FIRs or DFTs (entry level stuff). Are you trying to live life
backwards?

Steve

From: Jerry Avins on
commengr wrote:
>> On 9 Des, 17:02, "commengr" <communications_engin...(a)yahoo.com> wrote:
>>> Hello,
>>>
>>> I am simulating the performance of an OFDM based communication system,
>>> where I convolve OFDM symbols with the Channel Impulse Response (7-Tap
>>> Rayleigh distributed)
>>>
>>> The problem is that Matlab function conv( ) takes a lot of processing
>>> time.
>>> Oh, by the way, since the data is not cyclic, I can't do Fast
> Convolution
>>> via DFT
>> IDIOT!!
>>
>> You, for listening to the delusions of almost all the
>> regulars here; Almost all the regulars for messing around
>> with the cyclic proerties of the DFT causing this
>> kind of confusion among the incopmpetent and mentally
>> challenged!
>>
>> Of course you can use the DFT. Just zero-pad the data
>> sufficiently to avoid the wrap-around effects. This is
>> so basic that it is covered in *all* textbooks on DSP.
>>
>> Rune
>>
>
> ===========================================================
>
> RUNE, THERE ARE BETTER WAYS TO START AN ANSWER!
>
> I think your answer is offensive!
>
> If you thought it was a poor question you should have not
> answer it!
> ===========================================================
>
> I do not want to increase the number of bits to what I already have due to
>
> monte carlo.

Zero padding is always necessary with fast convolution. Without it, you
get circular convolution. Rune was exactly right.

Why in the world are you messing with Monte Carlo randomizing? even a
linear congruential RNG should be good enough.

Jerry
--
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������
From: John on
On Dec 9, 11:02 am, "commengr" <communications_engin...(a)yahoo.com>
wrote:
> Hello,
>
> I am simulating the performance of an OFDM based communication system,
> where I convolve OFDM symbols with the Channel Impulse Response (7-Tap
> Rayleigh distributed)
>
> The problem is that Matlab function conv( ) takes a lot of processing
> time. I tried to declare the output variable as a vector of zeros. This did
> help, but only slightly.
>
> Under Monte Carlo's method, it gets really annoying. Another alternate is
> the filter( ) command, where I can assume the channel is an FIR filter,
> however, this approach makes the use of cyclic prefix redundant (changing
> CP does not have any affect on BER)
>
> Any suggestions?
>
> ---
> Oh, by the way, since the data is not cyclic, I can't do Fast Convolution
> via DFT
>

Try replacing conv() with fftfilt(), and oh by the way your assertion
is false.

John