Concept check on doing multiply in time with circular convolution in frequency domain

So I think I have my thinking correct on what I'm trying to do, but I just want to make sure I'm not assuming something that isn't true. Below is what I'm currently doing in the time domain.

$r(t)$ is my received signal
$T$ is my period
$MultCurrent = r(n)\cdot r(n-T)$
$MultPrevious = r(n-T)\cdot r(n-2T)$
$Average(i) = Average(i-1) + MultCurrent - MultPrevious$

The average should be acting as a low pass filter. I'm using this to get my original data message back. This is working for me, but I'd like to do things in the frequency domain. Am I doing this correctly?

I'm assuming $x(n) \cdot y(n)$ is equivalent to $X(f)\star Y(f)$ where the convolution is a circular convolution.

$N= 32$
$cconv()$ is the $N$ point circular convolution of two sequences
$fft1 = fft(r(n)$ from $n$ to $N)$
$fft2 = fft(r(n-T)$ from $n-T$ to $N)$
$fft3 = fft(r(n-2T)$ from $n-2T$ to $N)$
$ConvCurrent = cconv(fft1,fft2)$
$ConvPrevious = cconv(fft2,fft3)$
$Average(i) = Average(i) + ConvCurrent(0) - ConvPrevious(0)$

$ConvCurrent(0)$ is bin 0 of the result of the circular convolution (DC component). This is because i'm wanting the low pass filtered result. Is this the correct way to think about it? From what i'm thinking, i should need to transform back into the time domain. Also, if i'm wanting to filter my results before i do the circular convolution, can i just zero out all the frequency bins except for the frequency I care about? I'm not sure if this would cause any problems. Thanks a bunch!

• I'm sorry but your description of the first averaging process is not a lowpass system but a highpass one, due to the subtraction you perform... when two neighbouring samples are subtracted their low frequency portions are suppressed, since they are expected to be similar, which is the main idea behind all differential encoders. – Fat32 Feb 29 '16 at 17:30
• would it be a lowpass system if I was multiplying my signal by a reference signals, say $cos(2 \pi f_c t)$, instead? I thoughts that's how it would work for BPSK or binary ASK. – gerrgheiser Feb 29 '16 at 18:54
• hmm interesting... – Fat32 Feb 29 '16 at 19:20
• I thought how binary ASK worked was you took your data signal (consisting of -1 and 1) $M(t)$ and multiplied it by your carrier frequency and that was you modulation. So you'd end up with $M(t) \cdot cos(2 \pi f_c t)$. For the demodulation you would multiply your received signal $r(t)$ by your carrier frequency ($r(t) \cdot cos(2 \pi f_c t)$). That would give you your original data signal at low frequencies and 1/2 amplitude, and you would also have components at $2 f_c$ due to the multiplication at the beginning of the receiver. a Low pass filter would give you just the data signal. – gerrgheiser Mar 1 '16 at 16:52
• I thought an average would be the same as a low pass filter since you're looking at your DC offset. – gerrgheiser Mar 1 '16 at 16:52