电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python實現信號時域統計特征提取代碼

瀏覽:5日期:2022-08-06 09:01:03

1.實驗數據需求

為了對采集的壓力實驗數據做特征工程,需要對信號進行時域的統計特征提取,包含了均值、均方根、偏度、峭度、波形因子、波峰因子、脈沖因子、峭度因子等,現用python對其進行實現。

2.python實現

其中的輸入參數含義:

① data:實驗數據的DataFrame

② p1:所截取實驗信號的起始采樣點位置

③ p2:所截取實驗信號的終止采樣點位置

from pandas import Seriesimport mathpstf_list=[]def psfeatureTime(data,p1,p2): #均值 df_mean=data[p1:p2].mean() #方差 df_var=data[p1:p2].var() #標準差 df_std=data[p1:p2].std() #均方根 df_rms=math.sqrt(pow(df_mean,2) + pow(df_std,2)) #偏度 df_skew=data[p1:p2].skew() #峭度 df_kurt=data[p1:p2].kurt() sum=0 for i in range(p1,p2): sum+=math.sqrt(abs(data[i])) #波形因子 df_boxing=df_rms / (abs(data[p1:p2]).mean()) #峰值因子 df_fengzhi=(max(data[p1:p2])) / df_rms #脈沖因子 df_maichong=(max(data[p1:p2])) / (abs(data[p1:p2]).mean()) #裕度因子 df_yudu=(max(data[p1:p2])) / pow((sum/(p2-p1)),2) featuretime_list = [df_mean,df_rms,df_skew,df_kurt,df_boxing,df_fengzhi,df_maichong,df_yudu] return featuretime_list

3.結果與說明

python實現信號時域統計特征提取代碼

補充拓展:python數據結構與算法--回溯算法詳解

回溯算法:一種優先搜索算法(試探法);按優條件向前搜索,以達目標;當試探到某步,發現原來選擇并不好(走不通),就退回重新選擇。

回溯算法的一般步驟:1:定義問題的解空間(搜索中動態生成);2:確定易搜索的解空間結構(一般為樹形結構或圖);3:以深度優先的方式搜索解空間,搜索中用剪枝函數避免無效搜索。

剪枝函數:1:用約束函數在擴展節點處減去不滿足約束條件的子樹;2:用限界函數減去不能得到最優解的子樹。

回溯法:實戰

1:電話號碼的字母組合

方法:回溯(適用于組合問題)

class Solution: def letterCombination(self,digits): phone={’2’: [’a’, ’b’, ’c’], ’3’: [’d’, ’e’, ’f’], ’4’: [’g’, ’h’, ’i’], ’5’: [’j’, ’k’, ’l’], ’6’: [’m’, ’n’, ’o’], ’7’: [’p’, ’q’, ’r’, ’s’], ’8’: [’t’, ’u’, ’v’], ’9’: [’w’, ’x’, ’y’, ’z’]} res=[]#存放組合結果 def backtrack(combination,next_digits):#回溯函數 #combination目前已經產生的組合,next_digits:輸入的下一個字符 if len(next_digits)==0: #遞歸出口 res.append(combination) else: for i in phone[next_digits[0]]: backtrack(combination+i,next_digits[1:]) #遞歸實現回溯 if digits: backtrack(’’,digits) #初始化 return res

2:全排列

輸入: [1,2,3]

輸出:

[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

class Solution: def permute(self,nums): res=[] #存放組合結果 size=len(nums) def backtrack(combination,nums): #combination目前已經產生的組合,nums為剩下的數組 #遞歸出口 #遞歸的結束一定 要有return if len(combination)==size: res.append(combination) return #注意 for i in range(len(nums)): backtrack(combination+[nums[i]],nums[:i]+nums[i+1:]) #遞歸回溯 backtrack([],nums) return res if __name__==’__main__’: nums = [1,2,3] solution=Solution() print(solution.permute(nums))

3:數字組合

輸入: candidates = [2,3,6,7], target = 7,

所求解集為:

[[7],[2,2,3]]

class Solution: def combinationArray(self,candidates,target): candidates.sort() res=[] #存放組合結果 size=len(candidates) def backtrack(combination,cur_sum,j): #combination目前已經產生的組合,cur_sum當前計算和,j用于控制求和的查找范圍起點 #遞歸出口 if cur_sum>target: return if cur_sum==target: res.append(combination) for i in range(j,size): #j避免重復 if cur_sum+candidates[i]>target: #約束函數(剪) break j=i backtrack(combination+[candidates[i]],cur_sum+candidates[i],j)#遞歸回溯 backtrack([],0,0) return resif __name__==’__main__’: candidates = [2,3,6,7] target = 7 solution=Solution() print(solution.combinationArray(candidates,target))

4:

N皇后問題

class Solution: def solveNqueen(self,n): res=[] #存放結果組合,對于N皇后問題,這里存放的是其放在每一行對應的列下標 def backtrack(combination): if len(combination)==n: res.append(combination) return for j in range(n): if combination: #排除當前行,列和對應的兩個對角線。 if j not in combination and j!=combination[-1]+1 and j!=combination[-1]-1:#約束條件 backtrack(combination+[j]) #遞歸回溯 else: continue else: backtrack(combination+[j]) backtrack([]) #回溯初始化 #轉化為需要的格式 output=[['.' * k + 'Q' + '.' * (n - k - 1) for k in i] for i in res] #列表生成器 return output if __name__==’__main__’: n=4 solution=Solution() print(solution.solveNqueen(n))

5:子集

[1,2,3]的子集[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]

class Solution(object): def subsets(self, nums): ''' :type nums: List[int] :rtype: List[List[int]] ''' res=[]#存放組合結果 size=len(nums) def backtrack(combination,nums): #combination目前已經產生的組合,nums為剩下的數組 if len(combination)<=size: res.append(combination) #遞歸出口 #遞歸的結束一定 要有return if len(combination)==size: return for i in range(len(nums)): backtrack(combination+[nums[i]],nums[i+1:]) #遞歸回溯 backtrack([],nums) return res if __name__==’__main__’: nums=[1,2,3] solution=Solution() print(solution.subsets(nums))

6:

字母大小寫的全排列

給定一個字符串S,通過將字符串S中的每個字母轉變大小寫,我們可以獲得一個新的字符串。返回所有可能得到的字符串集合。

輸入: S = 'a1b2'

輸出: ['a1b2', 'a1B2', 'A1b2', 'A1B2']

class Solution: def letterpermute(self,S): res=[] size=len(S) def backtrack(combination,S): if len(combination)==size: res.append(’’.join(combination)) return for i in range(len(S)): if 'a'<=S[i]<= 'z' or 'A'<=S[i]<= 'Z': for j in range(2): if j==0: backtrack(combination+[S[i].lower()],S[i+1:]) if j==1: backtrack(combination+[S[i].upper()],S[i+1:]) else: backtrack(combination+[S[i]],S[i+1:]) backtrack([],S) return res if __name__==’__main__’: S=[i for i in '1B2'] solution=Solution() print(solution.letterpermute(S))

7:生成括號

括號生成:給出 n 代表生成括號的對數,請你寫出一個函數,使其能夠生成所有可能的并且有效的括號組合。

例如,給出 n = 3,生成結果為:

['((()))','(()())','(())()','()(())','()()()']

class Solution: def generateParenthesis(self,n): res=[] #存放組合結果 def backtrack(combination,left,right): #combination目前已經產生的組合 if len(combination)==2*n: #遞歸出口 res.append(combination) #對于有效的括號,左邊先出 if left<n: backtrack(combination+’(’,left+1,right)#遞歸實現回溯 if right<left: backtrack(combination+’)’,left,right+1)#遞歸實現回溯 backtrack(’’,0,0) #初始化 return res if __name__==’__main__’: n=3 solution=Solution() print(solution.generateParenthesis(n))

以上這篇python實現信號時域統計特征提取代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | 云阳人才网_云阳招聘网_云阳人才市场_云阳人事人才网_云阳人家招聘网_云阳最新招聘信息 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 海峰资讯 - 专注装饰公司营销型网站建设和网络营销培训 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 宝宝药浴-产后药浴-药浴加盟-艾裕-专注母婴调养泡浴 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | 铝机箱_铝外壳加工_铝外壳厂家_CNC散热器加工-惠州市铂源五金制品有限公司 | 开平机_纵剪机厂家_开平机生产厂家|诚信互赢-泰安瑞烨精工机械制造有限公司 | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | UV固化机_UVLED光固化机_UV干燥机生产厂家-上海冠顶公司专业生产UV固化机设备 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 三板富 | 专注于新三板的第一垂直服务平台 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 范秘书_懂你的范文小秘书| 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 北京西风东韵品牌与包装设计公司,创造视觉销售力! | 碳纤维布-植筋胶-灌缝胶-固特嘉加固材料公司 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 拉伸膜,PE缠绕膜,打包带,封箱胶带,包装膜厂家-东莞宏展包装 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 电车线(用于供电给电车的输电线路)-百科 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | OLChemim试剂-ABsciex耗材-广州市自力色谱科仪有限公司 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 防火门-专业生产甲级不锈钢钢质防火门厂家资质齐全-广东恒磊安防设备有限公司 | 建大仁科-温湿度变送器|温湿度传感器|温湿度记录仪_厂家_价格-山东仁科 | 货车视频监控,油管家,货车油管家-淄博世纪锐行电子科技 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 浇注料-高铝砖耐火砖-郑州凯瑞得窑炉耐火材料有限公司 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 数码管_LED贴片灯_LED数码管厂家-无锡市冠卓电子科技有限公司 |