Phew, those were some really loaded replies.
Anyways, I seek to make matters simpler and state my issues more
plainly, simply because, since then, I have gained some insight into
them, thanks mainly to the replies on this post.
Here is what I have done -
I have a filter
H1(z) = 1 + b1*z^-1 + b2*z^-2
---------------------
1 + a1*z^-1 + a2*z^-2
(This filter has been designed for a sampling frequency of "Fs" Hz)
I plotted the magnitude response of this filter.
Now, I went ahead and created a second filter H2(z) which is H1(z^2)
H2(z) = 1 + b1*z^-2 + b2*z^-4
---------------------
1 + a1*z^-2 + a2*z^-4
Now when I went ahead the plotted the magnitude response of this
filter, I found that its sampling frequency had halved.
I am trying to figure out the mathematical relation that will explain
this since it was not intuitive to me. So plainly stated, this is my
question. I agree it is very different from what I had originally asked
and I apologize for the confusion.
However, this now makes me think that if I have to simulate a decimator
(say decimation factor is 2) between two filter blocks, say H1(z) and
H2(z), here is what I can do -
> Design both filters at the same sampling frequency, say Fs.
> Then go ahead and replace H2(z) by H2(z^2) (2 can be replaced by the
decimation factor). This effectively halves the sampling frequency for
the 2nd filter.
In other words, if I have designed a filter at a particular sampling
frequency, I can easily extend it to a filter at a different
integer-decimated frequency using the method above. No recalculations
needed.
Inputs, anyone?
T.
Fred Marshall wrote:
> "Michael" <michael.numminen@comhem.se> wrote in message
> news:3T8ce.135797$dP1.479004@newsc.telia.net...
> > Dear all!
> >
> > I have following the discussion below. Assume that we want cascade
two
> > filters n1(n) and h2(n) together where the last one operates on a
higher
> > sampling frequency, i.e h2(n) = h1(2n). Shouldn't it be possible
transform
> > these two two filter into frequency domain by N-points DFT
> >
> > H2(w) = DFT{h2(n)}
> >
> > and
> >
> > H1(w) = DFT{h1(n)}
> >
> > and then perfom a block-wise processing including IDFT (add and
save or
> > some else) for the following
> >
> > y(n) = IDFT{H1(w)H2(w)X(w)}.
> >
> > In my mind we don't need to have different sampling frequencies
becaus of
> > the periodicity properities for the h2(n) in the frequency domain.
> >
> > Is that correct?
> >
> > Thanks all and all the best,
> > Michael N.
>
> Michael,
>
> I think you have the right idea but the expression leaves out a few,
> possibly important, details.
>
> You say: h1(n)=h2(2n) which implies that the filter coefficients or
unit
> sample responses are identical. I'm not sure that's what you meant
to say
> because it seems curious. But, if that's what you meant, OK.
>
> When you say:
> > H2(w) = DFT{h2(n)}
> >
> > and
> >
> > H1(w) = DFT{h1(n)}
> >
> > and then perfom a block-wise processing including IDFT (add and
save or
> > some else) for the following
> >
> > y(n) = IDFT{H1(w)H2(w)X(w)}.
> >
>
>
> You should somehow account for the difference in sampling rate - and
these
> expressions don't do that. The "w" for H1 and the "w" for H2 are on
> different scales as originally presented.
>
> But then you say:
> > In my mind we don't need to have different sampling frequencies
becaus of
> > the periodicity properities for the h2(n) in the frequency domain.
>
> So, it seems that you understand that H2, if plotted on the same w
scale as
> H1 will repeat (i.e. "the periodicity properties for the h2(n) in the
> frequency domain").
>
> But, how to express that? You start out by saying that the sampling
> frequencies are different and then conclude that "we don't need to
have
> different sampling frequencies". It seems you contradict yourself.
>
> It's much better to express the situation this way:
>
> I have filter h1 with unit sample response h1(m); m=0,1,2,3,4, .....
M
> I have filter h2 with unit sample response h2(n); n= 0,1,2,3,4, .....
N
> And, for reasons important to my situation (the way the filters were
> designed or the way they are implemented or for purposes of classroom
> study), the sample interval for which h1 was designed and/or
implemented is
> 1/2 the sample interval for which h2 was designed and/or implemented.
>
> Perhaps that could be expressed by saying
> h1(n)=h1(2m)| m=0,1,2,3,4, ..... M
> and
> h1(n)=0;n=1,3,5....
> h2(n);
> for all: n= 0,1,2,3,4, ..... N
>
> Now you have two sequences that are on the same time scale and can be
> transformed to be dealt with on the same frequency scale.
>
> Or, as you suggest, one might say:
> H1(w) has a period of w=0 > K which we will call H(W)
> H2(w) has a period of w=0>K/2
> So, the two can be dealt with over the largest of the two intervals
which is
> w=0>K
> Accordingly H2(w) is constructed with:
> H2(W) for W=0>K/2 = H2(w) w=0>K/2
> and
> H2(W) for W=K/2>K = H2(w) W=0>K/2
> or, more concisely if the notation is understood, H2 is "doubled":
> H2(W)=[H2(w),H2(w)]
>
> But, I think this isn't the normal way to discuss these things and
makes it
> harder to understand.
>
> Fred