On Thu, Aug 4, 2011 at 2:44 PM, Colby Boyer
<address@hidden> wrote:
the code below is in sdr_lib/rssi.v I don't understand especially this line: rssi_int <= #1 rssi_int + abs_adc - rssi_int[25:10];
wire [11:0] abs_adc = adc[11] ? ~adc : adc;
reg [25:0] rssi_int;
always @(posedge clock)
if(reset | ~enable)
rssi_int <= #1 26'd0;
else
rssi_int <= #1 rssi_int + abs_adc - rssi_int[25:10];
assign rssi = rssi_int[25:10];
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
It appears to be a clever way to implement a single pole IIR filter. Josh?
If you recall an IIR is defined as y[n] = (1-alpha) * y[n-1] + x[n]
Since multiplier are expensive in hardware, lets use a multiples of two so you can bit shift, then add and subtract. :D In this case alpha is 2^-10
--Colby