Problem with Square() for high frequenzies
Show older comments
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
Accepted Answer
More Answers (0)
Categories
Find more on Descriptive Statistics in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!