Can anybody help me with the following code?

[z,fs]=audioread('bird1.mp3');
bfil=fft(z); %fft of input signal
wn=[4000 8000]/(fs/2); %bandpass
[b,a]=butter(6,wn);
fvtool(b,a);
I was able to draw the graph for this particular range. Can i draw wn=[8000 12000]/(fs/2); n the same graph itself, instead of another figure???

 Accepted Answer

I not sure of obtaining multiple plots in the same window using fvtool. Instead you can get what you required, using functions freqz(), plot() and hold on.
[z,fs]=audioread('bird1.mp3');
bfil=fft(z); %fft of input signal
wn=[4000 8000]/(fs/2); %bandpass
[b,a]=butter(6,wn);
[h,w]=freqz(b,a);
plot(w/pi,20*log10(abs(h)),'r');
hold on;
wn=[8000 12000]/(fs/2);
[b,a]=butter(6,wn);
[h,w]=freqz(b,a);
plot(w/pi,20*log10(abs(h)),'b');

3 Comments

That really helped me a lot.Thanks a lot!!!! I have a doubt. Can i use this concept of butterworth filters if i want to divide the frequencies into 10-20Khz, 20-30Khz and so on??Which parameter should i change?
Sorry , i was not able to understand your question? Elaborate please. Are you thinking of bank of butterworth filers?
yaa exactlty. How can i write a code for a bank of butterworth filters? Such that i can divide the given audio signal into different bands ie 10-20Khz, 20-30Khz and so on.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!