接此;
使用VC++输出调幅波的数值和波形_bcbobo21cn的博客-CSDN博客
前面是基本的调幅;下面来看一下基本的调频;
调频就是使载波的频率随调制信号的频率改变;载波是一个等幅的高频振荡;调制信号就是要传递的信息,外形一般是幅度不等的杂波,示意的话也可以用正弦波;
调频的表达式如下;这是时域,就是横轴是时间,纵轴是幅度;
载波的频率是Wc;调频之后,调制信号的变化加到了载波的频率上;Ω 是调制信号的频率;
前文的信号表达式是,s=(1+0.5*cos(2*pi*100*t))*cos(2*pi*1000*t);
cos(2*pi*1000*t),这是载波,这是高频的;
cos(2*pi*100*t),这是调制信号,这是低频的;0.5是幅度,1算是系数;
先单独输出载波看一下,如下图;
然后把调制信号的变化加到载波的频率上,为了好看把载波的幅度乘2;
void CFmtestView::OnDraw(CDC* pDC)
{
CFmtestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str1;
int r=0;
double s,t,t2;
int i; //循环变量
POINT pt;
for (i=0; i<10000; i++)
{
t=i/10000.0;
t2 = 0.5*cos(2*pi*100*t);
s=2*cos((2*pi*1000*t2)*t);//信号的表达式
//printf("%e\t%e\n",t,s);
str1.Format("%f\t %f\n",t,s);
pDC->TextOut(10,10+r*20,str1);
pt.x=300+t*10000;
pt.y=200+s*30;
pDC->LineTo(pt);
pDC->MoveTo(pt);
r=r+1;
}
}
运行如下;有一些效果;看上去还没完全对;有时间给它整好;