导航:首页 > 源码编译 > 128点的算法

128点的算法

发布时间:2022-07-29 19:08:25

❶ 如何实现128点的温度测量

温度测量点的数量和温度传感器数量是相同的
要实现128点温度测量
必须要有128个温度传感器
温度传感器(temperature transcer)是指能感受温度并转换成可用输出信号的传感器。
温度传感器是温度测量仪表的核心部分,品种繁多。
进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。温度传感器的总线技术也实现了标准化、可作为从机可通过专用总线接口与主机进行通信。
按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类。

❷ 若做128点快速卷积运算,问最低抽样频率应该是多少

频率分辨率为:4k/128=31.25Hzk=16的谱线频率为:31.25*(16-1)=468.75Hz

❸ 一个关于128点的快速傅立叶的C语言程序

这是我写的1024点的快速傅里叶变换程序,下面有验证,你把数组
double
A[2049]={0};
double
B[1100]={0};
double
powerA[1025]={0};
改成
A[256]={0};
B[130]={0};
power[129]={0};就行了,
void
FFT(double
data[],
int
nn,
int
isign)
的程序可以针对任何点数,只要是2的n次方
具体程序如下:
#include
<iostream.h>
#include
"math.h"
#include<stdio.h>
#include<string.h>
#include
<stdlib.h>
#include
<fstream.h>
#include
<afx.h>
void
FFT(double
data[],
int
nn,
int
isign)
{
//复数的快速傅里叶变换
int
n,j,i,m,mmax,istep;
double
tempr,tempi,theta,wpr,wpi,wr,wi,wtemp;
n
=
2
*
nn;
j
=
1;
for
(i
=
1;
i<=n
;
i=i+2)
//这个循环进行的是码位倒置。
{
if(
j
>
i)
{
tempr
=
data[j];
tempi
=
data[j
+
1];
data[j]
=
data[i];
data[j
+
1]
=
data[i
+
1];
data[i]
=
tempr;
data[i
+
1]
=
tempi;
}
m
=
n
/
2;
while
(m
>=
2
&&
j
>
m)
{
j
=
j
-
m;
m
=
m
/
2;
}
j
=
j
+
m;
}
mmax
=
2;
while(
n
>
mmax
)
{
istep
=
2
*
mmax;
//这里表示一次的数字的变化。也体现了级数,若第一级时,也就是书是的第0级,其为两个虚数,所以对应数组应该增加4,这样就可以进入下一组运算
theta
=
-6.28318530717959
/
(isign
*
mmax);
wpr
=
-2.0
*
sin(0.5
*
theta)*sin(0.5
*
theta);
wpi
=
sin(theta);
wr
=
1.0;
wi
=
0.0;
for(
m
=
1;
m<=mmax;
m=m+2)
{
for
(i
=
m;
i<=n;
i=i+istep)
{
j
=
i
+
mmax;
tempr=double(wr)*data[j]-double(wi)*data[j+1];//这两句表示蝶形因子的下一个数乘以W因子所得的实部和虚部。
tempi=double(wr)*data[j+1]+double(wi)*data[j];
data[j]
=
data[i]
-
tempr;
//蝶形单元计算后下面单元的实部,下面为虚部,注意其变换之后的数组序号与书上蝶形单元是一致的
data[j
+
1]
=
data[i
+
1]
-
tempi;
data[i]
=
data[i]
+
tempr;
data[i
+
1]
=
data[i
+
1]
+
tempi;
}
wtemp
=
wr;
wr
=
wr
*
wpr
-
wi
*
wpi
+
wr;
wi
=
wi
*
wpr
+
wtemp
*
wpi
+
wi;
}
mmax
=
istep;
}
}
void
main()
{
//本程序已经和MATLAB运算结果对比,准确无误,需要注意的的是,计算中数组都是从1开始取得,丢弃了A[0]等数据
double
A[2049]={0};
double
B[1100]={0};
double
powerA[1025]={0};
char
line[50];
char
dataA[20],
dataB[20];
int
ij;
char
ch1[3]="\t";
char
ch2[3]="\n";
int
strl1,strl2;
CString
str1,str2;
ij=1;
//********************************读入文件data1024.txt中的数据,
其中的数据格式见该文件
FILE
*fp
=
fopen("data1024.txt","r");
if(!fp)
{
cout<<"Open
file
is
failing!"<<endl;
return;
}
while(!feof(fp))
//feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。
{
memset(line,0,50);
//清空为0
memset(dataA,0,20);
memset(dataB,0,20);
fgets(line,50,fp);
//函数的功能是从fp所指文件中读入n-1个字符放入line为起始地址的空间内
sscanf(line,
"%s%s",
dataA,
dataB);
//我同时读入了两列值,但你要求1024个,那么我就只用了第一列的1024个值
//dataA读入第一列,dataB读入第二列
B[ij]=atof(dataA);
//将字符型的dataA值转化为float型
ij++;
}
for
(int
mm=1;mm<1025;mm++)//A[2*mm-1]是实部,A[2*mm]是虚部,当只要输入实数时,那么保证虚部A[mm*2]为零即可
{
A[2*mm-1]=B[mm];
A[2*mm]=0;
}
//*******************************************正式计算FFT
FFT(A,1024,1);
//********************************************写入数据到workout.txt文件中
for
(int
k=1;k<2049;k=k+2)
{
powerA[(k+1)/2]=sqrt(pow(A[k],2.0)+pow(A[k+1],2.0));//求功率谱
FILE
*pFile=fopen("workout.txt","a+");
//?a+只能在文件最后补充,光标在结尾。没有则创建
memset(ch1,0,15);
str1.Format("%.4f",powerA[(k+1)/2]);
if
(A[k+1]>=0)
str2.Format("%d\t%6.4f%s%6.4f
%s",(k+1)/2,A[k],"+",A[k+1],"i");//保存fft计算的频谱,是复数频谱
else
str2.Format("%d\t%6.4f%6.4f
%s",(k+1)/2,A[k],A[k+1],"i");
strl1=strlen(str1);
strl2=strlen(str2);
//

法:fwrite(buffer,size,count,fp);
//
buffer:是一个指针,对fwrite来说,是要输出数据的地址。
//
size:要写入的字节数;
//
count:要进行写入size字节的数据项的个数;
//
fp:目标文件指针。
fwrite(str2,1,strl2,pFile);
fwrite(ch1,1,3,pFile);
fwrite(ch1,1,3,pFile);
fwrite(str1,1,strl1,pFile);
fwrite(ch2,1,3,pFile);
fclose(pFile);
}
cout<<"计算完毕,到fft_test\workout.txt查看结果"<<endl;
}

❹ 做128点快速卷积运算,最低抽样频率是多少

半周波可用于快速计算有效值,不适宜用于FFT。因为FFT针对的是周期信号,假设使用半个周期数据进行FFT运算,那么,算法默认对其按照半周期波形进行周期延拓,得到的将是以两倍频率为基波,且富含谐波的结果。

❺ 如何实现128点的基2-FFT算法,并与MATLAB的fft算法作对比分析.

我只能给你一个fft算法,流程图说起来有点复杂,可以matlab里面的函数tic(开启时钟)t=toc(关闭时钟)t就是运算过程的时间
当然tic放程序开始,toc放结尾,来分析之即可
function d=lxfft(x)
n=length(x);
if n>2
for i=0:n/2-1
x1(i+1)=x(2*i+1);
x2(i+1)=x(2*i+2);
end
X1=lxfft(x1);
X2=lxfft(x2);
for i=0:n/2-1
X2(i+1)= X2(i+1)*exp(-j*2*pi/n*i);//旋转因子
d(i+1)=X1(i+1)+X2(i+1);
d(i+n/2+1)=X1(i+1)-X2(i+1);
end
else
d(1)=x(1)+x(2);
d(2)=x(1)-x(2);
end
end

❻ 128点2用科学计数法怎么表示

128点2用科学计数法表示为1.282x10^2
科学记数法是指把一个数表示成a×10的n次幂的形式(1≤a<10,n 为整数。)
科学计数法可以很方便地表示一些绝对值较大的数,用科学计数法也可以很方便地表示一些绝对值较小的数。
一个小于1的正数可以表示为a×1oⁿ,其中1≤a<10,n是负整数。
128.2=1.282x10^2

❼ 请教达人,我用FPGA做128点的定点FFT运算,再经过逆变换输出的结果有问题。

你用FFT的IP做就行了,仿真一下看看。我过去就是用IP做的,没什么问题。请教达人,我用FPGA做128点的定点FFT运算,再经过逆变换输出的结果有问题。

❽ 51单片机用128个点产生正弦波

单相的从正弦涵数中从0度到90度范围中均匀取出n个数再用256的模转换成表格数。三相的只需从0度到30度取,可这会n要是三的公倍数。后在运行中按你的频率的不同从该表格中抽取就行了。这就是单牌机由pwm产生的正弦波中的那时间段的数。

❾ 实现128点的基2-FFT算法,并与MATLAB的fft算法作对比分析.

http://topic.csdn.net/u/20081029/17/a107254d-5303-47a3-9380-cf00973c7287.html

阅读全文

与128点的算法相关的资料

热点内容
单片机6502 浏览:765
自助洗车有什么app 浏览:937
程序员离职率多少 浏览:322
程序员那么可爱电视剧今天没更新 浏览:337
我的世界地形算法 浏览:343
台湾dns的服务器地址云空间 浏览:288
音乐喷泉软件要什么加密狗 浏览:501
androidhttpmime 浏览:774
威科夫操盘法pdf 浏览:981
算法可以用图表表示 浏览:949
山西太原php 浏览:274
常用cmd网络命令 浏览:677
hashmap7源码分析 浏览:899
搜索引擎原理技术与系统pdf 浏览:362
运动估计算法python 浏览:861
java正则1 浏览:539
redhatlinux最新 浏览:182
python字典编程词汇 浏览:147
微信和服务器如何通讯 浏览:13
百家号服务器配置有什么用 浏览:601