F
~ ~ farah_r
Guest
Hi All,
Ho questo piccolo file audio che è danneggiato da un segnale sconosciuto interferenze che deve essere filtrati.
Ho caricato il file in MATLAB e ha scoperto che la sua frequenza di campionamento è 44,1 kHz ... Poi ho disegnato la sua FFT e trovato due picchi a e - 21,99 kHz ... Così, ho capito che ho bisogno di progettare un filtro per rimuovere il interferenze con questa frequenza.
Ho progettato un filtro notch IIR con il cut-off a 21.99k e filtrato il segnale audio attraverso questo filtro, utilizzando il comando del filtro, ma il mio file audio peggiorata anziché migliorare.
Ho poi progettato un filtro passa-basso, ma i risultati sono stati altrettanto peggio.Non ho idea di quello che sto facendo male.
Di seguito è riportato il codice che ho usato e il 3 filtri ho progettato.Ho tracciato la risposta in frequenza di tutti e tre i filtri ed ha trovato che i miei filtri hanno il cut-off corretta freq., Passa banda, e così via ... così, non ci può essere niente di sbagliato con i filtri che mi vengono in mente; (
Qualcuno potrebbe dirmi che cosa sto facendo di sbagliato?L'unica cosa che posso pensare è ora che la mia conclusione che il segnale di interferenza è a 21,99 kHz è sbagliato?Se questo è il caso, allora come faccio a capire che cosa la band interferenza è il caricamento del file in MATLAB e stampa è FFT?Sono veramente perso qui; (
Grazie,
Farah.
PS ho fatto allega il file audio danneggiato l'estensione zip aggiunto ... è un file audio WAV, se serve ...
MATLAB code:
[y, fs] = wavread ( 'corrupt_audio.wav');% caricamento di file in MATLAB
soundsc (y, fs)
Y = fft
;% FFT del segnale
f =-fs / 2: fs / (length (Y) -1): fs / 2;% scala delle frequenze
Figura
plot (f, abs (Y));
% Notch Filter
wo = 21.99e3 / (fs / 2); bw = 0.6% con il cut-off a 21,99 kHz
[b, a] = iirnotch (wo, bw);
zplane (b, a);% pole-zero trama
fvtool (b, a);% freq di risposta del filtro
filtro = filtered_audio (b, a, y);% di filtraggio del segnale
norm_audio = filtered_audio / max (abs (filtered_audio));
norm = FFT (norm_audio);% FFT del segnale filtrato
f1 =-fs / 2: fs / (lunghezza (norma) -1): fs / 2;% scala delle frequenze
Figura
plot (f1, abs (norma));
soundsc (norma, fs)
% IIR Butterworth LPF
p = [-0,3360346 i * 0,3737106,-i-0,3360346 * 0,3737106]; poli% del filtro
z =- 1 i * 1e-50; zeri% del filtro
[b, a] = zp2tf (z, p, 1);% convertire i poli e gli zeri di trasferire la funzione di filtro
zplane (b, a);
fvtool (b, a);
% IIR Butterworth Notch Filter
p = [-0,3360346 i * 0,3737106,-i-0,3360346 * 0,3737106]; poli% del filtro
z =- 1 i * 1e-50; zeri% del filtro
[b, a] = zp2tf (z, p, 1);% convertire i poli e gli zeri di trasferire la funzione di filtro
zplane (b, a);
fvtool (b, a);
Ho questo piccolo file audio che è danneggiato da un segnale sconosciuto interferenze che deve essere filtrati.
Ho caricato il file in MATLAB e ha scoperto che la sua frequenza di campionamento è 44,1 kHz ... Poi ho disegnato la sua FFT e trovato due picchi a e - 21,99 kHz ... Così, ho capito che ho bisogno di progettare un filtro per rimuovere il interferenze con questa frequenza.
Ho progettato un filtro notch IIR con il cut-off a 21.99k e filtrato il segnale audio attraverso questo filtro, utilizzando il comando del filtro, ma il mio file audio peggiorata anziché migliorare.
Ho poi progettato un filtro passa-basso, ma i risultati sono stati altrettanto peggio.Non ho idea di quello che sto facendo male.
Di seguito è riportato il codice che ho usato e il 3 filtri ho progettato.Ho tracciato la risposta in frequenza di tutti e tre i filtri ed ha trovato che i miei filtri hanno il cut-off corretta freq., Passa banda, e così via ... così, non ci può essere niente di sbagliato con i filtri che mi vengono in mente; (
Qualcuno potrebbe dirmi che cosa sto facendo di sbagliato?L'unica cosa che posso pensare è ora che la mia conclusione che il segnale di interferenza è a 21,99 kHz è sbagliato?Se questo è il caso, allora come faccio a capire che cosa la band interferenza è il caricamento del file in MATLAB e stampa è FFT?Sono veramente perso qui; (
Grazie,
Farah.
PS ho fatto allega il file audio danneggiato l'estensione zip aggiunto ... è un file audio WAV, se serve ...
MATLAB code:
[y, fs] = wavread ( 'corrupt_audio.wav');% caricamento di file in MATLAB
soundsc (y, fs)
Y = fft
f =-fs / 2: fs / (length (Y) -1): fs / 2;% scala delle frequenze
Figura
plot (f, abs (Y));
% Notch Filter
wo = 21.99e3 / (fs / 2); bw = 0.6% con il cut-off a 21,99 kHz
[b, a] = iirnotch (wo, bw);
zplane (b, a);% pole-zero trama
fvtool (b, a);% freq di risposta del filtro
filtro = filtered_audio (b, a, y);% di filtraggio del segnale
norm_audio = filtered_audio / max (abs (filtered_audio));
norm = FFT (norm_audio);% FFT del segnale filtrato
f1 =-fs / 2: fs / (lunghezza (norma) -1): fs / 2;% scala delle frequenze
Figura
plot (f1, abs (norma));
soundsc (norma, fs)
% IIR Butterworth LPF
p = [-0,3360346 i * 0,3737106,-i-0,3360346 * 0,3737106]; poli% del filtro
z =- 1 i * 1e-50; zeri% del filtro
[b, a] = zp2tf (z, p, 1);% convertire i poli e gli zeri di trasferire la funzione di filtro
zplane (b, a);
fvtool (b, a);
% IIR Butterworth Notch Filter
p = [-0,3360346 i * 0,3737106,-i-0,3360346 * 0,3737106]; poli% del filtro
z =- 1 i * 1e-50; zeri% del filtro
[b, a] = zp2tf (z, p, 1);% convertire i poli e gli zeri di trasferire la funzione di filtro
zplane (b, a);
fvtool (b, a);