MATLAB: trovare tre massimi in una risposta in frequenza
Inviato: 29 dic 2015, 11:17
Salve a tutti, mi trovo alle prese con una tesina che prevede il filtraggio di un segnale audio con sovrapposte tre sinusoidi di disturbo (frequenze ed ampiezze diverse), con ampiezze comunque molto maggiori rispetto a quella del segnale utile (una voce). L'esperienza prevede di porre tre filtri notch in cascata centrati sulle frequenze di disturbo.
Ho pensato di trovare i massimi oltre una certa ampiezza eseguendo un find sulla risposta in frequenza, quindi porli in un vettore per poi darli in pasto ai tre filtri, però ovviamente ho il problema della simmetria (dovrei poter cercare solo su metà della DFT) e della forma non perfettamente sinusoidale del segnale disturbato che mi fa trovare due picchi distanti di 1-2 campioni (decimi di hertz)....
Non essendo molto pratico di Matlab chiedo, esiste il modo di trovare subito le tre frequenze interessate? Non posso applicare ricorsivamente DFT-->find(max)--->filtro, per via della complessità elevata
Grazie
Ho pensato di trovare i massimi oltre una certa ampiezza eseguendo un find sulla risposta in frequenza, quindi porli in un vettore per poi darli in pasto ai tre filtri, però ovviamente ho il problema della simmetria (dovrei poter cercare solo su metà della DFT) e della forma non perfettamente sinusoidale del segnale disturbato che mi fa trovare due picchi distanti di 1-2 campioni (decimi di hertz)....
Non essendo molto pratico di Matlab chiedo, esiste il modo di trovare subito le tre frequenze interessate? Non posso applicare ricorsivamente DFT-->find(max)--->filtro, per via della complessità elevata
Grazie