Signal Processing Asked by sawpythonnewbie on December 11, 2020
I wanted to compare two different I-Q spectrum plots of a basic transmitter, one in which I doubled the bit rate. I expected a different result, that of possibly a higher/faster graph. It looks sort of the same, but that the doubled bit rate has more noise? I am not understanding the results here.
Do you know how ADS is plotting the spectrum? Plotting the spectrum without doing some kind of normalization will give you a higher magnitude. Once you determine the size of the FFT, normalizing by the length will give you the same magnitude no mater what sampling rate you choose.
For example let's take two rectangular signals, one sampled at 1 MHz and the other at 2 MHz. Below are their spectrums without normalization:
Since the bottom one is sampled twice as fast, it eventually produces an FFT size that is twice as long, hence the 6 dB increase in the peak.
Now compare this to the same exact signals, but now their magnitudes are normalized by their respective FFT sizes:
Now you can see that the peaks are the same magnitude. You can play with normalizing all day long to fit your need. It is the shape of the spectrum that is usually most important.
Here is some quick MATLAB code so you can maybe try it yourself and play around a bit.
%% Signal generation and FFT
% Sampling rates
fs1 = 1e6;
fs2 = 2e6;
% Rectangular pulse signals
t1 = 0:1/fs1:1e-5;
t2 = 0:1/fs2:1e-5;
pulseSignal1 = ones(1, numel(t1));
pulseSignal2 = ones(1, numel(t2));
% FFT setup
nfft1 = 100*numel(t1);
f1 = fs1.*(-nfft1/2:nfft1/2-1)/nfft1;
nfft2 = 100*numel(t2);
f2 = fs2.*(-nfft2/2:nfft2/2-1)/nfft2;
%% Without Normalization
figure;
subplot(2, 1, 1);
plot(f1./1e6, 20*log10(abs(fftshift(fft(pulseSignal1, nfft1)))));
xlabel("Frequency (MHz");
ylabel("Magnituide (dB)");
legend("F_s = 1 MHz");
ylim([-40 50]);
subplot(2, 1, 2);
plot(f2./1e6, 20*log10(abs(fftshift(fft(pulseSignal2, nfft2)))));
xlabel("Frequency (MHz");
ylabel("Magnituide (dB)");
legend("F_s = 2 MHz");
ylim([-40 50]);
%% With Normalization
figure;
subplot(2, 1, 1);
plot(f1./1e6, 20*log10(abs(fftshift(fft(pulseSignal1, nfft1)./nfft1))));
xlabel("Frequency (MHz");
ylabel("Magnituide (dB)");
legend("F_s = 1 MHz");
ylim([-80 -10]);
subplot(2, 1, 2);
plot(f2./1e6, 20*log10(abs(fftshift(fft(pulseSignal2, nfft2)./nfft2))));
xlabel("Frequency (MHz");
ylabel("Magnituide (dB)");
legend("F_s = 2 MHz");
ylim([-80 -10]);
Correct answer by Envidia on December 11, 2020
0 Asked on February 2, 2021 by comradeh
1 Asked on January 29, 2021 by mohit-lamba
0 Asked on January 29, 2021 by junghak-ahn
causality frequency domain hilbert transform ifft impulse response
2 Asked on January 28, 2021 by ictguy1
power spectral density signal analysis spectrogram speech processing
2 Asked on January 27, 2021 by mohamad-jarmak
fourier frequency response image image processing signal analysis
1 Asked on January 21, 2021 by astroturfdurf
1 Asked on January 20, 2021 by jbphysics
5 Asked on January 20, 2021
0 Asked on January 18, 2021 by raykh
autocorrelation discrete signals fourier transform wiener filter z transform
3 Asked on January 15, 2021
2 Asked on January 15, 2021 by mr-johnny-doe
2 Asked on January 14, 2021 by ameer
analytic signal discrete signals linear systems signal analysis wavelet
0 Asked on January 13, 2021 by an6
quantization speech speech processing speech recognition speech synthesis
2 Asked on January 10, 2021 by tmueller
0 Asked on January 8, 2021 by james-pinkerton
3 Asked on January 8, 2021 by christopher-oezbek
1 Asked on January 3, 2021 by pierebean
1 Asked on January 1, 2021 by atra-es
Get help from others!
Recent Questions
Recent Answers
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP