全栈工程师开发手册 (作者:栾鹏)
matlab2c动态链接库下载
matlab库函数大全
matlab2c基础教程
matlab2c开发全解教程
matlab2c调用方法:
1、下载动态链接库
2、将Matlab2c.dll拷贝到exe同目录下
3、将Matlab2c.h、Matlab2c.lib放到项目头文件目录下
4、在cpp文件中引入下面的代码
#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;
matlab中awgn函数简介
1、awgn函数:
在信号x中加入高斯白噪声
2、用法说明
y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。
y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为’measured’,则函数将在加入噪声之前测定信号强度。
y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。
y =awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。POWERTYPE可以是’dB’或’linear’。如果POWERTYPE是’dB’,那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是’linear’,那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。
awgn的c++源码实现
为信号添加高斯白噪声
输入:实信号,信噪比
输出:输出添加列信噪比的信号
提示:信噪比单位为dB
Matrix Matlab2c::awgn(Matrix& sign,double SNR)
{
int i;
double sigPower=0;
double noisePower=0;
Matrix p(sign.row,sign.column);
Matrix noise;
srand((unsigned)time(NULL));
for (i=0;i<sign.row*sign.column;i++)
{
sigPower+=pow(sign.data[i],2);
}
sigPower = sigPower/(sign.row*sign.column);
noisePower = sigPower/(pow(10,SNR/10));
noise = Matlab2c::normrnd(0,noisePower,sign.row,sign.column);
for (i=0;i<p.row*p.column;i++)
{
p.data[i]=noise.data[i]+sign.data[i];
}
return p;
}
awgn函数的使用测试
#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;
int main()
{
double a[]={1,2,3,4,5,6};
Matrix aa=Matrix(1,6,a);
Matrix cc=Matlab2c::awgn(aa,20);
cout<<cc.toString()<<endl;
system("pause");
return 0;
}