日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python信號分析 | 連續信號的傅立葉變換

系統 2268 0

1、連續周期信號的傅立葉級數
由傅立葉級數的形式可以看出,其都屬于積分形式,故在MATLAB中和Python中均可以用積分函數來實現求解。
例:Python中代碼如下:

            
              """
    連續周期信號的傅立葉級數
"""
from sympy import cos,sin
from sympy.abc import t,n,y
from scipy import integrate
import numpy as np
import matplotlib.pyplot as plt

nf=30
T=10
tao=1.0
an=np.zeros(nf)
bn=np.zeros(nf)
cn=np.zeros(nf)
phase=np.zeros(nf)
y=1
half0,err0=integrate.quad(lambda t:y,-tao/2,tao/2)
an[0]=2*half0/T
for n in range(1,nf):
    half,err=integrate.quad(lambda t:2*y*cos(2.0/T*np.pi*n*t),-tao/2,tao/2)
    an[n]=half/10
    half1,err1=integrate.quad(lambda t:2*y*sin(2.0/T*np.pi*n*t),-tao/2,tao/2)
    bn[n]=half1/10
    cn[n]=np.sqrt(an[n]**2+bn[n]**2)
for i in range(0,nf):
    if an[i]>=0:
        phase[i]=0
    else:
        phase[i]=np.pi
k=np.arange(0,nf)
plt.subplot(211)
plt.title(u'幅度譜')
plt.stem(k,cn)
plt.subplot(212)
plt.title(u'相位譜')
plt.stem(k,phase)
plt.show()

            
          

運行結果:
Python信號分析 | 連續信號的傅立葉變換_第1張圖片
2、連續非周期信號的傅立葉變換
在MATLAB中實現傅立葉變換的調用格式為:

            
              F=fourier(f)

            
          

F是符號函數f的傅立葉變換,默認返回是關于w的函數;

            
              F=fourier(f,v)

            
          

F是關于符號對象v的函數,而不是w;

            
              F=fourier(f,u,v)

            
          

函數f是關于符號對象u的函數,F是關于符號對象v的函數。
Python中,用fourier_transform函數來實現傅立葉變換,須注意的是,Python運行結果的自變量不是角頻率w而是頻率f。

例:Python代碼如下:

            
              """
    連續非周期信號的傅立葉變換
"""
from sympy import fourier_transform,exp,plot,Heaviside,atan,im,re,pi
from sympy.abc import t,f
ft=exp(-2*t)*Heaviside(t)
F=fourier_transform(ft,t,f)
plot(abs(F))
plot(atan(im(F)/re(F)))


            
          

運行結果:
Python信號分析 | 連續信號的傅立葉變換_第2張圖片
Python信號分析 | 連續信號的傅立葉變換_第3張圖片
3、連續非周期信號的傅立葉逆變換
在MATLAB中,傅立葉逆變換的調用格式為:

            
              f=ifourier(F)

            
          
            
              f=ifourier(F,u)

            
          
            
              f=ifourier(F,v,u)

            
          

在Python中,用inverse_fourier_transform函數來實現傅立葉逆變換。

例:Python中代碼如下:

            
              """
    傅立葉逆變換
"""
from sympy import inverse_fourier_transform,exp,sqrt,pi,plot
from sympy.abc import t,f
F=1/(1+(2*pi*f)**2)
ft=inverse_fourier_transform(F,f,t)
plot(abs(F))
plot(ft)

            
          

運行結果:
Python信號分析 | 連續信號的傅立葉變換_第4張圖片
Python信號分析 | 連續信號的傅立葉變換_第5張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 富民县| 武胜县| 郧西县| 张家界市| 柳林县| 京山县| 壤塘县| 汉川市| 青海省| 宜黄县| 南通市| 松桃| 东宁县| 海晏县| 桃园县| 枣阳市| 锦屏县| 腾冲县| 泉州市| 子洲县| 绥江县| 平南县| 枣强县| 通榆县| 丘北县| 北安市| 江山市| 托克逊县| 镇远县| 丽江市| 白水县| 尉犁县| 余姚市| 旬邑县| 樟树市| 凤庆县| 彰化县| 康定县| 怀仁县| 定日县| 闽清县|