7

Most higher-end DSP chips have single-cycle multiply floating point hardware. Examples are Analog Devices Sharc or Texas Instruments C6X. Audio processing is an interesting case for fixed point. 32-bit is overkill, while 16-bit is really not enough for processing. 24-bit is therefore a good choice, and the Motorola (Freescale) 56k processors operate in 24-...


7

Almost all such programming is done in C, which means that 16 bits (shorts) and 32 bits (ints) make sense. I doubt it will surprise you that most chips support those bit widths, with 16 bits being a particular favorite because it is wide enough to be useful and narrow enough to be power efficient, small, and fast. I believe that there are a few chips that ...


5

The FFT is just a fast method to implement the Discrete Fourier Transform (DFT). It's based on the idea that you can break a large DFT down into a bunch of smaller ones and the combine the results for the final DFT. That requires the DFT length to be broken down into it's prime factors. The more and the smaller the prime factors are, the more efficient the ...


4

The duration of the linear feedback shift register (LFSR) in number of "chips" is $2^N-1$ where N is the number of states in the shift register (and order of the generator polynomial), and chips refers to each unique output that is generated in the sequence. This is assuming that you are using a maximum length sequence in the implementation of your shift ...


3

Is the one I implemented suitable or would you recommend something else? I think you did pretty well there. I'm not sure I'd end up with something different (although I would do a literature search on implementing IIR filters in FPGAs). Your filter looks pretty close to a direct form 2 filter. You can look up references to that for its strengths and ...


3

The filter structure is a digital leapfrog and the structure looks like this picture (note: the picture is a different order than the code): These filters are discussed at some length on wikipedia and wikibooks.


3

well, i see little value in factoring an FIR into quadratics and implementing them in cascade. it won't be computationally cheaper and it's not better from a quantization noise POV if your FIR has access to an accumulator that is double width. perhaps it will help with limiting coefficient range so that it's less likely that you have non-zero ...


2

It seems to be wrong. The first sample of the impulse response is always equal the b0 coefficient (b(1) in Matlab, so in this case that should be 0.099825504845559299 which doesn't seem to be the case. The correct answer can be checked with yref = filter(bs,a,x); and it's substantially different from your answer. You have shown that the fixed point version ...


2

Most fixed-point DSP chips have 16, 24 or 32 bit integer operations. That said, most of them also provide fixed-point DSP libraries that usually operate in a specific Q format. For example, some 24-bit arithmetic chips (e.g. Wolfson) supplies a DSP library that operates on Q3.20 fixed-point numbers.


2

As pointed out in a comment by Jason R, you can obviously come up with some random coefficients for the numerator and denominator polynomials of the filter's transfer function, and you'll end up with arbitrary filters that do not satisfy the definitions of any of the filter types you mentioned (even if you make sure that the filter is causal and stable). ...


2

First, an example: designing FIR filters pops to mind, or for that matter any signal processing module. The FIR filter is a nice example, since it can easily be implemented in VLSI even at the lowest abstraction level - physical mask level (in Cadence for example). If we recall an example of the FIR filter design: We can see that we only need to design: ...


2

Usually, even before someone builds a processor, they write a specification of the instruction set, and then they build a simulator for that. The same applies to TI's C67xx series: https://processors.wiki.ti.com/index.php/List_of_Simulator The wiki article strangely says that TI is moving away from simulation in Code Composer Studio 6, which would honestly ...


2

Where are the poles of your filter? If they are close to the unit circle, then quantizing them can cause some of them to cross beyond the unit circle, causing the quantized filter to be unstable. You should check the poles of your filter before quantizing and after quantizing. See how close they match. Secondly, it's risky, albeit not impossible, to ...


2

My friend, you dont need to break your head against a paper... Just with any example of this list, the Blum Blum Shub Method: $$x'_{{n+1}}=x_{n}^{'2}{\bmod M}$$ with $M=pq$, $p$, $q$ primes, with $x=\frac{1}{M}x' \approx U(0,1)$ gives you a fairly acceptable uniform $U(0,1)$ random number generator. You can use $p$=13331 and $q$=131 or whatever other. ...


2

I agree with Robert's answer, but I would like to add why SOS are used for IIR filters, from which it becomes easier to understand why they are not commonly used for implementing FIR filters. One of the reasons why SOS are a very common way of implementing IIR filters is the fact that poles close to each other and/or close to the unit circle make a direct ...


1

The reflection coefficients for the system are 1, 0.368, and 0.9. Based on the recursive difference equations for a lattice filter $f_{m-1}[n]= f_{m}[n] - K_{m} \times g_{m-1}[n-1]$ $g_{m}[n] = K_{m} \times f_{m-1}[n] + g_{m-1}[n-1]$ That negative is important but should go on the other crossover as shown in this picture. http://www.expertsmind.com/learning/...


1

Short answer: If your sampling rate is higher than your throughput, you must use some kind of polyphase decomposition of your filters to work. So if you can't do that, you can't use a 100 MHz-clockable design to filter something with a sample rate of 1000 MS/s. It's as simple as that. However, your example is exactly the standard example of a filter that ...


1

Good approach to first do a rough calculation of the bandwidths you need. Couple of remarks on that: You forgot a factor of 3, that camera has three "color pixels" per image pixel Your use case screams "I should be using a commercial off-the-shelf USB camera"; don't engineer something very complex if it doesn't have a value proposition ...


1

As mentioned by LamebrainEddy, you should find the difference equation of your system. To do so, recall that: $H(z) = \frac{Y(z)}{X(z)} = \frac{1}{2 + 1.4z^{-1} + 1.8z^{-2}}$ So: $Y(z)(2 + 1.4z^{-1} + 1.8z^{-2}) = X(z)$ $2Y(z) + 1.4z^{-1}Y(z) + 1.8z^{-2}Y(z) = X(z)$ And if you anti-transform you get: $2 y[n]+1.4 y[n-1]+1.8 y[n-2]$ = x[n] Finally, ...


1

Rearrange into a difference equation form and your answer will become clearer!


1

The conclusion of my discussion with hops and Marcus was that getting a DSP to operate with an ADC and DAC at the latency required for my application (<=250ns for 4MHz) would be difficult and require writing some custom interface. We concluded that the best option is to continue to work with the FPGA and improve my VHDL implementation using pipelining, ...


1

I've used one of the miniDSP kits (actually three USB Streamers) in a design project, and it did perform well, but we never did any of the actual DSP onboard and instead relied on computer software. Also, they tend to keep their onboard firmware locked down pretty tight at least for the model we used. Your options mostly go like this and people are free to ...


1

I think you might want to have a look at the stuff from XMOS. They have nice solutions (hardware, software, IDE) for developing audio applications on real(time) hardware. And besides that also nice development boards.


1

More details on the matched filter approach: Matched filter is the same thing as cross-correlation. Input A is a template of what you expect the click to sound like, and input B is the live stream of audio. You cross-correlate them, which will produce low-level noise unless there's a match and then it will produce a large spike. Most efficient way to do ...


1

Probably the easiest (and most accurate) way to do this is the matched filter approach suggested above. Basically, you can record each click independently and use those as matched filters against the microphone signal. If the clicks are always the same, click A will ring up very strong on the A matched filter. Same with B and C. To implement the ...


1

This question is more of a hardware setup. Books like Gonzalez will be more relevant when you have images as pixels and process them to transform to more desirable images. Here are the few tips: Setup a hardware like Raspberry PI - a small general purpose computer Add hardware I/O interface like Camera Module You can use standard USB Dongles and make it ...


1

I think in your pursuit will be sorely disappointed by a DSP reference book. You'll want to explore the world of microcontrollers, bluetooth radios, and off the shelf image compression. Since you are likely not ordering 10,000 units, you'll want to check out Arduino and particular the various shields offered by Adafruit (or any one of the various Arduino or ...


1

Consider a two-sample moving average of one-bit data with values {0,1}. The bandwidth is reduced by a factor of two. The possible outputs are {0,0.5,1}. You have gained half a bit, as predicted by the formula. John


Only top voted, non community-wiki answers of a minimum length are eligible