📄 显示输入输出信号比较的按钮消息响应 函数程序.txt
字号:
void CRosinePage::OnButtonIocompare()//输出信号的比较
{
UpdateData(TRUE);
intjixing;,
Engine*ep://打开Matlab引擎
mxArray*T-NULL;//定义一个mx-array类型的结构体
//定义一个指向组合框的指针.以确定码型的极性
CComboBox*pcomb0Box=(CCombox*)GetDlgItem(IDC_COMBO_CHOOSE);
int nlndex=pComboBox->GetCurSel();
char tbuf[80];
int retwpComhoBox->GetLBText[(nlndex,tbuf);
ASSERT(ret!=CB_ERR);
switch (tbuf[0])
{
case’s’ ://’s’表示单极性
{ jixing=0;
Break;
}
case ‘d’://’d’ 表示双极性
{ jixing=l;
break;
}
case ‘m’: //'m’ 表示 多电平
{ jixing=2;
break;
}
default:
break;
}
//将编辑框的数据组成一个数组.用以传递给Matlab函数
double D[9]={m_Fd,m_R_m_rate,m_dataL,m_datal,m_sgma,m_snr,m_noise,jixing};
//Matlab中所需矩阵的构造
T=mxCreateDoubleMateix(1,9,mxREAL);
mxSetName(T,”T”);
//利用 C语言的内存拷贝命令对所构造的结构体进行赋值
memcpy((char*)mxGetPr(T),(char*)D,9*sizeof(double));
engPutArray(ep,T);
engEvalString(ep,” wavecompare Rcos(T} “);//完成参数传递
mxDestroy Array(T)”);//对前面所定义的结构体变量进行析构,释放内存
En Close(ep) ;//关闭Mathb引擎
}
2.4编译环境的设置
① 对 MATLAB编译环境进行设置
在 MArrIAB环境中运行 mex—setup命令 .按屏幕提示选择 有关选项 .此处选编译器为 Microsoft Visual C/C++version 6.0 in C:Tmgram FilesLMicrosoft Visual Studio,路径按实际情况选择。
② 对 Visual c++编译环境进行设置
选择 Visual C++编译 器 主菜单 下 ToolslOptiomIDirectories
命令 。选 择 Show Directories For列表框 。把 MATLAB的包含文件
路径 c:\matlab7p0\extern\include和库文件路径 c:\natlab7pO\extern\lib\win32\mirosoft\msvc60添加到 Visual C++路径 中去 。选
择 Visual C++编译器主菜单下 ProjectlSettinglLinklGeneralIObject/Library modules下 加 入 libeng.1ib、libmx.1ib、libmat.1ib三个静态库。
2.5编写 MATLAB仿真绘 图函数
在 MATLAB环境下编写绘制升余弦滤波器输入输 出信号波形的wavecompare Rcos(1函数后。即可实现输入输出信号波形的仿真。
function wavecompare _Rcos(T)
[tx,x,to,yo,f1,y1,t,yf,f2,yf1]=raise(T);
stem(tx,x,’rx’);
hold on
plot(to,yo)
title( ‘脉冲输人前后波形比较’)
xlabel( time(秒)’)
ylabel('Amplitude’)
hold off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -