?? 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 + -