Unexpected behavior of FFT

I have this signal
r = x.*cos(2*pi*f1.*t) + i.*cos(2*pi*f2.*t) + n
where x and i are BPSK symbols {+1,-1} and n is additive Gaussian noise.
When I find the positive part of the PSD using fft I was expecting to get two peaks one at f1 and one at f2. However, I get the peaks towards the hight frequency fs/2 where fs is the sampling rate. Why is this happening?
EDIT: See figure
I = imread('PSD_test.png');
imshow(I)
EDIT: I calculate the PSD from fft like so
N=length(r);
Unrecognized function or variable 'r'.
rFFT = fft(r,N);
prr = 2.*abs(rFFT).^2/(fs*N);

5 Comments

Hi MAWE,
Posting the code and the results you're seeing will make it easier for someone to help.
How many samples per bit in the BPSK sequence?
@Bjorn Gustavsson 16 and fs = 8 GHz
@Paul The actual code is involved. I just tried to put the gest to understand why I get unexpected behavior. Do I need to shift the frequencies of the fft by fftshift, for example? I did that but didn't work
@Paul I edited the questions to explain how I calculated the PSD from fft.

Sign in to comment.

Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 22 Sep 2022
In the field (IS-radar) I work we have typical carrier-frequencies of 224-1000 MHz and the modulation band-width is a couple of MHz. Here you try to use BPSK with baud-lengths of 16 samples - which corresponds to a really high frequency. To my understanding you don't have a large ferquency-span between the modulation-frequency and the Nyquist-frequency. Does the signal look sensible if you plot it for a time-period of a couple of bits.

5 Comments

@Bjorn Gustavsson The carrier frequencies I use are > 28 GHz (satellite communication. Ka band). The Nyquist frequnecy is 4 GHz in baseband. It is 28 + 4 GHz in passband.
MAWE
MAWE on 23 Sep 2022
Edited: MAWE on 23 Sep 2022
@Bjorn Gustavsson I included the results I get in the question. x and i scaled differently in the figure, but the concern is the frequency shift of each of them.
Plot the signal as a function of time for the first 5 bits:
plot(t,Sig(1:(16*5)),'.-')
Look at that.
It looks the attached image
@Bjorn Gustavsson Also, the bandwidth of the signal is 500 MHz

Sign in to comment.

Categories

Products

Release

R2019b

Asked:

on 22 Sep 2022

Commented:

on 23 Sep 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!