how to multiply the carrier again with the output in this amplitude modulation?
is that the new output will be like that ?
please help me !!!
void main()
{
short baseband[20]={1000,951,809,587,309,0,-309,-587,-809,-951,-1000,-951,-809,-587,-309,0,309,587,809,951}; //400-Hz baseband
short carrier[20] ={1000,0,-1000,0,1000,0,-1000,0,1000,0,-1000,0,1000,0,-1000,0,1000,0,-1000,0}; //2-kHz carrier
short output[20];
short k;
comm_poll(); //init DSK, codec, McBSP
while(1) //infinite loop
{
for (k=0; k<20; k++)
{
output[k]= carrier[k] + ((amp*baseband[k]*carrier[k]/10)>>12);
output_sample(20*output[k]); //scale output
}
{
output[k]= ((carrier[k] + (amp*baseband[k]*carrier[k]/10)>>12)*carrier[k]);
output_sample(20*output[k]); //scale output
}
}
}
Original AM coding
//AM.c
#include "DSK6713_AIC23.h" //codec-dsk support file
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate
short amp = 1; //index for modulation
void main()
{
short baseband[20]={1000,951,809,587,309,0,-309,-587,-809,-951,-1000,-951,-809,-587,-309,0,309,587,809,951}; //400-Hz baseband
short carrier[20] ={1000,0,-1000,0,1000,0,-1000,0,1000,0,-1000,0,1000,0,-1000,0,1000,0,-1000,0}; //2-kHz carrier
short output[20];
short k;
comm_poll(); //init DSK, codec, McBSP
while(1) //infinite loop
{
for (k=0; k<20; k++)
{
output[k]= carrier[k] + ((amp*baseband[k]*carrier[k]/10)>>12);
output_sample(20*output[k]); //scale output
}
}
}