Thanks to the keen observation by Mr. Phan Minh Hoang, I was notified that the Matlab/Octave scripts provided along with the topic raised cosine filtering was not behaving properly.
Reason: I was not taking care of the division by zero when creating the raised cosine filter taps. 🙁
The equation for raised cosine filter is
is the excess bandwidth parameter and takes values from 0 to 1.
I was not taking care of the division by zero in the above equation. I updated the code to explictly handle the division by zero case where:
(a) for and
(Thanks to the article in RFDesign.com, The care and feeding of digital, pulse-shaping filter, Ken Gentile)
The updated posts are:
1. Raised cosine filter for transmit pulse shaping
2. Eye diagram with raised cosine filtering
Thanks again Mr. Phan Minh Hoang. 🙂All, In case you find errors and inconsistencies in the article and/or simulation models, kindly let me know. Regards,
9 thoughts on “Update: Correction in Matlab code for raised cosine filter”
hi, i need matlab code for ofdm transmission using pulse shaping filter like raised cosine filter
@ABHIJEET: I do not have that code, but you can refer to posts related to OFDM under
But, why do wish to do raised cosine filtering with ofdm?
in matlab using the inbuilt functions i generated random signal and modulated using QPSK and then transmitted adding awgn. After receiving and demodulating i m geeting zero bit error rate. Is it because of i have to use some other equations for QPSK and how can we change the frequency values and BW for the modulation. Please help me!!
@rasi: Try increasing the noise power and see whether you are getting non-zero BER. If not there might be some typos in the code. You may also refer to the post
cum sa scriu cosinus la patrat de un oarecare X, in softul MATLAB
@dima: Can you please translate to english your query
can you guide me to a site or some sources from where i can get help for the code written in c++ for digital communication?
Ofcourse, we can do the simulations in C++ (or any most other programming languages). The advantage with Matlab is that it is easier to code and debug compared to C.
In Matlab, Y = A*B where A and B are matrices is a one-liner.
Imagine how many lines of code we need to write for the same operation in C?
i hope u r doing fine… why dont we do the simulations in c++??? i mean is it possible to simulate QPSK in c++?