On Sat, 26 Jul 2014 21:18:37 -0700, Mauritz Jameson wrote:>>First, it will help your hit rate on this sort of thing if you SAY that >>it's a homework problem. > > It's not. It's for work. The problem was written up by a professor, so I > guess that's why it's written the way it is. I'm not looking for a > solution. > Just some help interpreting the problem, because I'm not familiar with > Faust syntax. I've looked up the Faust manual, but that didn't get me > anywhere. > > So I'm looking for somebody who would be kind enough to help me > interpret the problem and 'translate' it into layman's terms or at least > something that doesn't require the need to study the Faust manual.Is your (or perhaps your boss's) goal to become proficient in Faust, or to lay your hands on some 7th- and 9th-order allpass filter designs? -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
Question regarding Faust for DSP
Started by ●July 26, 2014
Reply by ●July 27, 20142014-07-27
Reply by ●July 27, 20142014-07-27
> Is your (or perhaps your boss's) goal to become proficient in Faust, or > to lay your hands on some 7th- and 9th-order allpass filter designs?It's not my goal (or my boss's) that I become proficient in Faust. I have been asked to implement some filters. I just don't get the specification/requirements. So I'm asking for somebody (who is familiar with Faust) to help me understand the requirements. To summarize: - Boss: Implement a Zyquinox - Employee: Huh? What is that? Please explain. - Boss: Implement a Zyquinox - Employee: Ok boss. Let me look it up. - Internet: A Zyquinox is a Xapidodo - Employee: Let me find somebody who knows what a Zyquinox is - Comp.dsp: A zyquinox is just a low pass filter - Employee: Ahhh...Now I understand what I need to do
Reply by ●July 27, 20142014-07-27
On Sun, 27 Jul 2014 11:09:50 -0700, Mauritz Jameson wrote:>> Is your (or perhaps your boss's) goal to become proficient in Faust, or >> to lay your hands on some 7th- and 9th-order allpass filter designs? > > It's not my goal (or my boss's) that I become proficient in Faust. I > have been asked to implement some filters. I just don't get the > specification/requirements. So I'm asking for somebody (who is familiar > with Faust) to help me understand the requirements. > > To summarize: > > - Boss: Implement a Zyquinox > - Employee: Huh? What is that? Please explain. > - Boss: Implement a Zyquinox > - Employee: Ok boss. Let me look it up. > - Internet: A Zyquinox is a Xapidodo > - Employee: Let me find somebody who knows what a Zyquinox is > - Comp.dsp: A zyquinox is just a low pass filter > - Employee: Ahhh...Now I understand what I need to doIf all you need is a low-pass filter, why do you need Faust and why are you looking at code for it that appears to implement an all-pass filter? -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Reply by ●July 27, 20142014-07-27
>If all you need is a low-pass filter, why do you need Faust and why are >you looking at code for it that appears to implement an all-pass filter?Are you serious? It you bother to respond to my posts, and you're able to provide some insight, why not help a fellow DSP guy instead of wasting time on detours with irrelevant questions. I really don't get the attitude in this newsgroup. If somebody asked a DSP question and I was able to help, I would provide that help regardless of whether or not the posed question had to do with homework, personal interest or professional work. And a link to the Faust tutorial? Really? Been there - done that. Anyway - thanks...
Reply by ●July 27, 20142014-07-27
On Sun, 27 Jul 2014 13:03:12 -0700, Mauritz Jameson wrote:>>If all you need is a low-pass filter, why do you need Faust and why are >>you looking at code for it that appears to implement an all-pass filter? > > Are you serious? > > It you bother to respond to my posts, and you're able to provide some > insight, why not help a fellow DSP guy instead of wasting time on > detours with irrelevant questions. > > I really don't get the attitude in this newsgroup. If somebody asked a > DSP question and I was able to help, I would provide that help > regardless of whether or not the posed question had to do with homework, > personal interest or professional work. > > And a link to the Faust tutorial? Really? Been there - done that. > > Anyway - thanks...No one here knows Faust. So we can't help you with Faust. You have said you don't want to know Faust, you just want to design a filter. So I'm trying to find out what kind of filter you need, so that I can help you design it. Just about all the regulars here can help you design a filter, using tools that are common in the DSP community rather than some bizarre and esoteric one-off. As a side-benefit, you may end up with skills on a tool that'll actually get you a job if it shows up on your resume. So yes, I'm seriously interested in helping you to meet your real goal, just as soon as I know what it is. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
Reply by ●July 27, 20142014-07-27
On Sun, 27 Jul 2014 13:03:12 -0700 (PDT), Mauritz Jameson <mjames2393@gmail.com> wrote:>>If all you need is a low-pass filter, why do you need Faust and why are >>you looking at code for it that appears to implement an all-pass filter? > >Are you serious?It's a serious question that would help anyone who really wants to help you to do so. If you're serious about getting help, you might consider that.>It you bother to respond to my posts, and you're able to provide some insight, why not help a fellow DSP guy instead of wasting time on detours with irrelevant questions.If you really want some help from people who can help you, don't waste their time with attitude and irrelevant information. Answer their questions so that they can help you. Assuming you're serious about getting help.>I really don't get the attitude in this newsgroup. If somebody asked a DSP question and I was able to help, I would provide that help regardless of whether or not the posed question had to do with homework, personal interest or professional work.I really don't get the attitude of people who complain about the people trying to help them in this newsgroup. They ask a DSP question in a way that makes it difficult to answer the question in a useful way or makes it unclear what they're really asking, and they expect others to read their mind and drop all of their own homework, personal interests, or professional obligations on their behalf. So far your behavior appears to be seeking spoonfeeding, which generally doesn't go over well here since dsp is a pretty deep topic with a lot of nuances. If you appear unwilling to do the background work, then the likelihood of any provided help actually doing any good is low, so many who could help don't bother or keep asking questions until a) the OP clarifies the question in a way that people can provide useful answers and/or b) it becomes clear whether the OP can actually put any provided help to productive use. I think some people are still evaluating a and b in this case.>And a link to the Faust tutorial? Really? Been there - done that.Then focus your questions to what you don't yet understand. You asked several times for help with "Faust" but with no specifics. Don't be surprised that somebody points you to a Faust tutorial.>Anyway - thanks...Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
Reply by ●July 27, 20142014-07-27
Ok. Here are some more specific questions: Assuming that the following is a way to specify filters using Faust syntax, how do I translate the following into digital difference equations OR which page(s) in the Faust manual should I read to be able to translate the following into digital difference equations? 1. highpass_plus_lowpass(1,fc) = _; 2. highpass_plus_lowpass(3,fc) = tf2s(1,-1,1,1,1,w1) with { w1 = 2*PI*fc; }; 3. highpass_minus_lowpass(3,fc) = tf1s(-1,1,1,w1) with { w1 = 2*PI*fc; }; 4. highpass_plus_lowpass(5,fc) = tf2s(1,-a11,1,a11,1,w1) with { a11 = 1.618033988749895; w1 = 2*PI*fc; }; 5. highpass_minus_lowpass(5,fc) = tf1s(1,-1,1,w1) : tf2s(1,-a12,1,a12,1,w1) with { a12 = 0.618033988749895; w1 = 2*PI*fc; }; 6. highpass_plus_lowpass(N,fc) = switch_odd_even(N%2,N,fc) with { switch_odd_even(0,N,fc) = highpass_plus_lowpass_even(N,fc); switch_odd_even(1,N,fc) = highpass_plus_lowpass_odd(N,fc); }; 7. highpass_minus_lowpass(N,fc) = switch_odd_even(N%2,N,fc) with { switch_odd_even(0,N,fc) = highpass_minus_lowpass_even(N,fc); switch_odd_even(1,N,fc) = highpass_minus_lowpass_odd(N,fc); }; 8. highpass_plus_lowpass_even(N,fc) = highpass(N,fc) + lowpass(N,fc); 9. highpass_minus_lowpass_even(N,fc) = highpass(N,fc) - lowpass(N,fc); 10. highpass_plus_lowpass_odd(N,fc) = highpass(N,fc) + lowpass(N,fc); 11. highpass_minus_lowpass_odd(N,fc) = highpass(N,fc) - lowpass(N,fc); I have been asked to rewrite [10] and [11], as for orders 3 and 5 in [2]-[5], to eliminate pole-zero cancellations. Does this mean that I have to rewrite [10] and [11] in the same way as it was done for the 3rd and 5th order filters in [2]-[5] ???
Reply by ●July 28, 20142014-07-28
On 7/27/14 4:03 PM, Mauritz Jameson wrote:>> If all you need is a low-pass filter, why do you need Faust and why are >> you looking at code for it that appears to implement an all-pass filter? > > Are you serious? > > It you bother to respond to my posts, and you're able to provide some insight, why not help a fellow DSP guy instead of wasting time on detours with irrelevant questions.whoa! dude! it's 1. hardly irrelevant 2. germane to the issue of efficiently helping you design 9th-order APFs 4. germane to the issue of whether or not we want to bother helping you or not. and to be forthright, if *you're* forthright and if the message from that is that we're helping you with homework or for paid work, we might say for the former with "learn-by-doing" and to the latter with "have your boss send me an email and i can discuss with him or her how much it might cost if they contract with me to do this specific job." you see, we're not against giving someone new starting in the business of writing DSP code. and we're not against helping some EE student grok some systems/signal/LTI/DSP concept or even a specific how-to-do problem. i have, myself, answered many questions here on comp.dsp with far more detail to *help* the OP than many people would bother. i'm doing that with this specific answer. but if a poster makes me feel like it, i might just be thinking "why bother?" see 4 points (i can count!) to refute your "wasting time on detours with irrelevant guestions" assertion.> Anyway - thanks... >well, for *what*? -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
Reply by ●July 28, 20142014-07-28
On 7/27/14 9:18 PM, Mauritz Jameson wrote:> Ok. Here are some more specific questions: > > Assuming that the following is a way to specify filters using Faust syntax, how do I translate the following into digital difference equations OR which page(s) in the Faust manual should I read to be able to translate the following into digital difference equations? > > > 1. highpass_plus_lowpass(1,fc) = _; >what'sa "_"?> 2. highpass_plus_lowpass(3,fc) = tf2s(1,-1,1,1,1,w1) with { w1 = 2*PI*fc; }; >what'sa "tf2s"? -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
Reply by ●July 28, 20142014-07-28
On Sun, 27 Jul 2014 18:18:42 -0700, Mauritz Jameson wrote:> Ok. Here are some more specific questions: > > Assuming that the following is a way to specify filters using Faust > syntax, how do I translate the following into digital difference > equations OR which page(s) in the Faust manual should I read to be able > to translate the following into digital difference equations? > > > 1. highpass_plus_lowpass(1,fc) = _; > > 2. highpass_plus_lowpass(3,fc) = tf2s(1,-1,1,1,1,w1) with { w1 = > 2*PI*fc; }; > > 3. highpass_minus_lowpass(3,fc) = tf1s(-1,1,1,w1) with { w1 = 2*PI*fc; > }; > > 4. highpass_plus_lowpass(5,fc) = tf2s(1,-a11,1,a11,1,w1) > > with { > a11 = 1.618033988749895; > w1 = 2*PI*fc; > }; > > 5. highpass_minus_lowpass(5,fc) = tf1s(1,-1,1,w1) : > tf2s(1,-a12,1,a12,1,w1) > with { > a12 = 0.618033988749895; > w1 = 2*PI*fc; > }; > > 6. highpass_plus_lowpass(N,fc) = switch_odd_even(N%2,N,fc) with { > switch_odd_even(0,N,fc) = highpass_plus_lowpass_even(N,fc); > switch_odd_even(1,N,fc) = highpass_plus_lowpass_odd(N,fc); > }; > > 7. highpass_minus_lowpass(N,fc) = switch_odd_even(N%2,N,fc) with { > switch_odd_even(0,N,fc) = highpass_minus_lowpass_even(N,fc); > switch_odd_even(1,N,fc) = highpass_minus_lowpass_odd(N,fc); > }; > > 8. highpass_plus_lowpass_even(N,fc) = highpass(N,fc) + lowpass(N,fc); > > 9. highpass_minus_lowpass_even(N,fc) = highpass(N,fc) - lowpass(N,fc); > > 10. highpass_plus_lowpass_odd(N,fc) = highpass(N,fc) + lowpass(N,fc); > > 11. highpass_minus_lowpass_odd(N,fc) = highpass(N,fc) - lowpass(N,fc); > > > I have been asked to rewrite [10] and [11], as for orders 3 and 5 in > [2]-[5], to eliminate pole-zero cancellations. Does this mean that I > have to rewrite [10] and [11] in the same way as it was done for the 3rd > and 5th order filters in [2]-[5] ???I really think that if you need to stick with Faust (which you have said you don't), that this is not the right group for it. If someone here was facile with finding filters in Faust, they would have come forward. The resounding silence on the Faustian aspects of your question is telling me that it's not a tool you should use with any expectation of getting help -- and it's not like the regulars here aren't good with DSP-related design. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com






