<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000066">
Phil Harman wrote:<br>
<blockquote
 cite="mid:89c23ecd861a8373542ae325d3101b55.squirrel@webmail.eftel.com"
 type="cite">
  <pre wrap="">Assuming your mic signal is a float, +/- 1.0 max.

- Create a complex signal from the mic signal
- Multiply I and Q by the required compression gain
- Calculate the envelope for each I&Q pair i.e. E = SQRT(I^2 + Q^2)
- if E > 1 then divide I by E.
- This divided signal becomes your new mic signal.

Really simple but really effective, and impossible to do using analog
techniques.
  </pre>
</blockquote>
Hi Phil and Lyle,<br>
<br>
  thanks indeed for your answers. Well, the method is indeed quite
simple, and it comes at a cost of only a few lines of code,<br>
given that anyway one has to transform the real audio input signal into
an analytic one before sending it to the quadrature<br>
mixer.<br>
<br>
Maybe (but I will read the original article) a sort of simple smoothing
filter perhaps should be applied to the scale factor,<br>
in order to avoid abrupt variations of the level... or maybe not, as
the clipping effect is what is needed...<br>
only careful listening (as always...) at the output of the filter will
tell...<br>
<br>
TNX<br>
<br>
73  Alberto  I2PHD<br>
<br>
</body>
</html>

 1263747966.0