?? modulator.cpp
字號:
/********************************************************************
* modulator -- Modulates an input signal sample by sample *
* Functions -- CosModulation, SinModulation *
* Inputs -- Sample to be modulated *
* Returns -- Corresponding modulated sample *
********************************************************************/
class modulator {
private:
double CosCarrier[4]; /* 4 samples per period */
double SinCarrier[4];
long int counter1,counter2;
public:
modulator()
{ CosCarrier[0]=cos(0);
SinCarrier[0]=sin(0);
CosCarrier[1]=cos(M_PI/2);
SinCarrier[1]=sin(M_PI/2);
CosCarrier[2]=cos(M_PI);
SinCarrier[2]=sin(M_PI);
CosCarrier[3]=cos(3*M_PI/2);
SinCarrier[3]=sin(3*M_PI/2);
counter1=0;
counter2=0;
}
void ShiftPhase(double PhaseShift, double SlopeOfShift)
{ CosCarrier[0]=cos(0+PhaseShift);
SinCarrier[0]=sin(0+PhaseShift);
CosCarrier[1]=cos(M_PI/2+PhaseShift);
SinCarrier[1]=sin(M_PI/2+PhaseShift);
CosCarrier[2]=cos(M_PI+PhaseShift);
SinCarrier[2]=sin(M_PI+PhaseShift);
CosCarrier[3]=cos(3*M_PI/2+PhaseShift);
SinCarrier[3]=sin(3*M_PI/2+PhaseShift);
/* PhaseShift=PhaseShift+SlopeOfShift; */
}
double CosModulation(double CosSample);
double SinModulation(double SinSample);
};
double modulator :: CosModulation(double CosSample)
{ double temp;
temp=(CosCarrier[counter1%4]*CosSample);
++counter1;
return temp;
};
double modulator :: SinModulation(double SinSample)
{ double temp;
temp=(SinCarrier[counter2%4]*SinSample);
++counter2;
return temp;
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -