#include <stdio.h> #include <math.h> int main(void) { // variable FILE *fin, *fout; // File Pointer short data; // 16 bit Integer Variable float x, y, z, n; // for문을 돌리기 위해 변수 n을 지정함. //file open fin = fopen("input#1.raw", "rb"); fin = fopen("input#2.raw", "rb"); fout = fopen("demodule.raw", "wb");
// file read
for(n=0 ; ;n++ ) { // input read if(fread(&data, 2, 1, fin) == NULL) break; // conversion to Floating x = (float)data;// data 는 short 변수이므로 이를 Float로 바꾸어 계산한다. y = (float)date; z = x * cos(2*3.14*9600*n/48000) + y * sin(2*3.14*9600*n/48000); // z가 출력이므로 캐리어(cos)를 입력x에 곱한값과 캐리어(sin)을 입력 y에 곱한값을 더함. // output write data = (short)z; // 변조된 신호 z를 short 형태로 바꿈 fwrite(&data, 2, 1, fout); } fclose(fin); return 0; }
입력이 두개인 상황(파일 input#1과 input#2)인데 두개의 파일을 열어서 각각 cos ,sin 값을 곱한후 z에 저장하는 형태인데 파일 입출력에 관한 C코드 개념이 제가 생각햇던 것과 다른가봅니다ㅠ. 위에 처럼 짯는데 되지를 않군요ㅠㅠ C 능력자 오유성님들 어디가 틀렸나요??ㅠ