Problem with Square() for high frequenzies
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Adrian Alexander
am 24 Mär. 2021
Bearbeitet: Cris LaPierre
am 24 Mär. 2021
Hi this skript exists for analysing Aliasing of an ideal square like distortion in context of oversampling.
it works for a frequenzy of 1000 Hz but i need it to work at 20kHz. I dont really get why it doesnt work. The FFt needs the first 4 lines to work properly . thank u in advance
xsmpling=2
T = 1; % simulation time in seconds
fs =44100*xsmpling; Ts = 1/fs; % sampling frequency in Hz and sampling period
Nmax = T*fs; n = 0:Nmax-1; % simulation time (norm.)
f=20000%fsignal
x = sin(2*pi*f*Ts*n);
d = square(2*pi*f*n*Ts);
%% Spectrum
X = abs(fft(x)); X = X/max(X);
%figure('Name','frequenzy domain','NumberTitle','off');
figure()
plot((fs/Nmax)*(0:Nmax-1),20*log10(X),'LineWidth',2), grid
hold on
line([fs/2 fs/2],[-100 10],'LineWidth',1,'LineStyle','--')
line([20000 20000],[-100 10],'color','green','LineWidth',1,'LineStyle','--')
title('Analysis of Aliasing','FontSize',20)
hold on
axis([0 fs -60 0]);
ax = gca;
ax.FontSize = 20;
xlabel('Frequency in Hz \rightarrow','FontSize',20)
ylabel('Spectrum Magnitude in dB \rightarrow','FontSize',20)
Y = abs(fft(d)); Y = Y/max(Y);
%figure('Name','Chirp signal','NumberTitle','off');
plot((fs/Nmax)*(0:Nmax-1),20*log10(Y),'LineWidth',2), grid
legend('Signal','Nyquist','20kHz','Distortion','FontSize',20)
hold off
0 Kommentare
Akzeptierte Antwort
Cris LaPierre
am 24 Mär. 2021
Bearbeitet: Cris LaPierre
am 24 Mär. 2021
The issue right now is that when f>=2192, you start getting zero values in your fft results. When you take the natural log of Y in your last plot command, they turn into -inf. These get ignored when you plot. The result is that only isolated points are getting plotted. Because you have not specified a marker style, you can't see them. To see them, add a marker style to your plot command.
plot((fs/Nmax)*(0:Nmax-1),20*log10(Y),'.-','LineWidth',2), grid
^^^^ % specifies a linestyle and markerstyle
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Spectral Measurements finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!