I generate Multi tones in the frequency domain with constant amplitude and phase, for a fixed distance between tones. As the figure below, where r is the change in frequency spacing between different symbols, n is the tone index starting on the left in the spectrum, N is the total amount of tones, M is the modulation order, and m is the symbol index. fc=2.45GHz, f_delta= 1KHz, r=0.5,N=3,M=4. I want to send the information between tones; I think I can do it by FFT frequency bins. My question: How can I make some bins refer to one and other bins to zero between those tones?enter image description here

  • $\begingroup$ HI Oasim- It is not really clear what you are asking for by " Make some bins refer to one and other bin". Is this a homework problem? Or what are you trying to do specifically? Further context may help. $\endgroup$ Commented Feb 12, 2020 at 12:08
  • $\begingroup$ What does "sending information between tones" mean? I could understand if you wanted to, like, send information between computers or between people. $\endgroup$ Commented Feb 12, 2020 at 14:03
  • $\begingroup$ @user253751 Thanks for your comment! I meant symbols " one or zero" $\endgroup$ Commented Feb 13, 2020 at 5:21
  • $\begingroup$ @DanBoschen Thanks for your comment. I'm trying to send symbols between tones; it's a modified modulation. After generating the tones and taking the FFT, I need to send the symbols between those tones "through the distance f_delta" and then taking the IFFT to send it to the receiver. $\endgroup$ Commented Feb 13, 2020 at 5:22
  • 1
    $\begingroup$ @A_A yes I get the 0/1 part now which is why I said that part would be trivial so was assuming his question is how to add more samples in general in between the tones if you are already in the frequency domain (interpolation in frequency) $\endgroup$ Commented Feb 13, 2020 at 12:08

1 Answer 1


Assuming the OP wants to manipulate a time domain function such that zeros are inserted in the frequency domain result, here is a simple approach:

Simply replicate the time domain samples and then divide by the number of repetitions to normalize and this will result in the same frequency domain result as the series that was replicated, with additional zeros inserted based on how many times the time domain sample was replicated.

Here is a simple example:

$fft([1, 2, 4, 2]) = [9, -3, 1, 3]$

To insert one zero in between each sample repeat the time domain sample once and divide by 2:

$fft([1,2,4,2,1,2,4,2])/2 = [9, 0, -3,0, 1 ,0, 3]$

To insert two zeros in between each sample repeat the time domain sample twice and divide by 3:

$fft([1,2,4,2,1,2,4,2,1,2,4,2])/3 = [9, 0,0, -3,0,0, 1 ,0,0,3]$

It might be easier to understand how this occurs when you insert zeros in the time domain which causes repetition of the signal in the frequency domain over the duration of the DFT signal. This is explained in further detail here with regards to interpolation using zero-insert:

Upsampling and comb function

  • $\begingroup$ @ Dan Boschen Thanks a lot, that was helpful, but what about adding ones, not just zeros, as I told you before I need to send data, and data contains zeros and ones. $\endgroup$ Commented Feb 14, 2020 at 5:10
  • $\begingroup$ That part is indeed trivial isn't it? Now that the sample exists, if it is zero and you want it to be one, just assign that sample to be one. For example, if I have x = [0,0,0,0,0] and I want the third sample to be 1, then x[3] =1. $\endgroup$ Commented Feb 14, 2020 at 5:11
  • $\begingroup$ And if we know that the frequency bins we have assigned are going to be in every 4th (for example) bin, isn't that trivial as well? If f = [1, 2,4, 2] then f2 = [f[1], 0, 0, f[2], 0, 0, f[3], 0, 0, f[4]] and if I had data to isert D1, D2, D3, D4 then it would be f= [f[1], D1, D2, f[2], D3, D4, f[3], 0, 0, f[4]]. What is the issue with doing that? (Just stuff the data in into its assigned bin) $\endgroup$ Commented Feb 14, 2020 at 5:14
  • $\begingroup$ (The point with OFDM is the data is already represented in the frequency domain; we start there and simply fill the DFT bins with the data, and then take the IDFT to create the waveform we will transmit. You don't actually start with any time domain waveform, perhaps that is what is confusing you?) And it would be unlikely to map 0 and 1 data bits to 0 and 1 bins, but rather +1 =1 if using BPSK modulation, or higher order modulations. $\endgroup$ Commented Feb 14, 2020 at 5:16
  • $\begingroup$ Thank you sir Dan Boschen, I appreciate your help, by the way, I am working on Simultaneous wireless information and power transfer (SWIPT), and this is my reference paper: ieeexplore.ieee.org/document/8694950 $\endgroup$ Commented Feb 14, 2020 at 7:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.