Προς το περιεχόμενο

Simulink(Matlab) -DTMF


kostasKJ7

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα παιδιά,χρειάζομαι βοήθεια πάνω στο Simulink και συγκεκριμένα στο DTMF(Dual Tone Multi Frequency) θέλω να φτιάξω αυτά τα blocks με το Simulink.

Όποιος ξέρει από αυτό το πρόγραμμα ας με βοηθήσει..

Περιμένω τις απαντήσεις σας...

Δημοσ.

Δεν ξερω τι ακριβως θες να κανεις...

 

Το DTMF ειναι απλα ενας πινακας 4χ4 οπως ο παρακατω:

Στο Simulink λοιπον μπορεις να χρησιμοποιησεις ενα look-up table και 2 sine generators για να το υλοποιησεις.

Αν εννοεις το ηλεκτρονικο κυκλωμα, τοτε ειναι μια αλλη ιστορια, και δεν θα προτεινα το Simulink για να το κανεις. Το Simulink ειναι για system modeling και verification.

Αν θες περιεγραψε πιο συγκεκριμενα τι ακριβως θες να κανεις για να μπορεσω να σε βοηθησω. :-)

 

1209 Hz 1336 Hz 1477 Hz 1633 Hz

697 Hz 1 2 3 A

770 Hz 4 5 6 B

852 Hz 7 8 9 C

941 Hz * 0 # D

Δημοσ.

Χρειάζεται καμία επιπλέον βιβλιοθήκη για να φτιάξω το μοντέλο αυτό;Θέλω να φτιάξω το μοντέλο και θέλω και τον κώδικα Matlab ώστε όταν πατάω αριθμούς να ακούγεται ο θόρυβος και στην συνέχεια να το περάσω στο DSP.

Μπορείς να μου κάνεις Print Screen την συνδεσμολογία από το Simulink;

Και να μου πεις τι άλλο χρειάζεται για να το κάνω να δουλεύει;

Ευχαριστώ πολύ.

Δημοσ.
Χρειάζεται καμία επιπλέον βιβλιοθήκη για να φτιάξω το μοντέλο αυτό;Θέλω να φτιάξω το μοντέλο και θέλω και τον κώδικα Matlab ώστε όταν πατάω αριθμούς να ακούγεται ο θόρυβος και στην συνέχεια να το περάσω στο DSP.

Μπορείς να μου κάνεις Print Screen την συνδεσμολογία από το Simulink;

Και να μου πεις τι άλλο χρειάζεται για να το κάνω να δουλεύει;

Ευχαριστώ πολύ.

 

Σου ειπα την γενικη ιδεα πως να το κανεις! ;)

 

Οποτε ξεκινα να το υλοποιεις, και οπου κολλας κανε post με screenshots και θα σε βοηθησω.

 

Να σου το φτιαξω εγω και να στο δωσω για να το αντιγραψεις δεν εχει νοημα! :-)

Δημοσ.

Ποιο είναι το sine Generator?

Μήπως λες Sine Wave?

 

Αυτός είναι ο κώδικας Μatlab θέλω το μοντέλο στο Simulink

clear all;

N = 2000;

Fs = 8000;

t = 1:1:N;

l1 = cos(2*pi*697/Fs*t);

l2 = cos(2*pi*770/Fs*t);

l3 = cos(2*pi*852/Fs*t);

l4 = cos(2*pi*941/Fs*t);

h1 = cos(2*pi*1209/Fs*t);

h2 = cos(2*pi*1336/Fs*t);

h3 = cos(2*pi*1477/Fs*t);

h4 = cos(2*pi*1633/Fs*t);

p = zeros(1,N/2);

i = 1;

number = '21072634873265364T';

x = 0;

while(number(i) ~= 'T')

if number(i) == '1'

x = [x l1+h1];

elseif number(i) == '2'

x = [x l1+h2];

elseif number(i) == '3'

x = [x l1+h3];

elseif number(i) == '4'

x = [x l2+h1];

elseif number(i) == '5'

x = [x l2+h2];

elseif number(i) == '6'

x = [x l2+h3];

elseif number(i) == '7'

x = [x l3+h1];

elseif number(i) == '8'

x = [x l3+h2];

elseif number(i) == '9'

x = [x l3+h3];

elseif number(i) == '*'

x = [x l4+h1];

elseif number(i) == '0'

x = [x l4+h2];

elseif number(i) == '#'

x = [x l4+h3];

end

i = i + 1;

x = [x p];

end

sound(x,Fs);

>>

 

 

-----Προστέθηκε 10/12/2008 στις 09 : 53 : 03----- <<------- Kapws etsi?

 

 

<a href=nothumb.jpg' alt='nothumb.jpg'>

Δημοσ.

Αρα λοιπον το DTMF το εχεις μοντελοποιησει σε Μatlab κωδικα!

 

1. Κανε λοιπον τον κωδικα function με ορισμα το number

2. Χρησιμοποιησε το Embedded Matlab Function block που θα το βρεις στο User Defined Functions και βαλε την συναρτηση που εχεις φτιαξει στο 1.

3. Πρεπει να εχεις τωρα ενα κουτακι (ονομασε το DTMF block) με input-output, οπου input θα ειναι το number και output η συχνοτητα.

4. Το input μπορεις να το οδηγησεις με ενα constant που θα το αλλαζεις εσυ ή μπορεις να βαλεις switches με διαφορα constants ή ακομα μπορεις να φταξεις ενα απλο GUI πληκτρολογιο (με το GUI generator του Matlab το guide) και να οδηγεις το DTMF block σου.

 

Διευκρινιζω οτι η συγκεκριμενη μοντελοποιηση δεν ειναι 100% Simulink! Διαφορετικα θα πρεπει να δημιουργησεις εξ'αρχης το DTMF με blocks του Simulink. IF-THEN block κλπ, ουσιαστικα ακολουθωντας το flow chart του κωδικα σου!

 

:-)

Δημοσ.

Γαμώτο δεν τρέχει τα μπέρδεψα..Θα βάλω και sine wave και look up table;

Αν δεν σου κάνει κόπος στείλε μου με Print Screen πως φαίνεται...

Δημοσ.

Δεν θα βαλεις sine wave ουτε look up table διοτι το εχεις κανει ειδη στον κωδικα που εκανες post!

Αν θες να το κανεις με sine waves και look up tables τοτε πρεπει να υλοποιησεις ολο το DTMF με Simulink blocks και οχι σε Matlab γλωσσα οπως εχεις κανει τωρα!

 

Ακολουθησε τα βηματα που σου εδειξα και διαβασε την διευκρινηση που σου εγραψα! :-)

 

Οριστε. Το Embedded Matlab Function block καλει μεσα στο Simulink το Matlab κωδικα που εχεις γραψει και πρεπει οπως σου ειπα να τον κανεις function:

Δημοσ.
Αν θες να το κανεις με sine waves και look up tables τοτε πρεπει να υλοποιησεις ολο το DTMF με Simulink blocks και οχι σε Matlab γλωσσα οπως εχεις κανει τωρα!QUOTE]

 

Αυτό πως γίνεται;Πως θα το κάνω μόνο με Simulink blocks;

Δημοσ.

Ναι...

 

Διαφορετικα θα πρεπει να δημιουργησεις εξ'αρχης το DTMF με blocks του Simulink. IF-THEN block κλπ, ουσιαστικα ακολουθωντας το flow chart του κωδικα σου!

 

:-)

Δημοσ.

Ευχαριστώ φίλε μου για την βοήθεια σου.Αλλά ακόμα δεν το κατάλαβα,δεν έχω τόσες γνώσεις στο simulink.Στην ουσία προσπαθώ να φτιάξω το block του DTMF δίχως να τα καταφέρω.:confused::confused:

Δημοσ.

Αφου δεν εχεις τοσες γνωσεις στο Simulink, καντο χρησιμοποιωντας τον κωδικα του Matlab που εχεις ειδη, οπως σου περιεγραψα! :-)

Δημοσ.

kalispera mporo na kano mia erothsh!!!!exo katalavei pliros tto pos prepi na pragmatoioithei h ergasia to mono provlima pou exo einai epidh den eimai pliros exikeiomenos me to simulink an einai eukolo na mou peite pos kanoume to kodika tou mat lab tou dtmf sinarthsh mesa apo to editor ginetai ayto? tha to ektimousa polu giati exo kai ego to idio provlima?

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...