如何用matlab实现对离散数据的快速傅里叶变换
我有一组电压数据,共200000个,这些数据之间的时间间隔为0.0000000005s,如何对其进行fft运算?是不是就是简单的y=fft(x)?根据这些数据是否可以说取...
我有一组电压数据,共200000个,这些数据之间的时间间隔为0.0000000005s,如何对其进行fft运算?是不是就是简单的y=fft(x)?
根据这些数据是否可以说取样频率是2000000000Hz,而取样点数为200000?
在网上查了好多资料都是给出数据的函数表达式,然后用给定的取样频率和取样点数来进行取点然后进行fft运算,很少有这样直接提供离散数据要求直接进行快速傅立叶变换的,求大神帮助啊。。求别给help fft什么的这样的答案了,要是help里面的例子我能看懂也就不来这里提问了。。
我自己写的代码是这样的,但是这肯定不对。。因为这个电压信号的频率大约在35KHz左右,而幅值也应该在8000左右。。
a=load('uapp.txt');%数据都储存在这样一个txt文档里
x=a(:,2);%文档第一列是时间数据,第二列才是电压数据
y=fft(x);
mag=abs(y)*2/200000;%看例子里面都是这么写的。。
fs=(0:199999)*2000000000/200000;
plot(fs,mag)
运行代码出来的图像是这样的。。只有直流部分和一个频率大的不行的部分。。 展开
根据这些数据是否可以说取样频率是2000000000Hz,而取样点数为200000?
在网上查了好多资料都是给出数据的函数表达式,然后用给定的取样频率和取样点数来进行取点然后进行fft运算,很少有这样直接提供离散数据要求直接进行快速傅立叶变换的,求大神帮助啊。。求别给help fft什么的这样的答案了,要是help里面的例子我能看懂也就不来这里提问了。。
我自己写的代码是这样的,但是这肯定不对。。因为这个电压信号的频率大约在35KHz左右,而幅值也应该在8000左右。。
a=load('uapp.txt');%数据都储存在这样一个txt文档里
x=a(:,2);%文档第一列是时间数据,第二列才是电压数据
y=fft(x);
mag=abs(y)*2/200000;%看例子里面都是这么写的。。
fs=(0:199999)*2000000000/200000;
plot(fs,mag)
运行代码出来的图像是这样的。。只有直流部分和一个频率大的不行的部分。。 展开
4个回答
展开全部
1、双击matlab软件图标,打开matlab软件,可以看到matlab软件的界面。
2、在命令行窗口中输入:x=0:2:22;y=2*exp(x).*sin(x);创建了12个原始数据点。
3、在命令行窗口中输入:xi=0:0.1:22;创建要进行插值的数据的横坐标。
4、在命令行窗口中输入:yi=spline(x,y,xi);使用函数spline(x,y,xi);可以获得对原始数据的三次样条插值的y轴坐标。
5、在命令行窗口中输入:plot(x,y,'o',xi,yi);在图像中绘制原始数据点和三次样条插值的数据点图示。
6、在命令行窗口中输入:title('三次样条插值');xlabel('x');ylabel('y');给绘制的图示添加标题和坐标轴的标签。
7、最后查看绘制的原始数据点图和三次样条插值图示,注意标题、横坐标、纵坐标等。
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
展开全部
那是因为FFT的结果数值之间差异很大,所以在图上显示不出来,可以只显示部分区间的数值,就是限定坐标值范围。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问你最后解决了这个问题了吗??我现在也遇到同样的问题,想问下需要在matlab里面先找到拟合的函数,在傅里叶变换吗??还是直接用fft就行了??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询