📄 sinwn.c
字号:
/* a 振幅 */
/* f 频率 */
/* ph 相位 */
/* m 正弦信号个数 */
/* fs 采样频率 */
/* snr 信噪比 */
/* seed 随机数种子 */
/* x 存放信号的数组 */
/* n 数据长度 */
#include "math.h"
#include "gauss.c"
void sinwn(a,f,ph,m,fs,snr,seed,x,n)
int m,n;
long seed;
double fs,snr,a[],f[],ph[],x[];
{
int i,k;
double z,pi,nsr;
pi=4.0*atan(1.0);
z=snr/10.0;
z=pow(10.0,z);
z=1.0/(2*z);
nsr=sqrt(z);
for(i=0;i<m;i++)
{
f[i]=2*pi*f[i]/fs;
ph[i]=ph[i]*pi/180.0;
}
for(k=0;k<n;k++)
{
x[k]=0.0;
for(i=0;i<m;i++)
{
x[k]=x[k]+a[i]*sin(k*f[i]+ph[i]);
}
x[k]=x[k]+nsr*gauss(0.0,1.0,&seed);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -