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 commentaires

Paul
Paul le 22 Sep 2022
Hi MAWE,
Posting the code and the results you're seeing will make it easier for someone to help.
Bjorn Gustavsson
Bjorn Gustavsson le 22 Sep 2022
How many samples per bit in the BPSK sequence?
MAWE
MAWE le 22 Sep 2022
@Bjorn Gustavsson 16 and fs = 8 GHz
MAWE
MAWE le 22 Sep 2022
@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
MAWE
MAWE le 22 Sep 2022
@Paul I edited the questions to explain how I calculated the PSD from fft.

Connectez-vous pour commenter.

Réponses (1)

Bjorn Gustavsson
Bjorn Gustavsson le 22 Sep 2022

0 votes

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 commentaires

MAWE
MAWE le 23 Sep 2022
@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 le 23 Sep 2022
Modifié(e) : MAWE le 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.
MAWE
MAWE le 23 Sep 2022
It looks the attached image
MAWE
MAWE le 23 Sep 2022
@Bjorn Gustavsson Also, the bandwidth of the signal is 500 MHz

Connectez-vous pour commenter.

Catégories

En savoir plus sur Get Started with Signal Processing Toolbox dans Centre d'aide et File Exchange

Produits

Version

R2019b

Question posée :

le 22 Sep 2022

Commenté :

le 23 Sep 2022

Community Treasure Hunt

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

Start Hunting!

Translated by