使用VC++输出调幅波的数值和波形

幅度调制,调幅,就是使载波的振幅按照所需传送信号的变化规律而变化,但频率保持不变的调制方法。

其示意如下;

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,

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/114569802