Matlab esercizio

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes
1
voti

[11] Re: Matlab esercizio

Messaggioda Foto Utentedimaios » 23 giu 2012, 18:41

Va bene. Era solo una provocazione per farti capire che ci sono molte scelte possibili.

A questo punto ti consiglio di pensare bene a cosa devi fare.
Le domande del punto 2 e 3 sono legate e mal poste comunque interpretabili.

Ti chiedono di fare un filtraggio a blocchi non necessariamente utilizzando la FFT quindi ATTENZIONE!!!

Puoi scegliere di operare nel dominio del tempo o in frequenza per cui potresti utilizzare varie tecniche.

Cosa vuoi fare ?
Non sapendo il programma che hai svolto ... devi scegliere tu.
( Per cortesia indicami la facoltà ed il corso che hai seguito ).
Ingegneria : alternativa intelligente alla droga.

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
0
voti

[12] Re: Matlab esercizio

Messaggioda Foto Utentepixx87 » 23 giu 2012, 18:44

come mi hai ben suggerito, rileggo il testo, e prima di tutto devo valutare e capire come segmentare il segnale in blocchi di 10ms.
Prima di tutto cerco di capire quanti campioni ci sono in 10ms alla frequenza di campionamento Fs.
Fs ci dice che in un secondo ci sono Fscampioni. Quindi in DeltaT= 10ms=0.01 S CI SONO Fs*deltaT [sample/s * s = sample] campioni. no??

Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes
2
voti

[13] Re: Matlab esercizio

Messaggioda Foto Utentedimaios » 23 giu 2012, 18:59

Utilizza il LaTex per scrivere le formule.

Se indichiamo con T_{block} il periodo di un blocco dati pari a 10 ms e con T_{s} = \frac{1}{F_{s}} il periodo di campionamento si ha :

N_{s} = \frac{T_{block}}{T_{s}} = T_{block} \cdot {F_{s}

Evita di usare l'asterisco "*" per indicare la moltiplicazione perché viene impiegato come simbolo per la convoluzione e si rischia di fare confusione.

Ora devo assentarmi ma ti fornisco alcuni consigli sul procedimento.

[1] Registra la tua voce con il PC oppure scarica da internet un file vocale in formato WAV con al frequenza di campionamento indicata nel problema.
[2] Sintetizza il filtro ( utilizza Matlab oppure Octave )
[3] Filtra TUTTO il segnale con il filtro sintetizzato e tienilo "da parte" per un confronto.
[4] Inizia il filtraggio a blocchi e tenta la successiva ricostruzione del segnale complessivo
[5] Controlla se il segnale del punto [3] e quello ottenuto dal punto [4] coincidono.

Prova ad impostare il problema. Se poi hai dei problemi ci risentiamo.
Ingegneria : alternativa intelligente alla droga.

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
0
voti

[14] Re: Matlab esercizio

Messaggioda Foto Utentepixx87 » 23 giu 2012, 19:41

si è il caso..
mi sto perdendo..

Avatar utente
Foto UtenteDirtyDeeds
55,9k 7 11 13
G.Master EY
G.Master EY
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere
1
voti

[15] Re: Matlab esercizio

Messaggioda Foto UtenteDirtyDeeds » 23 giu 2012, 20:00

pixx87 ha scritto:Scusa ma quindi non posso proprio
usare Y= Wavrecord(Ncampioni, fs, 'int16')


Una nota: talvolta ciò che si può usare nella risoluzione di un esercizio dipende anche dalle consuetudini del professore.

Se si legge il manuale di Matlab per la funzione wavrecord si trovano tre informazioni importanti:

Record sound using PC-based audio input device


wavrecord will be removed in a future release. Use audiorecorder instead.


The wavrecord function is for use only with 32-bit Microsoft Windows operating systems. To record audio data from audio input devices on other platforms, use audiorecorder.


Quindi se usi la funzione wavrecord assumi implicitamente tre cose:

1) Che l'acquisizione debba avvenire dalla scheda audio del PC.
2) Che il PC abbia come sistema operativo MS Windows e che non ti interessa la portabilità del codice ad altri sistemi operativi.
3) Che non ti interessa che il codice continui a funzionare anche in future release di Matlab.

Il mio consiglio è allora questo: quando risolvi un esercizio, se hai dubbi sulle consuetudini del professore o se devi usare funzioni che hanno delle limitazioni forti (come wavrecord), scrivi sempre esplicitamente tali limitazioni e le tue eventuali supposizioni: così eviterai incomprensioni in sede d'esame (e, al di là dell'esame, tale pratica ha validità generale).
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
0
voti

[16] Re: Matlab esercizio

Messaggioda Foto Utentepixx87 » 23 giu 2012, 21:15

grazie mille per l'info..i problemi nascono dopo..punti 2 e tre

Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes
2
voti

[17] Re: Matlab esercizio

Messaggioda Foto Utentedimaios » 24 giu 2012, 0:16

Va bene. Per quanto riguarda il punto [2] abbiamo decretato che dobbiamo dividere il segnale originale in un certo numero di intervalli ognuno dei quali deve comprendere N_{s} campioni.

A questo punto, se hai seguito il corso e studiato la materia in oggetto, dovresti avere qualche indizio su come filtrare il segnale a blocchi.
In pratica, invece di filtrare tutto il segnale in un "colpo solo", si divide in blocchetti più piccoli che vengono filtrati individualmente e solo alla fine viene assemblato il segnale finale filtrato.
Questo permette ( nel caso il segnale sia disponibile ) di parallelizzare le operazioni ed incrementare l'efficienza algoritmica a patto che vengano rispettate alcune condizioni.

Che tecniche vi sono state insegnate ?

Parliamo prima di questo e successivamente penseremo alla sintesi del filtro digitale.
Ingegneria : alternativa intelligente alla droga.

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
0
voti

[18] Re: Matlab esercizio

Messaggioda Foto Utentepixx87 » 24 giu 2012, 9:30

Allora x la sintesi io pensavo di effettuare la tecnica overlap-add.
no?

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
0
voti

[19] Re: Matlab esercizio

Messaggioda Foto Utentepixx87 » 24 giu 2012, 9:31

(x la segmentazione del segnale)

Avatar utente
Foto Utentepixx87
-4 2
Messaggi: 47
Iscritto il: 6 apr 2012, 14:54
0
voti

[20] Re: Matlab esercizio

Messaggioda Foto Utentepixx87 » 24 giu 2012, 10:44

uno di miei dubbi è il seguente:
in teoria dovrei fare il filtraggio su un singolo blocco:

Codice: Seleziona tutto

Y=wavread (Ncampioni,Fs,'int16');
Fs= 16000;
t1=(0:1/Fs:20-1/Fs);
Y1= Y(0: length(t1));
plot  (t1,Y1);
h= ones (101,1)/101;
Y2=conv(Y1,h);
b= length (Y2);
dim_Y2= size (Y2);
plot (Y2)
title ('filtraggio su un blocco unico')
Ultima modifica di Foto Utentedimaios il 24 giu 2012, 18:33, modificato 1 volta in totale.
Motivazione: Era stato utilizzato il tag [tex] invece del [code] per pubblicare il codice sorgente


Torna a “Programmi applicativi: simulatori, CAD ed altro”