📄 window.c
字号:
/* Generates Hanning and Hamming window coefficients
INPUT: enter 'N' for window length of N
OUTPUT: generates the following four data files, where xxx = 'N'
hanflt.xxx - floating point Hanning window coefficients
hamflt.xxx - floating point Hamming window coefficients
hanhex.xxx - 16-bit (1.15) hexadecimal Hanning window coefficients
hamhex.xxx - 16-bit (1.15) hexadecimal Hamming window coefficients
Analog Devices, Inc. -- DSP Division -- Norwood, MA 02062
Christoph Cavigioli -- DSP Applications -- revised 30-June-1989
*/
#include <stdio.h>
#include <math.h>
main()
{
int h, n, N;
float garb, w;
float PI=3.1415926535897932384626434;
char hanflt_name[255], hamflt_name[255];
char hanhex_name[255], hamhex_name[255];
FILE *hanflt, *hamflt, *hanhex, *hamhex;
printf("\nenter N (pts): ");
scanf("%d", &N);
sprintf( hanflt_name, "hanflt.%d", N );
sprintf( hamflt_name, "hamflt.%d", N );
sprintf( hanhex_name, "hanhex.%d", N );
sprintf( hamhex_name, "hamhex.%d", N );
hanflt=fopen(hanflt_name,"w"); printf("\n opening %s ...",hanflt_name);
hamflt=fopen(hamflt_name,"w"); printf("\n opening %s ...",hamflt_name);
hanhex=fopen(hanhex_name,"w"); printf("\n opening %s ...",hanhex_name);
hamhex=fopen(hamhex_name,"w"); printf("\n opening %s ...",hamhex_name);
for (n=0; n<N; n++)
{
/*---------- Hanning ----------*/
w = (1 - cos( (2*PI*n) / (N-1) )) / 2;
h = (int) (w * 32768);
fprintf( hanflt, "%f\n", w );
fprintf( hanhex, "%04X\n", h );
/*---------- Hamming ----------*/
w = 0.54 - 0.46 * cos( (2*PI*n) / (N-1) );
h = (int) (w * 32768);
fprintf( hamflt, "%f\n", w );
fprintf( hamhex, "%04X\n", h );
}
fclose(hanflt); fclose(hamflt); fclose(hanhex); fclose(hamhex);
printf("\nDone.");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -