What I am trying to do is simple. I have a few .wav files. I want to remove noise and filter out specific frequencies. I don't have matlab and I intend to write my own code for all the filters. Right now, I have a way to read the .wav file and dump out the structure into a text file. My questions are the fo开发者_运维技巧llowing:
- Can I directly apply the digital filters on this sampled data?{ ie, can I directly do a convolution between my input samples and h(n) for the filter function that i choose?).
- How do I choose the number of coefficients for the Window function?
I have octave, so if someone can point me to anything that gives me some idea on how to process the .wav file using octave, that would be great too. I want to be able to filter out the frequency and then listen to the sound again. Is this possible with octave?
I'm just a beginner with these kinds of things, so please bear with me if my questions are too naive. Any help will be great.
You can get wavread
and wavwrite
in octave-audio
to do IO to .wav files. There are functions for applying (filter
) and visualizing (freqz
, impz
) in octave-signal
. Unfortunately I can't figure out the "right" way to get fir1
and butter
and cheby
and friends. You may have to get octave-forge
by hand.
That depends. You need to factor in the desired roll-off of the filter and the bandwidth of the filter amongst other factors. You also express the desire to filter out specific frequencies. This implies that you need one or more band-pass and/or band-reject filters. While FIR filters can be designed to handle these situations, you're better off with IIR (infinite impulse response) filters which have their own quirks.
I suggest you read up on digital filters to better understand what you're getting yourself into. They aren't particularly hard but it does involve a bit of mathematics.
精彩评论