Welcome Guest ( Log In | Register )

Build your own noise shaping filters!, Freeware inside
post Sep 4 2006, 09:55
Post #1

Group: Developer
Posts: 1318
Joined: 20-March 04
From: Göttingen (DE)
Member No.: 12875


Inspired by this thread -- but also because I like messing around with DSP stuff from time to time .... I wrote two programs that let you design and apply noise shaping filters. Check out my little homepage (screenshot and ZIP to downlad).

I'm kind of proud of the way poles and zeros are controlled. Havn't seen this approach before. smile.gif
Also, you get to hear the result instantly. Try altering the response while audio is on wink.gif


PS: I should probably mention that the noise you hear (program "iiirdsgn") is TPDF dithered silence.

PPS: It's likely that you can design better noise shaping filters than those that are supplied. I didn't have accurate equal loudness data available. Filter design tips:
- Try to keep the number of red and blue strings minimal
- Keep the response below ... say +30 dB
- Don't try to approximate equal loudness curves below, say, 1 kHz. If you do, the filters only get more complicated. There's hardly a gain due to the small bandwidth of that region. I intentionally use a linear frequency axis, so don't bother approximation the curves for a very small region.

You may link to *.sos files you created if you think you've designed a really good one. wink.gif

This post has been edited by SebastianG: Sep 4 2006, 12:57
Go to the top of the page
+Quote Post
Start new topic
post Jun 24 2011, 14:21
Post #2

Group: Members
Posts: 16
Joined: 24-June 11
Member No.: 91806

I realize that this thread is relatively old, but this is definately the tool I need albeit a limitation. I am trying to play higher quality digital audio on an old Mattel Aquarius. (Thread from another forum here: http://www.atariage.com/forums/topic/18060...d-on-aquarius/)

I have written my own quantizer because I have to go all the way down to 1 bit because, well, the Aquarius can only send an on or an off to the speaker. I have also distributed the quantization error and incorporated a random dither (although not on all of the reduced bits because that destroys ANY audio fidelity.)

Anyway, I do not really know what I am doing. I know I am distributing the quantization error and I know I am adding some random dither, I also know that this results in some type of noise/distortion shaping. All I did was modify my coefficients until it "sounded good."

My sampling rate is 50,700 Hz so the Nyquist Frequency is 25,350. I'd like to move the noise from 3,000 Hz and 12,000 Hz up to 25,000 Hz - but I have no idea how. I realize that at 1 bit it won't ever sound "great" but I know it can sound better. Any ideas?
Go to the top of the page
+Quote Post
post Jun 25 2011, 01:32
Post #3

Group: Super Moderator
Posts: 3406
Joined: 26-July 02
From: To:
Member No.: 2796

QUOTE (chjmartin2 @ Jun 24 2011, 06:21) *
My sampling rate is 50,700 Hz so the Nyquist Frequency is 25,350. I'd like to move the noise from 3,000 Hz and 12,000 Hz up to 25,000 Hz - but I have no idea how. I realize that at 1 bit it won't ever sound "great" but I know it can sound better. Any ideas?
While the matter is a bit too complicated for me, there are a few things to note: These filters seem to be designed for multi-bit output. There are probably better approaches for the 1-bit case. In the examples you produced, I noticed that your most recent output appears to be completely devoid of high-frequency content past 16kHz or so.

I know you want to do the processing on your device, but it would seem to me you'd be better served processing the data on your PC and then storing only the encoded data on the device. That way you can perform more complicated processing.

I invite you to make a separate post in our Scientific Discussion forum describing your problem and what you hope to achieve. I think some people who may be otherwise interested in the topic may miss out otherwise.

1. Attack the argument, not the arguer.
2. Assume good faith.
Go to the top of the page
+Quote Post

Posts in this topic
- SebastianG   Build your own noise shaping filters!   Sep 4 2006, 09:55
- - Ken S   QUOTE (SebastianG @ Sep 4 2006, 09:55) I...   Sep 4 2006, 19:18
|- - d_headshot   QUOTE (Ken S @ Sep 4 2006, 13:18) QUOTE (...   Jun 24 2011, 23:08
- - Firon   It seems to have clicking noises while typing or c...   Sep 4 2006, 21:43
- - bhoar   QUOTE (SebastianG @ Sep 4 2006, 04:55) Hi...   Sep 5 2006, 07:32
- - SebastianG   QUOTE (Ken S @ Sep 4 2006, 20:18) Very ve...   Sep 5 2006, 09:48
|- - bhoar   QUOTE (SebastianG @ Sep 5 2006, 04:48) QU...   Sep 5 2006, 14:30
- - cabbagerat   Nice tool, thanks.   Sep 5 2006, 10:47
- - Hollunder   link works here too Those questions could be stup...   Sep 5 2006, 10:59
- - Firon   QUOTE (SebastianG @ Sep 5 2006, 04:48) I...   Sep 5 2006, 11:41
- - Gabriel   Dummy question: In the transfert function, is z^{x...   Sep 5 2006, 11:49
- - SebastianG   QUOTE (Hollunder @ Sep 5 2006, 11:59) Tho...   Sep 5 2006, 13:19
- - Hollunder   Thank you sebastian, I found the thread you mentio...   Sep 5 2006, 16:04
- - Gabriel   For the beginners, here is an intro to the zeros/p...   Sep 29 2006, 16:12
|- - SebastianG   I just thought you might be interested in a filter...   Mar 5 2008, 11:03
|- - SebastianG   For those who are interested in using these filter...   Mar 7 2008, 18:31
|- - AmitO   QUOTE (SebastianG @ Mar 7 2008, 18:31) Fo...   Nov 28 2014, 00:20
- - neelX   QUOTE (SebastianG @ Sep 4 2006, 10:55) .....   Jan 16 2010, 14:33
- - lvqcl   CODE This package is FREEWARE. You are allowed to ...   Jan 16 2010, 15:24
|- - neelX   thank you lvqcl   Jan 16 2010, 23:29
- - chjmartin2   I realize that this thread is relatively old, but ...   Jun 24 2011, 14:21
|- - Canar   QUOTE (chjmartin2 @ Jun 24 2011, 06:21) M...   Jun 25 2011, 01:32
- - zhuzengyou   HellO: The demo code is out of data,is any ...   May 13 2012, 03:35
- - dindisalvadi   Hi i'd like to do a filter for 96 kHz, can any...   Nov 27 2013, 19:37

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:


RSS Lo-Fi Version Time is now: 2nd December 2015 - 07:30