Friday, October 21, 2011

CD4007-Based Voice Changer

Voice Changer (Ring Modulator) based on CD4007
This project is my entry to the 7400 Contest. It's a Voice Changer/Distorter based on a CMOS IC originally intended for digital use, the CD4007 IC. CD4007 contains two Complementary MOS pairs with the third pair connected as an inverter.

The project uses 2 - CD4007 configured as a Gilbert Cell Double Balanced Modulator and an additional 2 - CD4007 for use as a difference amplifier. This kind of effect is known as a Ring Modulator in the audio community. It is named so because the original method of doing the modulation was through diodes (connected as a bridge thus, taking the shape of a ring) and transformers.

The effect is also usable in instruments, certain notes can sound like bells or chimes with certain carrier frequencies. I'm not a musician though, I can't say if the circuit will perform well in real life. Here's a video of initial tests of my modulator using available parts in my bin. It's not performing perfectly (as what modulators are meant to do, only mixed products should appear) because of simply guessed bias voltages, but it does perform well in making distorted voices.



Here's another video of the initial test as a voice changer, trying out different carrier frequencies with my voice recording. I also included a test with the piano. The lower trace is the carrier frequency. I am using an Android Phone running FuncGen as the signal generator.



The heart of the project is a Gilbert Cell. The Gilbert Cell is a four-quadrant mulitplier first described by Barrie Gilbert in 1968. The circuit is typically found in Double-Balanced Mixers/Modulators and Detectors in RF circuits, and is also found in multiplier applications such as AGC's.

CD4007 Gilbert Cell Schematic
A simplified explanation of how the circuit works is as follows: M1 and M2 forms a differential amplifier connected to M3 which acts as a current source (or sink). Voltage output at the drain of M1 is a function of the transconductance established by the current source M3 and the input voltage at M1, plus half of the current of M3 multiplied by R4. Same goes for M2, just inverted (M1 drain is inverted with respect to input voltage), but with I(M3)/2 * R5 having the same polarity as that of M1.

With a modulating voltage input at M3, drain current of M3 will also be modulated. Transconductance will now be a function of the input at M3. Putting the modulated transconductance to the voltage output of M1, a product of the two yields cos[w(M3)t] * cos[w(M1)t] = cos[w(M3)t + w(M1)t] + cos[w(M3)t - w(M1)t], the sum and difference of the frequencies at M3 and M1. Doing the inverse of this at transistor M4, M5, and M6, will eliminate (ideally) V2 and V3 after taking the difference of the output voltages. Here's a link for a more detailed explanation using a Bipolar Gilbert Cell array.

The circuit at the left is configured as a difference amplifier. Current mirror M11 and M12 form a constant current source for the differential pair M9 and M10 (M12 is in the same package as M7 and M8). M7 mirrors the current at M8 making the output at the drain of M7 and M9 the difference of the voltages at the differential inputs. Experimental open loop gain of the circuit is measured at around 30.

Here are some simulation from LTSpice, MOSFET models were default models. Results are similar in actual experiments, though the actual circuit exhibited a larger voltage swing (forgot to took a picture of it).

Actual outputs swing around 200mV pk-pk though they also exhibit the same unevenness
This can be observed on my second video where there is almost no output wave at the carrier's negative swing

FFT shows input and carrier are not completely eliminated
Further improvements can be made to the circuit if the transistors were properly characterized and more properly biased. I've tried changing resistor values (also only those that are available in my bin, which unluckily, is very few) but the circuit tends to become too noisy with higher valued resistors. But as it is, it's useful as a voice changer as I've intended it to. :D

8 comments:

  1. I was searching everywhere for analog voice pitcher but nothing. I belive that is possible, look radio station with LSB modulation (or similar, i dont know exactly). Transmit station transmit voice without digital processing. Receiver station receive that signal but must to set fine tunnig if you won to recognize voice of transmiter. Otherwise, voice of speaker in transmit station is piched up or down.
    Because everything, i find digital IC-voice changer(RTS0072B) and make my project in diferent way but with same efect.

    ReplyDelete
    Replies
    1. PLEASE CHECK AT FACE ABOUT RADIO HUNTER I HAVE SOME DEMO ABOUT VOICE CHANGER THERE

      Delete
  2. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up. changer repair

    ReplyDelete
  3. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up. changer repair

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up.
    Online Voice Changer

    ReplyDelete
  6. Thanks for sharing this fun project. Instead of using the CD4007 ad a gilbert-cell, I have used the CD4007 as a balanced switched mixer. It gets a bit simpler but it adds odd harmonics of the lo. ( https://hackaday.io/project/182608-cd4007-as-a-balanced-mixer )

    ReplyDelete