This forum is run by the BATC (British Amateur Television Club), it is service made freely available to all interested parties, please do not abuse this privilege.
might be a old Question but i seek a sort of intelligent mixer for atv Inputs. There the Audio must met a threshhold being passed through to the mixer and final stage. any schematic of Ready to use device out there?
thanks for sharing your thoughts in Advance,
br Robert, 73 de oe6rke
It's a 12 to 6 audio mixer.
Any of the 12 input channels can be passed to any of the 6 output channels.
channels 1-4 have mute if the squelch threshold is not met, i could not fit any more than 4 filters into the fpga at present.
It's only really in alpha testing at the moment so not good for release for general use but if you have some fpga/code knowledge you maybe able to alter to suit your needs.
It maybe possible/better? to do this with a fast micro controller instead of the fpga.
Let me know if you have any interest and i can forward the code as is.
Not sure if this will be any less computationally intensive, but have you considered an FIR LPF filter, then subtracting the output from input (with suitable delays to equalise path lengths). I have used this in the (chroma) video path of an FPGA PAL vectorscope and it worked quite well.
What is the ratio of your master clock to sample rate ?
Are you implementing the filter in one crunch (huge number of multipliers), or are you doing multiple MACs between samples, using master clock ?
Have some recollection that if the cut-off frequency of the filter is a 1/(2 to the N) of sample rate then some (many ?) of the coefficients approach zero.
What happened to the days of making filters using valves !
This is my first 'real' FPGA project so there will be a million ways to do it better.
It uses a 49 point 10bit FIR HPF.
Sample rate is ~60KHz if i remember correctly, master clock is 50MHz.
I may get back to the project this winter, very time consuming
Sounds like you need a block which takes 8 audio samples in (1 per channel, per sample clock), and stores them in 8 input arrays, each 64 samples long (easy 2^n addressing).
~1000 clocks per sample available, so starting with input sample buffer 1, fetch next sample, add to circular input buffer, MAC input buffer against the FIR coefficients to create one output sample (which is passed onto next block : rectifier, smoothing, and squelch thresholding). Also need to manage the circular buffer of 49 samples within a 64 sample memory space. Repeat for the remaining 7 channels.
Resources sound roughly like:
512 x 10 bits of audio input buffer
1 x 6 bit input sample pointer (with 64 byte offset to next channel)
1 x 3 bit channel counter
49 x 10 bits of FIR filter coefficients
1 x signed MAC (haven't had enough coffee to work out size)
input and output multiplex
circular buffer management
8 x 10 bits of audio output buffer
+ stuff I have forgotten
~55 clocks per channel x 8 channels = 440 master clocks to filter all 8 channels
Sounds all very doable on a sample by sample basis, no need for pipelining; shouldn't be too large.
Interested to see how this end up.