[MatLab]
Ciao a tutti, io devo eseguire una funzione in matlab per cui dato un segnale in input(un file wav) mi restituisca in output il segnale filtrato con un filtro passa basso di frequenza 3khz che applichi al file originale un suono tipo quello che si sente dalla cornetta del telefono. Io ho capito come leggere il file audio di tipo .wav ma non so come creare e poi applicare il filtro. Qualcuno può aiutarmi?
Grazie!
Grazie!
Risposte
si! per esempio in questo caso, che è un esempio riportato di filtro passabasso IIR, come devo modificare i parametri per ottenere un filtro passabasso di 3khz? e come posso applicarlo al mio file .wav?
Fpass = 100;
Fstop = 150;
Apass = 0.5;
Astop = 65;
Fs = 1e3;
d = designfilt('lowpassiir', ...
'PassbandFrequency',Fpass,'StopbandFrequency',Fstop, ...
'PassbandRipple',Apass,'StopbandAttenuation',Astop, ...
'DesignMethod','butter','SampleRate',Fs);
fvtool(d)
Fpass = 100;
Fstop = 150;
Apass = 0.5;
Astop = 65;
Fs = 1e3;
d = designfilt('lowpassiir', ...
'PassbandFrequency',Fpass,'StopbandFrequency',Fstop, ...
'PassbandRipple',Apass,'StopbandAttenuation',Astop, ...
'DesignMethod','butter','SampleRate',Fs);
fvtool(d)
Hai provato a guardare la documentazione di Matlab per cercare di capire a cosa corrispondono quegli attributi che stai settando? Per esempio, cosa significano "PassbandFrequency" e "StopbandFrequency"? Ad una occhiata veloce direi che ti basta modificare quei valori in modo che corrispondano alla frequenza che ti interessa di 3KHz..
Non so se è questo ciò che cerchi... ma se progetti una funzione di trasferimento con dei poli nella frequenza desiderata riesci a fare un passa basso. Tieni comunque conto che la funzione di trasferimento lavora in rad/s mentre la frequenza che vuoi tagliare tu è in KHz quindi dovrai fare le opportune sostituzioni.