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')
dsp_noob schrieb: > In der Aufgabenstellung steht das Signalvektor Länge N hat und normierte > Zeit t_n=0:N-1. Mit einer normierten Zeitachse bekommst du auch nur eine normierte Frequenzachse. Wie schon in deinem anderen Thread geschrieben ist die Frequenzschrittweite der transformierten Funktion 1/T mit T die Zeit der N eingelesenen Werte. Nehmen wir an deine Samplingfrequenz wäre SF, dann ist deine Einlesezeit T = N/SF also ist 1/T = SF/N SF/N ist also der Abstand deiner Frequenzlinien, SF/2 der Wert für das N-te Array-Element (da du N/2 Frequenzwerte bekommst), evtl. genauer (N-1)/(2N)*SF; für jede feste SF kannst du sofort den Wert ausrechnen, solange aber die Abtastfrequenz unbekannt ist bleibt auch deine Frequenzachse natürlich nicht näher bestimmbar. Gerhard
dsp_noob schrieb: > möchte einen Rechteckimpuls mithilfe der FastFourierTransformation > das spektrum dieses Signals darstellen. Wozu? Das Spektrum von Rechteckimpulsen ist bekannt.
dsp_noob schrieb: > möchte , x-achse soll frequenzwerte anzeigen. > Wie komme ich auf diese Werte. Die Abtastfrequenz musst du doch kennen. Es ist dein Experiment. Tipp: nimm für die FFT Zeierpotenzen. also 4096 Werte
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.