luke135 Δημοσ. 23 Μαΐου 2022 Δημοσ. 23 Μαΐου 2022 Γεια σε όλους έχω δημιουργήσει έναν τετραγωνικό παλμό στο διάστημα (-29.5, 29.5) και με πλάτος 7 και θέλω να κάνω την γραφική παράσταση του μετασχηματισμού Fourier με το MATLAB. Όταν το κάνω plot εμφανίζεται σαν ορθή γωνία και μόνο όταν κάνω ζουμ φαίνεται ο μετασχηματισμός. Είναι λάθος αυτό; Υπάρχει κάποιος τρόπος να το εμφανίσω πιο ωραία; Ο κώδικας που έγραψα είναι αυτός: To = 59; A = 7; t=-33:0.001:33; x = A*rectpuls(t, To); X=fft (x); plot (t, abs(X));
DrKo Δημοσ. 23 Μαΐου 2022 Δημοσ. 23 Μαΐου 2022 Δοκίμασε με stem Επίσης, δεν χρειάζεσαι το “reflection” του FT. Από την Fs/2 και πάνω, έχει επανάληψη του συχνοτικού περιεχομένου. Δεν θυμάμαι εάν η fft του MATLAB επιστρέφει τις χρήσιμες συχνοτικές περιοχές ή την πλήρη έξοδο του FT. Δες με `help fft` Τέλος, δεν έχεις χρόνο στο άξονα x στο διάγραμμα του FT. Οπότε, έχεις λάθος όρισμα για τον άξονα x.
V.I.Smirnov Δημοσ. 24 Μαΐου 2022 Δημοσ. 24 Μαΐου 2022 (επεξεργασμένο) Όταν κάνεις DFT ή FFT πρέπει πάντα να έχεις υπόψη σου τρία πράγματα. Πάντα. 1. Το χρονικό διάστημα Τ της δειγματοληψίας του σήματος καθορίζει το ελάχιστο βήμα Δf για τη διακριτοποίηση της συχνότητας (frequency resolution) : Δf ≥ (Δf)min = 1/T. 2. Το βήμα Δt της χρονικής διακριτοποίησης καθορίζει τη μέγιστη συχνότητα που μπορεί να ληφθεί : f ≤ fmax = 1/(2Δt). Ή αλλιώς, Δt ≥ 1/(2fmax) (Nyquist sampling criterion). Aυτό είναι το ελάχιστο Δt ώστε η μέγιστη συχνότητα να είναι fmax. Μικρότερο Δt μπορεί να "πιάσει" συχνότητες μεγαλύτερες από fmax. 3. Tο φάσμα μπορεί να χρειάζεται παραθύρωση. Χωρίς να λάβεις υπόψη αυτά, τι σόι FFT πας να κάνεις; έχεις καταλάβει τι είναι αυτό που δίνει ο FFT; - Επεξ/σία 24 Μαΐου 2022 από V.I.Smirnov
k33theod Δημοσ. 24 Μαΐου 2022 Δημοσ. 24 Μαΐου 2022 Αν είναι θέμα strech. Για να κάνεις strech vertically y=c·f(x) c>1 για να κάνεις strech horizontally y=f(c·x) 0<c<1 λογικά δηλαδή το plot(t, 100·abs(x/100)) θα κάνει zoom horizontally and vertically x100
vs_skg Δημοσ. 26 Μαΐου 2022 Δημοσ. 26 Μαΐου 2022 Στις 23/5/2022 στις 3:55 ΜΜ, luke135 είπε Γεια σε όλους έχω δημιουργήσει έναν τετραγωνικό παλμό στο διάστημα (-29.5, 29.5) και με πλάτος 7 και θέλω να κάνω την γραφική παράσταση του μετασχηματισμού Fourier με το MATLAB. Όταν το κάνω plot εμφανίζεται σαν ορθή γωνία και μόνο όταν κάνω ζουμ φαίνεται ο μετασχηματισμός. Είναι λάθος αυτό; Υπάρχει κάποιος τρόπος να το εμφανίσω πιο ωραία; Ο κώδικας που έγραψα είναι αυτός: To = 59; A = 7; t=-33:0.001:33; x = A*rectpuls(t, To); X=fft (x); plot (t, abs(X)); Πρεπει να ορισεις το frequency domain Fs = 1/0.001 = 1kHz Sample length L = 67e3 Μετα το διπλο φασμα ειναι P2=abs(Fft(x) / L) (Το οτι δεν διαιρεις με L εξηγει τις πολυ υψηλες τιμες στο αξονα Υ) Το διπλωνεις στα θετικα: P1 = P2(1:L/2+1); P1(2:end-1) = 2*P1(2:end-1); και οριζεις το πεδίο συχνοτήτων f = Fs*(0:(L/2))/L; plot(f,P1)
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα