这题的matlab求傅里叶变换换怎么求?

15.1 傅里叶变换法解数学物理定解问题
网络课程:
第十五章 积分变换法求解定解问题
15.1 傅里叶变换法解数学物理定解问题
时,所得到的本征值谱是分立的,所求的解可表为对分立本征值求和的傅里叶级数.对于无限空间,用分离变量法求解定解问题时,所得到的本征值谱一般是连续的,所求的解可表为对连续本征值求积分的傅里叶积分.因此,对于无限空间的定解问题,傅里叶变换是一种很适用的求解方法.本节将通过几个例子说明运用傅里叶变换求解无界空间(含一维半无界空间)的定界问题的基本方法,并给出几个重要的解的公式.
15.1.1 弦振动问题
例15.1.1 &自由振动定解问题
假定:函数及其一阶导数是有限的,以后不再特别指出.这一定解问题在行波法中已经介绍,读者可以比较行波解法和傅氏解法)
变换为下列常微分方程的定解问题
达朗贝尔公式.
例15.1. 3 &
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&
15.1.3 稳定场问题
变换为常微分方程
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&求助,是关于傅里叶变换的问题,已经等了一天了
- MATLAB中文论坛
求助,是关于傅里叶变换的问题,已经等了一天了
公式如图,是一个求光强的公式,期间用到了傅里叶变换U=exp(-(x^2+y.2)/(w^2)),fx=x/(v*z);fy=y/(v*z);;常数的值自定 我所写得代码如下:t=linspace(-3e-2,3e-2,1000);[x,y]=meshgrid(t);%分别产生以向量t为行,向量t为列的两个大小相同的矩阵w=3e-3;v=1.064e-6;z=100;n=6;m=6;dx=1e-2;dy=1e-2;fx=x/(v*z);fy=y/(v*z);U=exp(-(x.^2+y.^2)/(w^2));U1=fft(U);a=power((sin(n*dx*fx*pi)./sin(fx*pi*dx)),2);b=power((sin(m*dy*fy*pi)./sin(fy*pi*dy)),2);I=(1/power(v*z,2))*power(U1,2).*a.*b;image(t,t,real(I));colormap(gray);但不知为何总是得不到正确的图案,我认为是U1=fft(U)这里出了问题,但不知如何修改
这是一篇论文---《光纤激光相干阵列远场光强分布的影响分析》中的一个求光强的结论公式。公式不难,却无法用matlab仿真,A0=1w,w=3mm,z=100m,N=M=6,dx=dy=10mm,波长 λ =1064nm。还有:U=exp(-(x^2+y.2)/(w^2)),fx=x/( λ*z);fy=y/( λ*z);在傅里叶fft这里应该怎么改,我以前也遇到这种情况,可却怎么也做不出来,今天也尝试了好久,也没能做到,能否详细一点说一下该如何改,拜托了
其他回答 (1)
其实这程序没有U1=fft(U)这一步是没有问题的,但是按照公式必须要进行傅里叶变换,,虽然也能运行,但得到的图像根本就是错误的,我想问题应该是像你说的那样吧,你能不能也按照公式写一下程序啊,因为我本来就不知道其中的问题,不然也不会一天也做不出来了,所以,能不能请你能写一下程序啊?
相关知识等待您来回答
该问题来自:MATLAB中文论坛编程领域专家
& &SOGOU - 京ICP证050897号我对傅里叶变换也是一知半解,现在对一个周期性的数列求傅里叶变换后有几个问题:&br&1、为什么会出现两个峰值?&br&2.、为什么第一个峰值的横标占有了该序列周期的n/T?&br&&br&---------&br&&br&我处理的是离散数列,测试的python代码如下:&br&&br&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&kn&&import&/span& &span class=&nn&&random&/span&
&span class=&kn&&import&/span& &span class=&nn&&numpy&/span& &span class=&kn&&as&/span& &span class=&nn&&np&/span&
&span class=&kn&&import&/span& &span class=&nn&&matplotlib.pyplot&/span& &span class=&kn&&as&/span& &span class=&nn&&plt&/span&
&span class=&kn&&import&/span& &span class=&nn&&itertools&/span&
&span class=&n&&source&/span& &span class=&o&&=&/span& &span class=&n&&itertools&/span&&span class=&o&&.&/span&&span class=&n&&cycle&/span&&span class=&p&&([&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&mi&&20&/span&&span class=&p&&,&/span& &span class=&mi&&40&/span&&span class=&p&&,&/span& &span class=&mi&&60&/span&&span class=&p&&,&/span& &span class=&mi&&100&/span&&span class=&p&&,&/span& &span class=&mi&&40&/span&&span class=&p&&])&/span&
&span class=&n&&x&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&n&&source&/span&&span class=&o&&.&/span&&span class=&n&&next&/span&&span class=&p&&()&/span& &span class=&o&&+&/span& &span class=&n&&random&/span&&span class=&o&&.&/span&&span class=&n&&randint&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&mi&&10&/span&&span class=&p&&)&/span& &span class=&k&&for&/span& &span class=&n&&_&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&mi&&300&/span&&span class=&p&&)]&/span&
&span class=&n&&x&/span& &span class=&o&&=&/span& &span class=&n&&np&/span&&span class=&o&&.&/span&&span class=&n&&array&/span&&span class=&p&&(&/span&&span class=&n&&x&/span&&span class=&p&&)&/span&
&span class=&n&&n&/span& &span class=&o&&=&/span& &span class=&n&&np&/span&&span class=&o&&.&/span&&span class=&n&&size&/span&&span class=&p&&(&/span&&span class=&n&&x&/span&&span class=&p&&)&/span&
&span class=&n&&m&/span& &span class=&o&&=&/span& &span class=&n&&np&/span&&span class=&o&&.&/span&&span class=&n&&mean&/span&&span class=&p&&(&/span&&span class=&n&&x&/span&&span class=&p&&)&/span&
&span class=&n&&p&/span& &span class=&o&&=&/span& &span class=&n&&np&/span&&span class=&o&&.&/span&&span class=&n&&abs&/span&&span class=&p&&(&/span&&span class=&n&&np&/span&&span class=&o&&.&/span&&span class=&n&&fft&/span&&span class=&o&&.&/span&&span class=&n&&fft&/span&&span class=&p&&(&/span&&span class=&n&&x&/span& &span class=&o&&-&/span& &span class=&n&&m&/span&&span class=&p&&))&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&figure&/span&&span class=&p&&(&/span&&span class=&n&&figsize&/span&&span class=&o&&=&/span&&span class=&p&&(&/span&&span class=&mi&&8&/span&&span class=&p&&,&/span& &span class=&mi&&4&/span&&span class=&p&&))&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&plot&/span&&span class=&p&&(&/span&&span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&n&/span&&span class=&p&&),&/span& &span class=&n&&p&/span&&span class=&p&&,&/span& &span class=&n&&color&/span&&span class=&o&&=&/span&&span class=&s&&'black'&/span&&span class=&p&&,&/span& &span class=&n&&marker&/span&&span class=&o&&=&/span&&span class=&s&&'.'&/span&&span class=&p&&,&/span& &span class=&n&&markersize&/span&&span class=&o&&=&/span&&span class=&mi&&8&/span&&span class=&p&&)&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&show&/span&&span class=&p&&()&/span&
&/code&&/pre&&/div&&br&绘出的fft图像如下:&br&&br&&img src=&/1a096b8b0cf02fc16f215_b.jpg& data-rawwidth=&768& data-rawheight=&512& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&/1a096b8b0cf02fc16f215_r.jpg&&&br&&br&其实我一开始想通过fft寻找数列的周期性呢,现在不明白的是 &b&为什么找到最大的纵标的对应横标就可以找到周期了?(n/w, n为数列总size, w为fft横标)&/b&&br&&br&在绘图的时候我发现fft总是对称的,所以会出现两个峰值,由于精度问题(其实我不确定),程序有时会找到靠右的那个峰值,这样就会得到一个不准确的周期。
我对傅里叶变换也是一知半解,现在对一个周期性的数列求傅里叶变换后有几个问题:1、为什么会出现两个峰值?2.、为什么第一个峰值的横标占有了该序列周期的n/T?---------我处理的是离散数列,测试的python代码如下:import random
import numpy as np
import matplotlib.pyplot as plt
import itertools
source = itertools.cycle([1, 20, 40, 60, 100, 40])
x = [source.next() + random.randint(1, 10) for _ in range(300)]
x = np.array(x)
n = np.size(x)
m = np.mean(x)
p = np.abs(np.fft.fft(x - m))
plt.figure(figsize=(8, 4))
plt.plot(range(n), p, color='black', marker='.', markersize=8)
plt.show()
1,我猜想有两个峰值的原因是您没有将fft运算的结果进行处理。因为fft之后的结果有复数,如果您直接画图的话,实数域和虚数域的两个峰值都会被画出来。如果您对fft的结果进行一下绝对值运算或者取模运算(sqrt(fft.^2)),再画图的话就应该是一个峰值了。2,如果您前面没有后处理fft结果,那峰值的位置肯定是不对的。如果您处理的是离散序列,在横轴上画归一化后的频率值更能说明问题(f/fs),这里fs是采样频率一半。希望以上答案能帮上您。当然,为了更好的理解您的问题,可否将您运算傅里叶的代码一同贴上来。或者请您告诉我一下您所使用过的周期数列是什么样子的。
1. 出现两个峰值是因为输入序列信号是实数信号,那么FFT结果相对于中心对称。取abs(fft)后自然出现两个一模一样的峰值。2.找到峰值最大处并不代表序列的周期。虽然图中有5个峰,但因为1中说过的对称,实际上只有3个频率,即3个序列周期。同时,如果序列是通过采样连续信号得到的,那么采样频率限制了你fft反应真实情况的能力。即频谱中心位置横坐标表示采样频率,如果实际信号频率比0.5倍采样频率高,那么根据采样定理信号混叠,即fft横坐标反应不了真实的频率。峰值最大处并不代表序列的周期。傅里叶变换的目的就是看序列周期是由哪些分量组成的。手机码的,见谅。================================日更新===============上图:各行采样序列依次是:第一列是时域的信号,第二列是频域的频谱。注意从第一行到第三行,随着频率增加有峰值在向中心移动,但是从第三行到第四行,虽然频率增加了,但是频谱却往两边移动了。这就是信号超出了极限频率而出现的混叠现象。即横轴不能完全反应真实的频率。而且,实际上第五行跟第四行信号不一样,但从频谱上根本看不出来大的区别。一些小结:1)低频在两边,高频在中间。而且频谱关于中心对称。2)横轴一定程度上可以反映频率。但是频率上限(即中心)被Nyquist采样定理所限。所得可能并非实际的频率。3)sin函数是基函数,即对FFT来说,一个sin就对应一个频率,即在频谱中是关于中心对称的两条峰。4)小峰处是频谱泄露的原因,与FFT本身取的点数有关,与Fourier变换理论无关,即不违反3)中的结论。补零可以缓解但不一定能消除。MATLAB代码:
x = -2*pi:.1:2*
arrayPeriod = sin(x) + sin(2*x) + sin(4*x);
%+ sin(300*x);
stem(arrayPeriod);
title('Sampled array');
print(h,'-depsc2', 'Sampled array');
FFTofarrayPeriod = fft(arrayPeriod);
spectra = abs(FFTofarrayPeriod);
stem(spectra);
title('Spectra of Sampled array');
print(g,'-depsc2', 'Spectra of Sampled array');
我也不知道我是学什么的~~~
来知乎,参与讨论傅里叶变换的问题上面的公式怎么得到下面的公式计算第三个式子到第四个 求过程倒数第三部到第四部过程_作业帮
拍照搜题,秒出答案
傅里叶变换的问题上面的公式怎么得到下面的公式计算第三个式子到第四个 求过程倒数第三部到第四部过程
傅里叶变换的问题上面的公式怎么得到下面的公式计算第三个式子到第四个&求过程倒数第三部到第四部过程
这不是DSP里的内容么...你说哪一步啊

我要回帖

更多关于 1 t傅里叶变换 怎么算 的文章

 

随机推荐