问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C程序设计谭浩强第四版终极程序

发布网友 发布时间:2022-08-23 07:30

我来回答

3个回答

热心网友 时间:2024-11-26 09:02

#include "math.h"
#include "stdio.h"
#include "REG52.H"

float max=0,sum=0; //计算失真度时所需要的全局变量
struct compx
{
float real;
float imag;
} ;
/*****************************************************************/
//函数名称: struct compx EE(struct compx b1,struct compx b2)
//返回值:旋转因子 即:x(n)W-N-kn(N为下标,kn为上标)
//功能: 生成旋转因子
//参数1:struct compx b1 即:x(n)
//参数2:struct compx b2 即: W-N-kn
/*****************************************************************/
struct compx EE(struct compx b1,struct compx b2) //旋转因子
{
struct compx b3;
b3.real=b1.real*b2.real-b1.imag*b2.imag;
b3.imag=b1.real*b2.imag+b1.imag*b2.real;
return(b3);
}
/*****************************************************************/
//函数名称: void FFT(struct compx *xin,int N)
//返回值:无
//功能: 实现FFT变换
//参数1:struct compx *xin 即:需要FFT变换的数组,类型为compx,对
// 于ADC采集后的数组其实部为AD值;虚部为0
//参数2:N 即: 转换的点数
/*****************************************************************/
void FFT(struct compx *xin,int N) //*xin为需要FFT变换的数组,N为转换的点数
{
int f,m,LH,nm,i,k,j,L;
double p , ps ;
long int le,B,ip;
float pi;
struct compx w,t;

LH=N>>1;
f=N;
for(m=1;(f=f>>1)!=1;m++){;}
nm=N-2;
j=N>>1;

for(i=1;i<=nm;i++) // 变址运算
{
if(i<j){t=xin[j];xin[j]=xin[i];xin[i]=t;}
k=LH;
while(j>=k){j=j-k;k=k/2;}
j=j+k;
}

for(L=1;L<=m;L++) //实现蝶形运算
{
le=(long int)pow(2,L);
B=le>>1;
pi=3.14159;
for(j=0;j<=B-1;j++)
{
p=pow(2,m-L)*j;
ps=2*pi/N*p;
w.real=cos(ps);//生成Wnk
w.imag=-sin(ps);

for(i=j;i<=N-1;i=i+le)
{
ip=i+B;
t=EE(xin[ip],w);
xin[ip].real=xin[i].real-t.real;
xin[ip].imag=xin[i].imag-t.imag;
xin[i].real=xin[i].real+t.real;
xin[i].imag=xin[i].imag+t.imag;
}
}
}
}
/*****************************************************************/
//函数名称:float THDcount(unsigned int *result)
//返回值:失真度值
//功能:求出失真度
//参数1:unsigned int *result 即:需求失真度数组地址
/*****************************************************************/
float THDcount(unsigned int *result)
{
unsigned int i=0,n=2,m,t=0;
float THD=0;
max=result[1];
for(i=2;i<256;i++)
{
if(result[i]>max)
{
max=result[i];
t=i;
}
}
m=t*n;
while(m<256)
{
sum=result[m]*result[m]+sum;
n++;
m=t*n;
}
sum=sum/(max*max);
THD=100*sqrt(sum);
return THD;
}
/*****************************************************************/
//函数名称:void main()
//返回值:无
//功能: 测试{2,3,3,2} 理论FFT转换后的值{10,-1-j,0,-1+j}
//参数: 无
//在Targe中设置Memory Mode为:Large:Variables in XDATA否则无法编译
/*****************************************************************/
void main()
{
struct compx aa[4];
aa[0].real=2;aa[0].imag=0;
aa[1].real=3;aa[1].imag=0;
aa[2].real=3;aa[2].imag=0;
aa[3].real=2;aa[3].imag=0;
FFT(aa,4);
while(1);
}

热心网友 时间:2024-11-26 09:02

邮箱给我,我发给你。包括文件操作、指针、数组、结构体、链表、预定义等

热心网友 时间:2024-11-26 09:02

是想参加什么比赛吗
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 中国银行卡密码修改,还能打进钱和取钱吗,是工资卡? 修改银行卡取款密码输入错误改成新的密码会有什么风险和危险么_问... 银行卡更改密码后,钱会不见吗? 最便宜的域名哪里可以注册? 南信大学分制都是学什么专业的?毕业后工作包分配吗?上几年才能毕业... 微生物whonet检验报告什么都没有 如何利用whonet做抗生素预警图 哪位英语达人可以帮我翻译一下论文摘要啊,感激万分啊 BacLink转化的数据在哪看 安装WHONET5.6后,打开其它应用程序报无法定位程序输入点 _except_ha... 为什么whonet用dbf文件 梦见亲人被狗咬死 手机数据如手机数据如何导入到另外一部手机? 如何把旧手机里的资料导到新手机里 怎么把旧手机的数据迁到新手机上 梦到自己杀人 然后还把那个人的尸体都藏在棺材了具体就是这样然后又梦到... 有涵养的简短个性签名 关于有涵养的简短个性签名 梦见自己杀人灵魂,只要被杀,人就痴呆,很麻木 为什么我的橘子酵素做了一周了还没有小气泡呢 vivo手机那个款式好 如何快速解除疲劳?恢复精神! 有什么方法可以快速集中精神祛除疲劳? 厦门茂颖物业服务有限公司怎么样? 广州市颖茵贸易有限公司怎么样? vivo手机机型有哪些 r Vivo iQOO8系列官宣:全系标配微云台+独显芯片,还像游戏手机吗? 一次函数中一般是y=kx+b,其中b是什么? 饺子馅要想留住菜汁,又不想让饺子馅过稀,需要怎么做? 加啥让菜汁浓稠 熬菜怎么能熬出浓汁 做菜时 怎么才能保持菜的原汁原味 请问一次函数中的b可不可以理解为图像与y轴交点? 遵守规则的优美句子 不以规矩不成方圆 一次函数中的b是函数图像的开始点吗 vivo手机,我一打开就出现这个平面。我想不让他出现咋弄。 Vivo+nex+a+是平面还是 济南都有什么特产或者小吃? 回家吃饭餐厅(定鼎店)味道怎么样,环境/服务好不好 论中西方之间设计思维的差异 xp系统里怎么改浏览器的首页