网上有关“用matlab编程”话题很是火热,小编也是针对用matlab编程寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
用MATLAB 实现傅里叶变换:
用户任意输入一个函数,然后,输出函数的傅里叶变换函数,然后输出振幅频率 。
x=sin(2*pi*t); %任意输入一个函数。
y=fft(x); %傅里叶变换函数。
plot(abs(y)); %振幅频率。
函数(function)表示每个输入值对应唯一输出值的一种对应关系。这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。函数f中对应输入值的输出值x的标准符号为f(x)。包含某个函数所有的输入值的集合被称作这个函数的定义域,包含所有的输出值的集合被称作值域。若先定义映射的概念,可以简单定义函数为,定义在非空数集之间的映射称为函数。
傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。
问题一,从原理上讲,应该原始信号的y值是啥单位fft后的单位也是啥,原始信号的y值表示是啥fft后的y值也是啥。
问题二,对于一个标准的信号,如sin,cos等,是很好找出规律的,除了第一个点的直流分量的幅值是点数N倍的关系,其它的频率的幅值就是原始信号峰值的N/2倍。但对于一个实际非平稳信号,你即使知道这个关系也没办法印证,拿你第二幅图来说假使你知道了某个频率值是30hz,然后在图中找到了其对应的幅度值,然后除以点数N的一半,你就算出30hz对应的时域的原始信号的幅值,那么你在原始信号图中怎么找到这个30hz的信号的部分,并得到它的幅值进行验证这个N/2倍的关系?
原始信号是很多频率成分的叠加,我们通常是用第二幅图中的频率和幅值还有相位谱图,计算得到一个由多个形如“时域幅值×sin(2pi×某频率+相角)”相叠加的信号,用这个信号去无限地逼近原始信号,如果这些项足够多地话,用这些规则的函数描述和代替原始信号,这样就方便研究一个看上去毫无规则的实际信号,也是fft最核心和本质的实际意义。但这在实际应用中并不容易,主要是多个频率成分的叠加你就很难分开了,合在一起的信号在时域又没有一点频域的信息,你要频域信息就得做fft,而做完fft又没有时域信息,你就没法比较一个实际信号的时域幅值和频域幅值的关系了。多是用频域的幅值倒推时域的幅值,而且这时域幅值还没法和原始信号对应验证,因为你不知道这时域的幅值在原始信号中的位置,你咋对比验证呢?所以后来才研究出了小波分析这种东西。所以你所说的“但我求的好像不对”是如何得出的,真的很费解哦!
关于“用matlab编程”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[梦玉]投稿,不代表欧拉号立场,如若转载,请注明出处:https://cn.ooplay.net/oula/1747.html
评论列表(3条)
我是欧拉号的签约作者“梦玉”
本文概览:网上有关“用matlab编程”话题很是火热,小编也是针对用matlab编程寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。用MATLAB...
文章不错《用matlab编程_1》内容很有帮助