Verfasst am: 23.04.2009, 13:56
Titel: Eine Programmieraufgabe
Hey.
Ich bin Lehramtsstudent an der Uni Rostock und kann überhaupt nicht verstehen warum wir ein numerisches Praktikum machen sollen was denn auch noch total schwer ist und ich damit ganz schön Probleme habe, weil ich mein Thema hat mir so noch keiner erklärt und das denn noch in Matlab zu verarbeiten wird nie etwas.
Vllt könnte ja einer von euch mir mit einem passenden Programm aushelfen! Wäre voll cool. Hier die Aufgabe:
Diskrete Fouriertransformation
Ein wichtiges Hilfsmittel der Informationsverarbeitung stellt die diskrete Fouriertransformation dar. Hierbei werden Signale aus dem Zeitbereich in den Frequenzbereich abgebildet. Implementieren sie ein Programm zur Bestimmung der Fourierkoeffizienten für ein diskretes Signal beschrieben durch einen Vektor der Länge N. Überprüfen sie anschließend Eigenschaften der Fouriertransformation für überlagerte Signale unter Anwendung der inversen Transformation. Zeigen sie zudem Auswirkungen von Störungen im Frequenzbereich nach Anwendung der inversen Transformation anhand selbstgewählter Beispiele.
und dann mit dem FFT Befehl zu arbeiten und festzustellen, dass das Spektrum ein paar Peaks hat. Wenn man dann mittels Zufallszallen ein wenig Rauschen dazuaddiert und zurücktransformiert passiert was. Was?
eine andere Form der Störung im Frequenzbereich könnte es sein, Signale wegzulassen, z.B. nur die Hälfte der FFT zu verwenden und diese wieder zurückzutransformieren. Probiers mal aus, ist eigentlich nicht so schwer.
Also ich ha mich jetzt belesen und informiert bei Dozenten, was Fouriertransformation sind. Das Prinziep ist mir klar, aber ich habe große Probleme mit dem Implementieren des Matlab-Programms Komm damit irgendwie nicht zurecht. Ich weiß jetzt auch das ich die oben genannte Aufgabe für Reelle Fouriertransformationen machen soll.
Ich habe folgendes Programmm:
fa = 8000; % Abtastfrequenz
fn = fa/2; % Nyquistfrequenz
N = 1024; % gewünschte FFT-Länge (N=2^x, sonst wird der DFT-Algorithmus verwendet!)
df = fa/N; % Frequenzauflösung % Erzeugung eines Datensatzes mit N Abtastwerten % ----------------------------------------------
t = 0 : 1/fa : (N-1)/fa; % x-Vektor % Frequenzvorgabe in Hz als ganzzahlig Vielfaches der Frequenzauflösung der DFT/FFT:
f1 = df*100; % bei fa = 8000 Hz und N = 1024 beträgt df = 7,8125 Hz und % f1 damit 781,25 Hz
f1 = 784;
f1 = df;
phase = pi/2;
a1 = 1; % Amplitudenvorgabe
y = a1*sin(2*pi*f1*t); % y-Vektor
y = [y(1:N/2)zeros(1, N/2)];
% Graphische Darstellung % ---------------------- % max. Amplitude zur Skalierung der graphischen Darstellung feststellen:
max_y = max(abs(y))*1.1;
fig = figure(1);
plot(y) axis([0 N -max_y max_y]) title('Datensatz') ylabel('Amplitude') xlabel('N Stützstellen') grid
Hab das aber auch nur gefunden und mir fällt es schwer die Befehle nachzuvollziehen, da ich auch wenig Zeit habe, weil ja auch viele andere Sachen zu tun sind. Ich bin mir nicht sicher ob dieser Quellcode die komplette Aufgabe umfasst und wie ich die Figuren die entstehen deuten soll
Edit by Martin: Bitte das nächste Mal die Code-Formatierung verwenden. Danke!
Ja sorry nächsmal mach ich das kann mir denn einer da weiter helfen? Ich hab mich jetzt schon eine Weile damit beschäftigt, aber komm nicht so recht weiter. Ich wollte für den ersten Teil der Aufgabe das ganz an ein Rechtecksignal machen. Bloss da gehts schon los. Wie mach ich das in Matlab? Theoretisch das klar wie das geht und wie man das so ausrechnet.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.