Ερώτηση στην Ανάλυση Fourier με Matlab

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
kosmos890
Δημοσιεύσεις: 3
Εγγραφή: 27 Οκτ 2010 07:56

Ερώτηση στην Ανάλυση Fourier με Matlab

Δημοσίευση από kosmos890 » 27 Οκτ 2010 08:18

Έχω το παρακάτω σήμα.
t = 0:0.001:0.6;
x = sin(2*pi*50*t)+sin(2*pi*120*t);

1)
plot(1000*t(1:50),y(1:50)). Δεν καταλαβαίνω γιατί το διάνυσμα χρόνου πολλαπλασιάζεται με
1000 και επίσης τι νόημα έχει η παράσταση t(1:50) και y(1:50) ?
Ο χρόνος δεν έχει ήδη οριστεί ?

2)
y = x + 2*randn(size(t)); Παραμόρφωση του σήματος με Zero-Mean Random Noise.
Δηλαδή η randn επιστρέφει τιμές με μέσο όρο 0 ?

3)
f = 1000*(0:256)/512 Ποιός ο σκοπός αυτής της δήλωσης για τον άξονα x στο πεδίο των συχνοτήτων ? Οι συχνότητες που περιμένω να δω είναι τα 50 Hz και 120 Ηz

just_steve
Δημοσιεύσεις: 11
Εγγραφή: 18 Μαρ 2010 22:54

Ερώτηση στην Ανάλυση Fourier με Matlab

Δημοσίευση από just_steve » 29 Οκτ 2010 01:15

Καλησπέρα,

plot(1000*t(1:50),y(1:50)):

Πολλαπλασιάζεις επι χίλια, για να εχεις στο plot, στον x αξονα τις τιμές σε milisecond παρά σε second (= 0.003 κτλ).
Η παράσταση t(1:50) και y(1:50) σου ορίζει ποιές τιμές θα πάρεις από τον vector του διακριτού χρόνου (για την περίπτωση που δεν θέλεις να πάρεις όλο το διάστημα των 600 ms), καθώς και ποιές τιμές του f(x).

Για την randn ψάχνεις το function reference της matlab με shift-F1 ή στο google:
http://www.mathworks.com/help/techdoc/ref/randn.html


Όσον αφορά το τρίτο σου ερώτημα, δεν μπορώ να πώ ότι το κατάλαβα.. Λογικά στον κώδικα που κοιτάς θα κάνεις κάπου fourier, έτσι συμπεραίνω από τον τίτλο του θέματος σου. Έπειτα θα μπορείς να δεις μόνο τις συχνότητες που θέλεις - κι εκεί θα κολλάει αυτό που ρωτάς.

Δώσε μας παραπάνω υλικό για να καταλάβουμε τι εννοείς

Steve
Procrastinating...

kosmos890
Δημοσιεύσεις: 3
Εγγραφή: 27 Οκτ 2010 07:56

Ερώτηση στην Ανάλυση Fourier με Matlab

Δημοσίευση από kosmos890 » 29 Οκτ 2010 19:48

Ευχαριστώ για την απάντηση.
Μάς δόθηκε ως άσκηση να κάνουμε μία ανάλυση Fourier με δεδομένο το διάνυσμα χρόνου +
την παραμόρφωση y = x + 2*randn(size(t)) με την χρήση της fft(X,256).
Tα υπόλοιπα στοιχεία που δίνω είναι υποδείξεις.
Η fft επιστρέφει τιμές σε ένα πίνακα. Κάνω plot τα στοιχεία τα στοιχεία του πίνακα * τον συζηγή του ώστε να πάρω ισχύς.
Τελικά έχω γράφημα Ισχύς ως προς f. Ορίζω τον άξονα x ως f = 1000*(0:256)/512 .
Παρόμοιος κώδικας με αυτόν που ζητώ υπάρχει στο site της mathwork για help στην fft αλλά δεν καταλαβαίνω πως ακριβώς λειτουργεί.
Αν ύστερα απ'ολα αυτα μπορείς να δώσεις μερικές γραμμές κώδικα έτσι ώστε να καταφέρω να δω στο γράφημα αυτές τις συχνότητες θα με βοηθούσες πολύ.
(Περίμενα η ανάλυση Fourier να μου έδινε τους συντελεστές Cn του πλάτους κάθε αρμονικής και την αντίστοιχη f, εδώ δεν ξέρω τι κάνει)
Και πάλι ευχαριστώ.

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης