- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi i have been trying to implement multiplierless cross correlation of OFDM for IEEE 802.16d and i am stuck on the part as to how should i represent my correlator coeffiients . as they are in complex for such as 16 correlator coeffiecients -1,-1j .... for quantization level 1 and what should be my known preamble as it should also be of 16 samples. i am currently confused about this part i have bee reading various paper on it and none specify how to represent correlator coefficients in binary form and what should it be correlated with can you please help
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
my correlator coefficients are gm=-1,-1j,1,1,1,-1j,-1,0,-1j,-1,1j,1j,1j,-1,-1j,0 and it needs to be correlated with 16 signal samples to generate one correlator output. if anyone can put me in the right direction it would be great
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- my correlator coefficients are gm=-1,-1j,1,1,1,-1j,-1,0,-1j,-1,1j,1j,1j,-1,-1j,0 and it needs to be correlated with 16 signal samples to generate one correlator output. if anyone can put me in the right direction it would be great --- Quote End --- Away from specifics of your case a complex correlator is based on sum of products just like complex FIR. every real output sample = sum of (Re1.Re2 - Im1.Im2) for all 16 elements every imag output sample = sum of (Re1.Im2 + R2I.m1) for all 16 elements where Re1 is real input and Im1 is imag input, Re2 is real coeff, Im2 is imag coeff since your coeffs are zeros or ones you don't need scaling but 0 means zero result and ones mean pass input
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Away from specifics of your case a complex correlator is based on sum of products just like complex FIR. every real output sample = sum of (Re1.Re2 - Im1.Im2) for all 16 elements every imag output sample = sum of (Re1.Im2 + R2I.m1) for all 16 elements where Re1 is real input and Im1 is imag input, Re2 is real coeff, Im2 is imag coeff since your coeffs are zeros or ones you don't need scaling but 0 means zero result and ones mean pass input[/QUOTE hey thank you for your reply one confusion as when we do cross correlation i need a fixed input too with which correlation will be done of the coefficients i read papers and it suggests as OFDM is my application i will get that input from there is it? and i m willing to design a multiplierless correlator using shift and add how could that be done. i am planning on designing a correlator using binary bits which gives better performance and computation and uses less area. so i am planning to do it by correlating two binary inputs and getting the putput using shift and add do you have any idea how should i proceed with it
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hey thank you for your reply one confusion as when we do cross correlation i need a fixed input too with which correlation will be done of the coefficients i read papers and it suggests as OFDM is my application i will get that input from there is it?
and i m willing to design a multiplierless correlator using shift and add how could that be done. i am planning on designing a correlator using binary bits which gives better performance and computation and uses less area. so i am planning to do it by correlating two binary inputs and getting the putput using shift and add do you have any idea how should i proceed with it and yes with your idea what should be my other input for correlation .i am quite new to this- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- hey thank you for your reply one confusion as when we do cross correlation i need a fixed input too with which correlation will be done of the coefficients i read papers and it suggests as OFDM is my application i will get that input from there is it? and i m willing to design a multiplierless correlator using shift and add how could that be done. i am planning on designing a correlator using binary bits which gives better performance and computation and uses less area. so i am planning to do it by correlating two binary inputs and getting the putput using shift and add do you have any idea how should i proceed with it and yes with your idea what should be my other input for correlation .i am quite new to this --- Quote End --- Your input is the OFDM received signal (you are designing part of a working receiver hopefully). Your coeffs are those you have given and are I assume standard for your preamble. From where did you get those nice coeffs, I don't know about them and why are they zeros and ones only. You can add directly in parallel (leads to very wide adder so requires pipelining) or use shift_add (transposed structure). There ia plent around about either structure.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yes i was working on that previously but designing a working receiver of OFDM was too much work so now i am focussing on just creating a multiplierless correlator that is by using shift and add. i read about it ...is it not possible to do cross correlation on two binary numbers coz i read that only floating or fixed point input is used for that? as i want to use 8 bit numbers and then get to the correlator output using shift add and how to do i proceed with that. can you provide with some data or idea how to do it
and about the OFDM coefficients i read a paper about multiplierless correlation of OFDM if you want i can send you that- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
8 bit data is fixed point most likely
You can attach your ofdm doc here or to my email accessed from forum.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
you can find the paper here on this link
http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1205462&url=http%3a%2f%2fieeexplore.ieee.org%2fiel5%2f30%2f27133%2f01205462.pdf%3farnumber%3d1205462 and do you have ideas about reliable shift add techniques- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- you can find the paper here on this link http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1205462&url=http%3a%2f%2fieeexplore.ieee.org%2fiel5%2f30%2f27133%2f01205462.pdf%3farnumber%3d1205462 and do you have ideas about reliable shift add techniques --- Quote End --- Your case is straightforward addition of 16 values. It can be done as shift add or add in parallel. Either will work. Look at FIR structures (direct and transposed, the direct is parallel addition of products, the transposed is shift add of products). There is a lot around on the internet. In your case: you have no mults and each product result is either 0 or +input value or -input value(inverted) you need to check orientation of received signal with that of coeffs. You either use coeffs as 1~ 16 or 16~1. One will be correct.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi thank you kaz i have been trying to understand add and shift for multiplication i have two inputs say 29 and 8 in binary and want to get the multiplied output using add and shift i tried double shift and add and many methods but having problems if i change inputs
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do not get mixed up about the term shift. it is not bitshift but sample shift.
in Google = Images and type transposed fir The very first picture (if there for you) should work for you but make it 16 stages.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
any z(-1) block is one register delay stage.
you will need four pipes: Re * coffRe Re * coeffim im *coeffRe im * coeffIm The final Re and Im outputs are as explained in my first post.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- any z(-1) block is one register delay stage. you will need four pipes: Re * coffRe Re * coeffim im *coeffRe im * coeffIm The final Re and Im outputs are as explained in my first post. --- Quote End --- hey as my guide suggested i should focus on implementing a multiplierless correlator for that i designed it in matlab so that i know if i give two inputs what output a correlator gives so for example i gave 29 and 8 the answer was 232 so in order to design it in vlsi i have to do this multiplication via shift and add and for that i have been studying techniques and there is always an error somewhere a carry lefts off and in some cases answer not correct..suggest me some techniques if you will. as now i am focusing on creating multiplierless correlator without multiplication and then do performance analysis of those techniques
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- hey as my guide suggested i should focus on implementing a multiplierless correlator for that i designed it in matlab so that i know if i give two inputs what output a correlator gives so for example i gave 29 and 8 the answer was 232 so in order to design it in vlsi i have to do this multiplication via shift and add and for that i have been studying techniques and there is always an error somewhere a carry lefts off and in some cases answer not correct..suggest me some techniques if you will. as now i am focusing on creating multiplierless correlator without multiplication and then do performance analysis of those techniques --- Quote End --- where did you get 8 from to multiply. Yoy stated your coeffs are either 0,1,-1 (complex). If you have anything else in coeffs such as 8 or any power of 2 (2,4,8,16...) then you can multiply by bit shift inserting leading zeros
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- where did you get 8 from to multiply. Yoy stated your coeffs are either 0,1,-1 (complex). If you have anything else in coeffs such as 8 or any power of 2 (2,4,8,16...) then you can multiply by bit shift inserting leading zeros --- Quote End --- i am using random inputs just so that i can design it in VHDL and if it works it be used for other application as in the paper i sent you it was used for OFDM and those complex coefficients are of OFDM since i am not implmenting OFDM transceiver i will just be designing a correlator in VHDL and then seeing which techniues is better by using differebt adders plannning on using carry select in shift and add. so 8 is just an random input i will use a i am taking 8 bit data for multiplication so i need techniques for shift and add
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- i am using random inputs just so that i can design it in VHDL and if it works it be used for other application as in the paper i sent you it was used for OFDM and those complex coefficients are of OFDM since i am not implmenting OFDM transceiver i will just be designing a correlator in VHDL and then seeing which techniues is better by using differebt adders plannning on using carry select in shift and add. so 8 is just an random input i will use a i am taking 8 bit data for multiplication so i need techniques for shift and add --- Quote End --- and that correlator i am designing is just normally by shifting and adding and further research it can be used for many applications be it any COmmunication or dsp application
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- and that correlator i am designing is just normally by shifting and adding and further research it can be used for many applications be it any COmmunication or dsp application --- Quote End --- if your coeffs are ones,zeros and minus ones you don't need any explicit mults or shift mults. if youe coeffs are power of 2 you can use shift mults if your coeffs are any value you need proper mults. your input will be any value.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- if your coeffs are ones,zeros and minus ones you don't need any explicit mults or shift mults. if youe coeffs are power of 2 you can use shift mults if your coeffs are any value you need proper mults. your input will be any value. --- Quote End --- my values are powers of two and the techniques i studied are not giving same answer

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page