幅度调制,调幅,就是使载波的振幅按照所需传送信号的变化规律而变化,但频率保持不变的调制方法。
其示意如下;
VC6;Win7;新建一个单文档项目,添加滚动条;添加滚动条见 https://blog.csdn.net/bcbobo21cn/article/details/112167653
现在设:采样率为10000,调制信号频率为100Hz,载波信号频率为1000Hz;
调制信号是要传送的信号,载波是搭载有用信号的波形;载波就是上面等幅的这个,载波一般是高频的;
代码如下;其他VC生成的代码不用管;
void CAmView::OnDraw(CDC* pDC)
{
CAmDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str1;
int r=0;
double s,t;
int i; //循环变量
POINT pt;
for (i=0; i<10000; i++)
{
t=i/10000.0;
s=(1+0.5*cos(2*pi*100*t))*cos(2*pi*1000*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;
}
}
void CAmView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = sizeTotal.cy = 500;
SetScrollSizes(MM_TEXT, sizeTotal);
}
程序还不完善,一个是输出double型数值时后面多了个l;一个是画线时,第一个点从(0,0)连过来了;有时间再改;
另外还要在视类cpp文件的头部包含<math.h>, #define pi,