FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > DSP

DSP comp.dsp newsgroup, mailing list

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 11-20-2003, 06:40 AM
jason han
Guest
 
Posts: n/a
Default How to implement a filter with arbitrary amplitude curve and phase curve?

Hello, all
I am currently working on a project which needs to design a custom filter
with arbitrary amplitude curve and arbitrary phase curve. All these cures
are known(I call it desired curve). I sampled desired amplitude curve and
did IFFT, then shifted, windowed. I got filter kernel. I checked this filter
amplitude with desired one, It matches very well. But, the phase of this
filter is totally different with desired phase curve.
How can I design this filter match both amplitude and phase character?

Many thanks
jason


Reply With Quote
  #2 (permalink)  
Old 11-20-2003, 12:08 PM
Brian Reinhold
Guest
 
Posts: n/a
Default Re: How to implement a filter with arbitrary amplitude curve and phase curve?

Dumb question

Did you account for the delay due to the length of the IFFT when noting the
difference in the phase curves (though I am not sure what you mean by phase
curve)?

Brian

"jason han" <[email protected]> wrote in message
news:ktYub.6631$J%[email protected] able.rogers.com...
> Hello, all
> I am currently working on a project which needs to design a custom filter
> with arbitrary amplitude curve and arbitrary phase curve. All these cures
> are known(I call it desired curve). I sampled desired amplitude curve and
> did IFFT, then shifted, windowed. I got filter kernel. I checked this

filter
> amplitude with desired one, It matches very well. But, the phase of this
> filter is totally different with desired phase curve.
> How can I design this filter match both amplitude and phase character?
>
> Many thanks
> jason
>
>



Reply With Quote
  #3 (permalink)  
Old 11-20-2003, 12:41 PM
Matt North
Guest
 
Posts: n/a
Default Re: How to implement a filter with arbitrary amplitude curve and phase curve?

Jason,

I am new to this therefore ignore me if i am barking up the wrong tree.

>>I sampled desired amplitude curve

Does this mean you have generated your coefficients by sampling an analogue
waveform?
Are these coefficients palindromic? if so you will get an FIR filter (Linear
Phase).
A bode plot of the phase of an FIR filter will have a sawtooth response as
it wraps around
on each zero on the s-plane, is this what you are seeing?

>> How can I design this filter match both amplitude and phase character?

I would be interested to find out myself. All the books show how to design a
digital
filter from the desired amplitude response of a filter.
What if you need to design an ALL PASS filter with a desired phase
response??

Matt


Reply With Quote
  #4 (permalink)  
Old 11-20-2003, 06:03 PM
Vladimir Vassilevsky
Guest
 
Posts: n/a
Default Re: How to implement a filter with arbitrary amplitude curve and phasecurve?



jason han wrote:
>
> Hello, all
> I am currently working on a project which needs to design a custom filter
> with arbitrary amplitude curve and arbitrary phase curve.


The best way to do that is by the brute force multi variable
optimization.
The other way is to split the passband into many subbands by common
bandpass filters and apply desired gains and delays to each subband,
then add all together.


> All these cures
> are known(I call it desired curve). I sampled desired amplitude curve and
> did IFFT, then shifted, windowed. I got filter kernel. I checked this filter
> amplitude with desired one, It matches very well. But, the phase of this
> filter is totally different with desired phase curve.


You should deal with the complex amplitude-phase curve.

Vladimir Vassilevsky

DSP and Mixed Signal Design Consultant

http://www.abvolt.com
Reply With Quote
  #5 (permalink)  
Old 11-20-2003, 06:56 PM
Ban
Guest
 
Posts: n/a
Default Re: How to implement a filter with arbitrary amplitude curve and phase curve?

jason han wrote:
|| Hello, all
|| I am currently working on a project which needs to design a custom
|| filter with arbitrary amplitude curve and arbitrary phase curve. All
|| these cures are known(I call it desired curve). I sampled desired
|| amplitude curve and did IFFT, then shifted, windowed. I got filter
|| kernel. I checked this filter amplitude with desired one, It matches
|| very well. But, the phase of this filter is totally different with
|| desired phase curve.
|| How can I design this filter match both amplitude and phase
|| character?
||
|| Many thanks
|| jason

Maybe this document is of use. But it is a dissertation and requires a bit
of understanding.
http://www.nt.tuwien.ac.at/dspgroup/...s_M_Lang.ps.gz
Algorithms for the Constrained Design of Digital Filters with Arbitrary
Magnitude and Phase Response.

ciao Ban


Reply With Quote
  #6 (permalink)  
Old 11-20-2003, 07:07 PM
robert bristow-johnson
Guest
 
Posts: n/a
Default Re: How to implement a filter with arbitrary amplitude curve andphase curve?

In article ktYub.6631$J%[email protected] rogers.com,
jason han at [email protected] wrote on 11/20/2003 00:40:

> I am currently working on a project which needs to design a custom filter
> with arbitrary amplitude curve and arbitrary phase curve.


okay, first thing you need to think about is that there is a *minimum* phase
that a causal filter with some arbitrary amplitude can have. the minimum
phase (in radians) and the natural log of the amplitude are a Hilbert
transform pair.

if, for simplicity, you take "causal" out of the spec, for the time being
(and add whatever delay to make it causal later), then you should be able to
specify an "arbitrary amplitude curve and arbitrary phase curve" (make sure
the amplitude is even symmetry and the phase is odd symmetry, if you want a
real impulse response), sample the complex curve densely, inverse DFT it,
and you will have a possibly (likely) non-causal impulse response. delay
the impulse response enough to make it causal, and you have some
approximation to what you want.

if you have access to the Parks-McClellan algorithm (called "remez" in
MATLAB), there is a way to design the filter with a sorta min-max norm for
both amplitude and phase. there is a trick on how to do this (from Eric
Jacobson) at the dspguru.com web site.

> All these cures
> are known(I call it desired curve). I sampled desired amplitude curve and
> did IFFT, then shifted, windowed. I got filter kernel. I checked this filter
> amplitude with desired one, It matches very well. But, the phase of this
> filter is totally different with desired phase curve.


when you shifted it, you added a linear phase term to your phase. if you
look at it in terms of phase-delay or group-delay, the curves should look
right except for a constant delay added.

> How can I design this filter match both amplitude and phase character?
>
> Many thanks


FWIW,

r b-j

Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Where can I find the pass transistor's working curve under 1.2V? Weng Tianxiang FPGA 11 05-09-2007 08:23 PM
Implement IIR Filter on FPGA Gordon Freeman FPGA 6 04-05-2007 06:02 PM
How to calculate amplitude and phase of a digital/analog signal in VHDL? [email protected] VHDL 3 12-02-2006 11:01 PM
SOS!any good curve fitting/data analysis technique for this problem? walala DSP 20 10-25-2003 07:56 AM
IIR filter - phase jitter cfx DSP 0 07-11-2003 01:54 PM


All times are GMT +1. The time now is 03:49 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved