📄 yonglin.c
字号:
/*
#ifndef TRUE
#define TRUE 1
#endif
#define BUFSIZE 500 //数组长度
#define TABLE 256 //表的长度
#define Kf 5000 调频系数
#define f1 12500 载波频率
#define fs 50000 采样频率
#define fi 100 调制信号频率
#define Ts 0.00002 采样周期
#define Pi 3.1415927*/
//以上是fm.h的内容,主要是定义几个变量的值
//下面是fm.c的内容
#include<stdio.h>
#include <std.h>
#include "fm.h"
/*#pragma DATA_SECTION(inp_buffer,"in0")
#pragma DATA_ALIGN(inp_buffer,4)
#pragma DATA_SECTION(out_buffer,"out0")
#pragma DATA_ALIGN(out_buffer,4)*/
//数组inp_buffer的长度是500,它相当于输入信号,通过采样采集到的500个点
float inp_buffer[BUFSIZE]={
0.0, 0.012566, 0.02513, 0.03769, 0.050244, 0.062791,
0.075327, 0.087851, 0.10036, 0.11286, 0.12533, 0.13779,
0.15023, 0.16264, 0.17502, 0.18738, 0.19971, 0.21201,
0.22427, 0.2365, 0.24869, 0.26084, 0.27295, 0.28502,
0.29704, 0.30902, 0.32094, 0.33282, 0.34464, 0.35641,
0.36812, 0.37978, 0.39137, 0.40291, 0.41438, 0.42578,
0.43712, 0.44838, 0.45958, 0.4707, 0.48175, 0.49273,
0.50362, 0.51444, 0.52517, 0.53583, 0.54639, 0.55688,
0.56727, 0.57757, 0.58779, 0.5979, 0.60793, 0.61786,
0.62769, 0.63742, 0.64706, 0.65659, 0.66601, 0.67533,
0.68455, 0.69365, 0.70265, 0.71154, 0.72031, 0.72897,
0.73751, 0.74594, 0.75425, 0.76244, 0.77051, 0.77846,
0.78629, 0.79399, 0.80157, 0.80902, 0.81634, 0.82353,
0.8306, 0.83753, 0.84433, 0.85099, 0.85753, 0.86392,
0.87018, 0.87631, 0.88229, 0.88814, 0.89384, 0.89941,
0.90483, 0.91011, 0.91524, 0.92023, 0.92508, 0.92978,
0.93433, 0.93873, 0.94299, 0.9471, 0.95106, 0.95486,
0.95852, 0.96203, 0.96538, 0.96858, 0.97163, 0.97453,
0.97727, 0.97986, 0.98229, 0.98456, 0.98669, 0.98865,
0.99046, 0.99211, 0.99361, 0.99495, 0.99613, 0.99716,
0.99803, 0.99874, 0.99929, 0.99968, 0.99992, 1,
0.99992, 0.99968, 0.99929, 0.99874, 0.99803, 0.99716,
0.99613, 0.99495, 0.99361, 0.99211, 0.99046, 0.98865,
0.98669, 0.98456, 0.98229, 0.97986, 0.97727, 0.97453,
0.97163, 0.96858, 0.96538, 0.96203, 0.95852, 0.95486,
0.95106, 0.9471, 0.94299, 0.93873, 0.93433, 0.92978,
0.92508, 0.92023, 0.91524, 0.91011, 0.90483, 0.89941,
0.89384, 0.88814, 0.88229, 0.87631, 0.87018, 0.86392,
0.85753, 0.85099, 0.84433, 0.83753, 0.8306, 0.82353,
0.81634, 0.80902, 0.80157, 0.79399, 0.78629, 0.77846,
0.77051, 0.76244, 0.75425, 0.74594, 0.73751, 0.72897,
0.72031, 0.71154, 0.70265, 0.69365, 0.68455, 0.67533,
0.66601, 0.65659, 0.64706, 0.63742, 0.62769, 0.61786,
0.60793, 0.5979, 0.58779, 0.57757, 0.56727, 0.55688,
0.54639, 0.53583, 0.52517, 0.51444, 0.50362, 0.49273,
0.48175, 0.4707, 0.45958, 0.44838, 0.43712, 0.42578,
0.41438, 0.40291, 0.39137, 0.37978, 0.36812, 0.35641,
0.34464, 0.33282, 0.32094, 0.30902, 0.29704, 0.28502,
0.27295, 0.26084, 0.24869, 0.2365, 0.22427, 0.21201,
0.19971, 0.18738, 0.17502, 0.16264, 0.15023, 0.13779,
0.12533, 0.11286, 0.10036, 0.087851, 0.075327, 0.062791,
0.050244, 0.03769, 0.02513, 0.012566, 0.0, -0.012566,
-0.02513, -0.03769, -0.050244, -0.062791, -0.075327, -0.087851,
-0.10036, -0.11286, -0.12533, -0.13779, -0.15023, -0.16264,
-0.17502, -0.18738, -0.19971, -0.21201, -0.22427, -0.2365,
-0.24869, -0.26084, -0.27295, -0.28502, -0.29704, -0.30902,
-0.32094, -0.33282, -0.34464, -0.35641, -0.36812, -0.37978,
-0.39137, -0.40291, -0.41438, -0.42578, -0.43712, -0.44838,
-0.45958, -0.47070, -0.48175, -0.49273, -0.50362, -0.51444,
-0.52517, -0.53583, -0.54639, -0.55688, -0.56727, -0.57757,
-0.58779, -0.59790, -0.60793, -0.61786, -0.62769, -0.63742,
-0.64706, -0.65659, -0.66601, -0.67533, -0.68455, -0.69365,
-0.70265, -0.71154, -0.72031, -0.72897, -0.73751, -0.74594,
-0.75425, -0.76244, -0.77051, -0.77846, -0.78629, -0.79399,
-0.80157, -0.80902, -0.81634, -0.82353, -0.83060, -0.83753,
-0.84433, -0.85099, -0.85753, -0.86392, -0.87018, -0.87631,
-0.88229, -0.88814, -0.89384, -0.89941, -0.90483, -0.91011,
-0.91524, -0.92023, -0.92508, -0.92978, -0.93433, -0.93873,
-0.94299, -0.9471, -0.95106, -0.95486, -0.95852, -0.96203,
-0.96538, -0.96858, -0.97163, -0.97453, -0.97727, -0.97986,
-0.98229, -0.98456, -0.98669, -0.98865, -0.99046, -0.99211,
-0.99361, -0.99495, -0.99613, -0.99716, -0.99803, -0.99874,
-0.99929, -0.99968, -0.99992, -1, -0.99992, -0.99968,
-0.99929, -0.99874, -0.99803, -0.99716, -0.99613, -0.99495,
-0.99361, -0.99211, -0.99046, -0.98865, -0.98669, -0.98456,
-0.98229, -0.97986, -0.97727, -0.97453, -0.97163, -0.96858,
-0.96538, -0.96203, -0.95852, -0.95486, -0.95106, -0.94710,
-0.94299, -0.93873, -0.93433, -0.92978, -0.92508, -0.92023,
-0.91524, -0.91011, -0.90483, -0.89941, -0.89384, -0.88814,
-0.88229, -0.87631, -0.87018, -0.86392, -0.85753, -0.85099,
-0.84433, -0.83753, -0.8306, -0.82353, -0.81634, -0.80902,
-0.80157, -0.79399, -0.78629, -0.77846, -0.77051, -0.76244,
-0.75425, -0.74594, -0.73751, -0.72897, -0.72031, -0.71154,
-0.70265, -0.69365, -0.68455, -0.67533, -0.66601, -0.65659,
-0.64706, -0.63742, -0.62769, -0.61786, -0.60793, -0.59790,
-0.58779, -0.57757, -0.56727, -0.55688, -0.54639, -0.53583,
-0.52517, -0.51444, -0.50362, -0.49273, -0.48175, -0.47070,
-0.45958, -0.44838, -0.43712, -0.42578, -0.41438, -0.40291,
-0.39137, -0.37978, -0.36812, -0.35641, -0.34464, -0.33282,
-0.32094, -0.30902, -0.29704, -0.28502, -0.27295, -0.26084,
-0.24869, -0.2365, -0.22427, -0.21201, -0.19971, -0.18738,
-0.17502, -0.16264, -0.15023, -0.13779, -0.12533, -0.11286,
-0.10036, -0.087851, -0.075327, -0.062791, -0.050244, -0.03769,
-0.02513, -0.012566
};
float out_buffer[BUFSIZE]; //输出数组
//costable和sintable主要是应用于查表用,在一个sin和cos函数周期内各取了256个点
//他们是固定不变的,最好放在rom中,
static float costable[TABLE]={
1.0, 0.9997, 0.9988, 0.99729, 0.99518, 0.99248,
0.98918, 0.98528, 0.98079, 0.9757, 0.97003, 0.96378,
0.95694, 0.94953, 0.94154, 0.93299, 0.92388, 0.91421,
0.90399, 0.89322, 0.88192, 0.87009, 0.85773, 0.84485,
0.83147, 0.81758, 0.80321, 0.78835, 0.77301, 0.75721,
0.74095, 0.72425, 0.70711, 0.68954, 0.67156, 0.65317,
0.63439, 0.61523, 0.5957, 0.57581, 0.55557, 0.535,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -