+ Post New Thread
Results 1 to 4 of 4

4th November 2019, 09:08 #1
 Join Date
 Nov 2019
 Posts
 5
 Helped
 0 / 0
 Points
 50
 Level
 1
How to perform FFT on random data signal correctly in MATLAB?
Hello,
I am a student doing research in highspeed electrical link.
I have came up with a new signaling scheme, and want to see spectrum plot of it but not sure how to correctly perform fft on the signal in MATLAB.
My signaling scheme, uses phase modulation to have same spectral efficiency as PAM4 signal (which is 2bits/UI) but has oneUI that is 1.25 times larger than the PAM4 signaling.
We know that for PAM4 signaling, the first null in the spectrum plot appears at its symbolrate. Therefore, for the signaling scheme that I am proposing, I am expecting to see the first null at 1/1.25 = 0.8*symbolrate of PAM4. However, this is not the result that I am seeing through FFT.
I think I have followed all the fft rules (samplingrate >> symbolrate, including integer # of cycles) but not sure what is wrong..
Could anyone please help me on this?
Below is my code for fft.
Code  [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
% samplingrate is chosen Rs times the symbolrate of the signal. fs = f_sym*Rs; Ts = 1/fs; % warning if symbol period is smaller than the sampling interval if (fs < f_sym) error('symbol period is smaller than the sampling interval'); end % fft N = size(signal, 2); signal_fft = (fftshift(fft(signal, N)))/(N/2); signal_fft_abs = abs(signal_fft); signal_fft_db = db(signal_fft_abs); df = fs/N; f = fs/2:df:fs/2df; % plot the result figure; plot(f(end/2+1:end), db(signal_fft_abs(end/2+1:end)), linestyle);
The result shows correct plot for PAM4. I have used PAM4 signal with symbolrate of 1Gsymbol/s. Then, I see in the spectrum plot that there is null at multiples of 1GHz.
However, for the signaling scheme that I came up with, I see null at 4GHz even if its maximum symbolrate is 0.8Gsymbol/s. Why, I am not seeing a clear null at 800MHz?
Last edited by bassa; 4th November 2019 at 09:49. Reason: add code syntax

Advertisement

4th November 2019, 18:57 #2
Awards:
 Join Date
 Apr 2014
 Posts
 16,081
 Helped
 3643 / 3643
 Points
 79,246
 Level
 68
Re: How to perform FFT on random data signal correctly in MATLAB?
Hi,
I think I have followed all the fft rules (samplingrate >> symbolrate, including integer # of cycles) but not sure what is wrong..
Can you post a picture of your FFT signal input (time domain)
KlausPlease don´t contact me via PM, because there is no time to respond to them. No friend requests. Thank you.

Advertisement

5th November 2019, 05:16 #3
 Join Date
 Nov 2019
 Posts
 5
 Helped
 0 / 0
 Points
 50
 Level
 1
Re: How to perform FFT on random data signal correctly in MATLAB?
Hello KlausST,
Thank you for your reply.
For the following spectrum result that I posted before, I am using the following values.
For PAM4,
symbolrate is 1Gsym/s (f_sym = 1e9) so one symbol period is 1ns.
Samplingrate is 1000GHz (Rs = 1000).
This is the timedomain of PAM4 signal that I am using as one period in npoint dft.
It contains 100 symbols, and in each symbol there are 1000 samples of points, so total 100000 points in the dft.
Attachment 156359
For the signaling scheme that I am proposing, it uses PAM4 signaling and PM4 in an alternate way as below.
In this case, symbolrate in PAM4 UI is 1Gsym/s. In PM4 UI, PM spacing is 0.25UI.
Therefore, minimum pulsewidth of 1.25UI can be achieved.
symbolrate is set to 1Gsym/s (f_sym = 1e9) so minimum pulsewidth is 1.25ns in this case.
Samplingrate is 1000GHz (Rs = 1000).
This is the timedomain of the signal that I am using as one period in npoint dft.
It contains 100 symbols of PAM4 and PM4 each (so in total 200 symbols).
In each PAM4 symbol, there are 1000 samples of points.
In each PM4, each PM slice in time (0.25UI) contains 250 samples of points.
Attachment 156358
Thank you.

Advertisement

5th November 2019, 07:51 #4
Awards:
 Join Date
 Apr 2014
 Posts
 16,081
 Helped
 3643 / 3643
 Points
 79,246
 Level
 68
Re: How to perform FFT on random data signal correctly in MATLAB?
Hi,
Before you talked about FFT. There the window size should be 2^n samples (n = integer).
Now you talk about DFT. Why?
DFT window size should be an integer value.
Independent of DFT or FFT...you should imagine that the input windows (with same content) are placed one after the other (= signal is repeating). Now check that there is no mismatch at the edges of the window.
If you can't ensure this ... you need to perform a "windowing function" (Hamming, von Hann ...) before you perform the fourier function.
For an FFT: if possible use Rs = 512 or Rs = 1024 (instead of 1000). Check if this gives a benefit.
KlausPlease don´t contact me via PM, because there is no time to respond to them. No friend requests. Thank you.
+ Post New Thread
Please login