Gast
#5586308
Hallo,
ich möchte einen Rechteckimpuls mithilfe der FastFourierTransformation
das spektrum dieses Signals darstellen.
1. Erstellen eines Rechteckimpuls (dafür habe ich eine Funktion
geschrieben, welche mir einen Signalvektor zurückgibt der länge N
zurückgibt und ab K beginnt der impuls und hält ganze M abtastwerte den
impuls auf 1)
y = rechteckimpuls(K,M,N)
Code:
function y = rechteckimpuls(K,M,N)
if K + M > N
y = [zeros(1,K) ones(1,N-K)];
else
y = [zeros(1,K),ones(1,M),zeros(1,N-(K+M))];
end
end
Nun habe ich ein Skript geschrieben in der ich das Signal
rechteckimpuls(100,50,4000) mit fft() transformiere und das
betragsspektrum darstellen möchte , x-achse soll frequenzwerte anzeigen.
Wie komme ich auf diese Werte.
Mir fehlt doch die Abtastfrequenz dafür.
In der Aufgabenstellung steht das Signalvektor Länge N hat und normierte
Zeit t_n=0:N-1.
Mein Code bisher:
Code:
r_imp = rechteckimpuls(100,50,4000);
r_fft = fft(r_imp);
r_ifft = ifft(r_fft);
bin_vals = [0 : length(r_imp)-1];
subplot(2,4,1)
plot(bin_vals,r_imp)
title('Ausgangssignal');
xlabel('Zeit')
ylabel('Impulshöhe')
subplot(2,4,2)
plot(bin_vals,abs(r_fft))
title('Spektrum des Signals in Betragsdarstellung');
xlabel('Frequenz(in bins)')
ylabel('Betrag')
subplot(2,4,3)
plot(bin_vals,angle(r_fft))
title('Spektrum des Signals in Winkeldarstellung');
xlabel('Frequenz')
ylabel('Winkelgröße')
subplot(2,4,4)
plot(bin_vals,r_ifft)
title('Zurückgewonnenes Signal');
xlabel('Zeit')
ylabel('Impulshöhe')