22

These caps are used as "decoupling" capacitors. Even though they appear like they're all next to each other, they will be located (often in pairs) on the circuit board next to power pins of digital IC's. Unlike analog circuitry, a digital circuit uses power in short, fast bursts. All traces or wires have some inductance, which prevents the current from ...


18

I guess it depends on several factors, among others the order of the filter, but you have a few possibilities: Find a signal generator that gets there. These are rather inexpensive nowadays. Trust the math. This is a digital filter and as such it scales with sampling rate. If you can increase the sampling rate by two orders of magnitude you would have a ...


13

Caps are located close to each digital IC, or small set of such ICs, to act as local reservoirs to smooth out the rapidly fluctuating current demands of such ICs. This prevents those rapidly fluctuating currents from causing fluctuating voltages on longer supply wires (PCB traces) and possibly disrupting other chips connected to those supply wires. In some ...


13

I assume for "high speed" you mean a small delay from data collection to the resultant FFT. With a low sample rate, your computational ability isn't the limiting factor, given modern computers. The delay problem lies in having enough data for analysis. If you want your 1Hz bin to be different from DC/0Hz, you have to accumulate enough signal data to capture ...


12

The main reason that frequency-domain processing isn't done directly is the latency involved. In order to do, say, an FFT on a signal, you have to first record the entire time-domain signal, beginning to end, before you can convert it to frequency domain. Then you can do your processing, convert it back to time domain and play the result. Even if the two ...


11

One usually needs to acquire multiple samples per waveform period to get good results from an FFT. The Nyquist limit of 2 samples per period is a lower bound but usually 10 samples per period or more is what is practically used. So to analyze a 64Hz signal you probably want to acquire samples at a rate of 640Hz or more. Also (up to a point) you will get ...


10

I'm not sure what you're looking at, but you need to understand the exmples you link. None of them use the truth-value within the actual filtering. It's there so you have something to compare to with regard to the filter output. Here is the simple script: import random # intial parameters iteration_count = 500 actual_values = [-0.37727 + j * j * 0.00001 ...


10

I would use my Agilent function generator, which goes down to 1\$\mu\$Hz, a fairly unremarkable (and obsolete) Model 33522A. My Rigol DG4102, I think, similarly has 1\$\mu\$Hz resolution and cost less. Unfortunately, you can't get that low with cheap DDS (eg. AD9850) modules because the tuning word is only 32 bits and the clock is typically 125MHz, so that'...


10

Feed forward refers to the direction of the signal flow. For feed forward, the direction is, well, forward :-) I think it is easier to show an example. I know that many "sigma-delta" ADCs (analog to digital converters) use a combination of feedback and feed forward. I found an example of a block diagram of such an ADC here in this article, about Higher-...


8

First, note that FIR/IIR is not the same as non-recurrent/recurrent (where recurrent means that the output depends on previous inputs and previous outputs). You can have a non-recurrent filter with infinite impulse response (e.g. \$h[n] = sinc(n/3)\$, which cannot be expressed as a recursion). And you can have a recursive construction for a FIR filter. But,...


7

This FPGA’s covers a broad range of frequencies at the range of 500KHz to 500MHz. So to keep flat the power supply impedance from msec to nsec, a parallel combination of capacitors of different values in a proper mix is used. The value it is not very critical and usually it is at the range of 0.001μF to 4.7μF, but the combination of values helps to keep ...


7

The word "order" is used two ways in your quotation from wikipaedia: - The alternate Direct Form II only needs N delay units, where N is the order of the filter and This structure is obtained by reversing the order of the numerator and denominator sections of Direct Form I In the first quote "order" refers to the "order" of the filter i.e. 1st ...


6

Your moving average filter is rather inefficient; there's no need to shift the data, nor to calculate the total each time again. Instead of a FIFO implement it as a round robin: *i points to the oldest sample in the list* total -= samples[i] total += new_sample samples[i] = new_sample i = (i+1) mod 8 average = total >> 3 So you replace the ...


6

To answer the question why are Direct Form I and Direct Form II equivalent we need to do a little math. For the Direct Form I Filter \$ y_n = b_0 \cdot x_n + b_1 \cdot x_{n-1} + b_2 \cdot x_{n-2} - a_1 \cdot y_{n-1} - a_2 \cdot y_{n-2} \$ And its transfer function would be written \$ H = \dfrac{b_0 + b_1 \cdot z^{-1} + b_2 \cdot z^{-2}}{1 - a_1 \...


6

You don't need to 'remove the spikes' so much as 'give the right reading'. There are at least two good possibilities for what's happening, and they require different software filters. Then there are bad possibilities, that may require a rethink of the mechanical arrangement. The difference between the two that can be handled in software depends on the ...


6

Option 1: Test on the PC. If your DSP code is written in C, then you can set up a test harness in GCC or Visual Studio. You know the sample rate for your DSP code, so use Excel to generate a test input CSV file, and have your test harness dump a CSV file output which you can check. Option 2: Test on the DSP with a PC interface. If your DSP code has to run ...


6

With you needing an anti-alias filter for 1/100 of the bandwidth, I'd say that both your single-pole IIR (exponentially weighted moving average) and actual moving averages are out of the question; you'd need suppression in 99% of your band sufficiently high enough to mitigate aliases. Simultaneously, you need a filter with a steep transition between pass- ...


5

My confusion is arising from coming to know that the window function has its origins in the time domain This is correct. Normally when we talk about a window function we're talking about something that's applied in the time domain. and not the frequency domain and the window function is convolved in time with our main signal to filter it! This is ...


5

You basically squared the signal. If you were sampling properly fast, then the small shift due to multiplying by the next sample instead of the same sample only had minor effect on high frequencies. Squaring a signal is a non-linear operation. The reason it appears to give lower signal to noise ratio is only because your noise was already lower than the ...


5

If you have a D/A converter as well in your DSP system, you could generate this extremely low frequency signal in software an feed it back to your A/D input. Alternatively you could use a D/A Card or USB Adapter to generate the signal. One example of such devices would be LabJack but there are many more with varying price/capabilites out there. Another ...


5

No. In this case, "infinite" really means semi-infinite — nonzero for positive time only. If it were nonzero for any negative time, then it would be non-causal, and therefore not physically realizable. Your equation doesn't look correct — you have \$y(n-k)\$ on both sides, but I think you intended to have \$x(n - k)\$ on the right. Also, it ...


5

What you propose is often called an "exponentially weighted moving average", and armed with that term, you can probably find a formula (wikipedia discusses this in some way). Generally, what you propose doesn't even work without a multiplier (how do you multiply with \$\alpha\$ and \$1-\alpha\$ without a multiplier– they can't both be a power of two at the ...


5

I thought the easiest way would be a recursive averaging IIR filter Your equation represents a simple low-pass, first-order filter hence, \$\alpha\$ equals: - $$\dfrac{t_{SAMPLE}}{CR}$$ Where CR is the equivalent CR time for a resistor-capacitor low-pass filter. So, with 1 kHz sampling and a required frequency cut-off (\$F_C\$) of (say) 10 Hz you'd ...


5

It is not a matter of simplicity. Rather it is attention to details by stating the critical performance specs THEN meeting them simply. Your first task in ANY DESIGN is to define ALL requirements. Then break it down into more detailed specs in a written checklist! cost vs qty, R&D time, size or space, performance, reliability, stability, tolerances ...


5

How does the tinted film only filter in one direction? That is an OLED screen, not LCD, so the structure is a little different. Instead of having just the top polarizer, an OLED screen has the top polarizer attached to the top of a quarter waveplate: When oriented the correct way, the polarizer converts incoming ambient light to be linearly polarized. ...


4

The steep response you want will require a multistage filter. The most commonly used active filter configuration is Sallen–Key topology, which provides two stages per amp using just 2 resistors and 2 capacitors. Various filter responses can be created by varying the component values. Here is an LTSpice simulation of a 4 stage Butterworth high-pass filter ...


4

Rescale it. The filter coefficients should be picked so that they all add up to the 16 bit max value. This should make the max value after the multipliers fit in to 32 bits. Then just truncate the 16 LSBs. In other words, use output[31:16] as the output and pick the filter coefficients do this does not overflow.


4

Your first problem is not insufficient design, but insufficient specification. Please note that 'as much as possible' is not a specification! Rather than wondering whether any particular filter is sharp enough, and may introduce high frequency noises onto the results, it would be more constructive to specify how much attenuation is required at what ...


4

Besides what the others have said, your difference equation leads to this transfer function: $$H(z)=\frac{\alpha}{1-(1-\alpha)z^{-1}}$$ and evaluating it is done by substituting \$z^{-1}=e^{-j\Omega_p}\$: $$H(\Omega_p)=\frac{\alpha}{1-(1-\alpha)e^{-j\Omega_p}}$$ If you consider the corner frequency to be the -3dB point, then this results back in this ...


3

Your second "FSM" code has many problems, primarily in the last process — process (current_s, input). Just a few examples to start with: This is an asynchronous process, so you must list all of the signals used inside of it in the sensitivity list. Failing to do this means that the simulation will not match the behavior of the actual hardware. Since ...


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