Method 1 (simple undersampling) will mirror noise and unwanted signal above the Nyquist frequency of 100 Hz into the base band. Unless the input signal is already band limited, you need to low-pass filter before down sampling.
In practice, you'll at least average the samples, implementing a first order CIC. It's sin(x)/x characteristic achieves a moderate reduction of out-of-band noise and interferences.
how we will know that it wont work effectively ? can you please give some information about this?A 20 tap FIR can't achieve a cut-off frequency of 0.01 fs as required for effective implementation of method 2.
Hi,
The first solution needs less processing power. But it doesn´t take care about frequencies from 100Hz....5kHz (both sample rate nyquist frequencies).
So if the original (10k sample/s) source includes frequecies in that range they will produce alias frequencies in the range of 0..100Hz.
Therefore I´d prefer solution2
And within an FPGA a little FIR or IIR filter is about "no" processing power.
Klaus
Read about: IIR filter, biquad... = really low processing power, but very flexible.
.. about the same as FvM.i didnt clearly got what you said above
By simulating the filter frequency response.how we will know that it wont work effectively ?
By simulating the filter frequency response.
Problem is you didn't tell any requirements for the decimator like frequency response, acceptable delay.
CASE (u0_m0_wo0_ca0_q) IS
WHEN "000000" => u0_m0_wo0_cm0_q <= "0000100100";
WHEN "000001" => u0_m0_wo0_cm0_q <= "0000011011";
WHEN "000010" => u0_m0_wo0_cm0_q <= "0000000000";
WHEN "000011" => u0_m0_wo0_cm0_q <= "1111100010";
WHEN "000100" => u0_m0_wo0_cm0_q <= "1111010010";
WHEN "000101" => u0_m0_wo0_cm0_q <= "1111011101";
WHEN "000110" => u0_m0_wo0_cm0_q <= "0000000000";
WHEN "000111" => u0_m0_wo0_cm0_q <= "0000101001";
WHEN "001000" => u0_m0_wo0_cm0_q <= "0001000001";
WHEN "001001" => u0_m0_wo0_cm0_q <= "0000110011";
WHEN "001010" => u0_m0_wo0_cm0_q <= "0000000000";
WHEN "001011" => u0_m0_wo0_cm0_q <= "1110111111";
WHEN "001100" => u0_m0_wo0_cm0_q <= "1110010100";
WHEN "001101" => u0_m0_wo0_cm0_q <= "1110100100";
WHEN "001110" => u0_m0_wo0_cm0_q <= "0000000000";
WHEN "001111" => u0_m0_wo0_cm0_q <= "0010011001";
WHEN "010000" => u0_m0_wo0_cm0_q <= "0101000101";
WHEN "010001" => u0_m0_wo0_cm0_q <= "0111001100";
WHEN "010010" => u0_m0_wo0_cm0_q <= "0111111111";
WHEN "010011" => u0_m0_wo0_cm0_q <= "0111001100";
WHEN "010100" => u0_m0_wo0_cm0_q <= "0101000101";
WHEN "010101" => u0_m0_wo0_cm0_q <= "0010011001";
WHEN "010110" => u0_m0_wo0_cm0_q <= "0000000000";
WHEN "010111" => u0_m0_wo0_cm0_q <= "1110100100";
WHEN "011000" => u0_m0_wo0_cm0_q <= "1110010100";
WHEN "011001" => u0_m0_wo0_cm0_q <= "1110111111";
WHEN "011010" => u0_m0_wo0_cm0_q <= "0000000000";
WHEN "011011" => u0_m0_wo0_cm0_q <= "0000110011";
WHEN "011100" => u0_m0_wo0_cm0_q <= "0001000001";
WHEN "011101" => u0_m0_wo0_cm0_q <= "0000101001";
WHEN "011110" => u0_m0_wo0_cm0_q <= "0000000000";
WHEN "011111" => u0_m0_wo0_cm0_q <= "1111011101";
WHEN "100000" => u0_m0_wo0_cm0_q <= "1111010010";
WHEN "100001" => u0_m0_wo0_cm0_q <= "1111100010";
WHEN "100010" => u0_m0_wo0_cm0_q <= "0000000000";
WHEN "100011" => u0_m0_wo0_cm0_q <= "0000011011";
WHEN "100100" => u0_m0_wo0_cm0_q <= "0000100100";
WHEN OTHERS => -- unreachable
u0_m0_wo0_cm0_q <= (others => '-');
END CASE;
How does this fit toinput samples come at a rate of 10khz & design is also runs at 10khz.
fs=20000hz
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?