Page 1 of 1

Amplitude Modulation and Carrier Wave Addition

Posted: Wed Oct 11, 2017 1:09 pm
by Pythonimus
Hi,

I want to reconstruct what is described in this section of a paper and because I don't want to buy a signal generator I want to use Audacity to test for feasibility.
Image
I have a mono track and used these two Nyquist Codes:
AM:

Code: Select all

(mult s (hzosc 28000 *table* 90))
f_c is then 28000Hz and n_1 is 1 (looks good to me, nothing gets cropped), right?
CWA:

Code: Select all

(mult 0.5 (sum s (hzosc 28000 *table* 90)))
f_c is then 28000Hz and n_2 is 2, right?

Somehow the resulting signal does not do what it is supposed to do.
Am I doing everything correct here? Some tutorials state you need to add 1 and multiply by 0.5 before applying AM.

Thank you!

Re: Amplitude Modulation and Carrier Wave Addition

Posted: Wed Oct 11, 2017 1:22 pm
by steve
Pythonimus wrote:Some tutorials state you need to add 1 and multiply by 0.5 before applying AM.
(https://en.wikipedia.org/wiki/Amplitude_modulation)
Image

If you want 100% modulation, then the "message" needs to have a range of 0 to 1.

If this is about "Silent Subliminals", then this topic may help: viewtopic.php?f=42&t=58548
Also, note that sound cards are designed for humanly audible sound, so they are often limited to a maximum analog in / out frequency of not much more than 20 kHz (even if they support sample rates of 192 kHz or more).

Re: Amplitude Modulation and Carrier Wave Addition

Posted: Thu Oct 12, 2017 10:34 am
by Pythonimus
Ok, so the nyquist code should be:

Code: Select all

(mult (mult 0.5 (sum 1 s)) (hzosc 28000 *table* 90))
for a 0.5 modulation index?

Re: Amplitude Modulation and Carrier Wave Addition

Posted: Thu Oct 12, 2017 11:44 am
by steve
Pythonimus wrote:Ok, so the nyquist code should be:

Code: Select all

(mult (mult 0.5 (sum 1 s)) (hzosc 28000 *table* 90))
for a 0.5 modulation index?
With a 0 dB (full scale) "message" envelope, the modulation will be 100%
tracks000.png
tracks000.png (30.7 KiB) Viewed 1357 times
By the way, in the current "version 4" syntax, that code could be written as:

Code: Select all

(mult 0.5 (sum 1 *track*)(hzosc 28000))