Hello,
I am a student doing research in high-speed 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 PAM-4 signal (which is 2bits/UI) but has one-UI that is 1.25 times larger than the PAM-4 signaling.
We know that for PAM-4 signaling, the first null in the spectrum plot appears at its symbol-rate. Therefore, for the signaling scheme that I am proposing, I am expecting to see the first null at 1/1.25 = 0.8*symbol-rate of PAM-4. However, this is not the result that I am seeing through FFT.
I think I have followed all the fft rules (sampling-rate >> symbol-rate, including integer # of cycles) but not sure what is wrong..
Could anyone please help me on this?
Below is my code for fft.
% sampling-rate is chosen Rs times the symbol-rate 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/2-df;
% 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 PAM-4. I have used PAM-4 signal with symbol-rate 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 symbol-rate is 0.8Gsymbol/s. Why, I am not seeing a clear null at 800MHz?