Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[Moved] FPGA in feedback path of guitar amplifier

Status
Not open for further replies.

dinger5

Newbie level 2
Joined
Mar 9, 2015
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
36
Hello I was wondering how feasible it would be to use a FPGA in the feedback path of a guitar amplifier. Instead of using resistors in the feedback path I was thinking of using the FPGA in the feedback. The FPGA will be used in the input and feedback to implement digital filters, control volume and other guitar related processing.

It would essentially go: (analog filters, buffers, etc omitted for simplicity)

Guitar --> A/D --> FPGA --> D/A --> AMP --> SPEAKER --> A/D --> FPGA

The first A/D --> FPGA being the input effects.
The last A/D --> FPGA being the feedback.

Has anyone done anything similar or had any experience with using digital processing in the feedback path of an amplifier? Also what other things may I be overlooking or forgetting to take into consideration in this design?
 

BradtheRad

Super Moderator
Staff member
Joined
Apr 1, 2011
Messages
14,104
Helped
2,798
Reputation
5,600
Reaction score
2,714
Trophy points
1,393
Location
Minneapolis, Minnesota, USA
Activity points
105,199
The idea sounds good at first, but it will be problematic.

Guitar pickups produce a weak signal. The amplitude is barely sufficient to feed to an ADC. Therefore you still should expect to amplify it in the normal analog manner.

After that, you can feed it to a microcontroller. The ADC will turn it into digitized audio. You'll have to store each data value, process it, then send it to the DAC output. You'll have to do that tens of thousands of times per second.

If you introduce any audible delay, it will sound funny. You may find it is unsatisfactory with real-time performing.

You'll need to move digitized audio in and out of memory rapidly. Perhaps store incoming data in one bank, while moving it out of a second bank.

If your fpga can execute your code quickly enough, then you may find it easy to overcome these challenges.
 

dinger5

Newbie level 2
Joined
Mar 9, 2015
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
36
Ahh yes I forgot to include the pre amp in the signal chain. I've read that pickups vary from 100mV to 1V, which could mean maybe 5x amplification. Probably throw a pot in there for adjustment.

I have no doubt in my mind that an FPGA would be quick enough to process audio in real time. Also the signal is never going to a micro controller but straight to the FPGA from the A/D converter.

There might be significant delay from the A/D side from the delta sigma but I think it should be negligible. If delay becomes an issue from this side I can throw a couple A/D converters in parallel to the FPGA to speed things up.

I was more concerned about the feedback path to the negative terminal of the differential amp. I am thinking of sending a D/A signal to the negative terminal of the diff amp to implement the closed loop gain control. Implementing some IIR filters inside the FPGA would be simple and it should be able to do some fancy manipulations in the feedback chain.

The biggest delay would probably come from some FFT cores inside to make a tuner. But the delay would most likely come from waiting for better FFT resolution which is acceptable when tuning. All effects would probably be through some sort of IIR filter. I can always have other timer blocks inside the FPGA to trigger control events to make different effects not dependent on input, thus added no delay.

For initial setup to verify that this works, I will send the digital audio through shift registers and some multiplication and addition blocks to implement a simple IIR filter to test the system. Having direct digital control on the feedback loop could make things interesting.

I wonder how fast signal would have to go from input --> output to be transparent to the human ear.
 

KlausST

Super Moderator
Staff member
Joined
Apr 17, 2014
Messages
19,928
Helped
4,368
Reputation
8,745
Reaction score
4,347
Trophy points
1,393
Activity points
131,909
Hi,

Generally processing audio data with an FPGA is a good idea.

But not in the feedback path of an amplifier.
The group delay makes it to oscillate and it is very difficult to make it stable.

Especially delta sigma ADCs have big delay, even worse the FFT and reverse FFT.

The better way is to place the feedback in the digital data stream inside the FPGA, like IIR filters do.

I don't want you to stop learning, so try if you like to see how it works.
The more effective - but more boring - way is to learn the theory of digital signal processing by reading tutorials.

Nowadays there are tiny and easy to use DSPs, like the SigmaDSP from Analog Devices. I used a ADAU1701 on an evaluation board. With the graphical programming interface it is really fast and simple to process audio data.

Good luck
Klaus
 

lucbra

Advanced Member level 2
Joined
Oct 30, 2003
Messages
514
Helped
73
Reputation
146
Reaction score
63
Trophy points
1,308
Location
Belgium
Activity points
3,251
Why would you only take the feedback loop in the FPGA?

You can process the audio chain perfectly in the FPGA. Do you actually understand the concept of digital signal processing?
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top