Mathematica Care to help? Complex mathematical problem

AI Thread Summary
The discussion revolves around the challenges of applying digital filters, specifically low pass and high pass filters, in MATLAB. The original poster is seeking clarification on the circular diagram related to filter design and how to derive values for a high pass filter after successfully creating a low pass filter with assistance. Key points include the importance of understanding the filter order and polynomial forms (H(z)) for both filter types, which affect the steepness of rolloffs and passband characteristics. The conversation highlights the need for proper filter design, including selecting the appropriate filter topology (Butterworth, Chebyshev, etc.) and understanding the sample frequency of 44,100 Hz. The poster has ordered a textbook on digital processing to aid in their understanding, indicating a proactive approach to learning filter design concepts.
mfdoom
Messages
3
Reaction score
0
Hi, I am trying to apply the filter and I have the values for the low
pass filter and the working out, but the thing is I had a bit of help
with it so I don't quite understand the circular diagram here:

http://i36.photobucket.com/albums/e18/ocundale/untitled.gif
(you will need to make the image full size to see it properly)

The thing is I need to find values for the high pass filter now and I no longer have the help of my friend, so I was wondering whether anyone could help me out with understanding the circle complex theory of it, as I
don't fully understand it and I need to get the values to plug into
Matlab.

I have trawled the net for information, but none of it has really
helped me in understanding it. What I understand is in the image, but
I don't know how to do the high pass filter, I just know that I can't
do it the same way as I worked out values for the LPF.

Thanks for your time!

Oli
 
Last edited by a moderator:
Physics news on Phys.org
Well, first of all, 150Hz is not 0.98 radians/second. I'm not really sure what you are doing in your work. You are correct to make the bandpass filter by cascading a LPF and HPF, as long as the two frequencies are far enough apart. 150Hz = 3x 50Hz, so in this problem they are a little close, but it's probably okay for your homework problem.

I also don't understand the H(z) polynomial form that you are starting with -- that's not the standard form for a LPF or HPF. Do you know what H(z) is for the LPF and HPF? It looks like you are asked to make each of the two filters 2nd order -- is that correct?
 
Thanks for the quick response berkeman, firstly, I mis-typed the bit which says 0.98 rads, sorry about that - its actually 0.02, I have updated the pic. Between 50Hz and 150Hz is where the bass lies in the tracks I will be mixing and I can easily determine the BPM by finding the peaks in amplitude in this frequency range, but first I need to take out all the other frequencies.
I am not sure about what order the filter is, I understand that 2nd order would drop off faster, so I guess that would be fine.
I am not too sure about the H(z) polynomial form, as that is the bit my friend helped me out with, but here is the info from the help on Matlab:
FILTER One-dimensional digital filter.
Y = FILTER(B,A,X) filters the data in vector X with the
filter described by vectors A and B to create the filtered
data Y. The filter is a "Direct Form II Transposed"
implementation of the standard difference equation:

a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)

If a(1) is not equal to 1, FILTER normalizes the filter
coefficients by a(1).

FILTER always operates along the first non-singleton dimension,
namely dimension 1 for column vectors and non-trivial matrices,
and dimension 2 for row vectors.

[Y,Zf] = FILTER(B,A,X,Zi) gives access to initial and final
conditions, Zi and Zf, of the delays. Zi is a vector of length
MAX(LENGTH(A),LENGTH(B))-1, or an array with the leading dimension
of size MAX(LENGTH(A),LENGTH(B))-1 and with remaining dimensions
matching those of X.

FILTER(B,A,X,[],DIM) or FILTER(B,A,X,Zi,DIM) operates along the
dimension DIM.

See also FILTER2 and, in the Signal Processing Toolbox, FILTFILT.
 
0.02 radians per second is a very low frequency.

So it sounds more now like you are working totally in the digital domain, with no analog filtering involved in this project? What is the sample frequency of the signal digitization?

You need to chose the order of your filters and the topology of the filters (Butterworth, Chebychev, Elliptical) before you can work with the polynomials. The order is what gives you the steepness of the rolloffs, and the polynomial type is what determines the flatness of the passband versus some other characteristics.

Do you have a textbook on analog or digital filters? What is the project exactly? I've found the textbook by Williams on "Designing Digital Filters" to be extremely helpful. Maybe see if your school library has a copy...
 
Yes, I am just working in the digital doman, the sample frequency is 44100 and the LPF I have made with the help of my friend works fine. I have ordered a book on digital processing just now, so hopefully that'll help me a lot.
 
Back
Top