光纤陀螺输出误差的Allan方差分析与小波盲信号处理

版权申诉
0 下载量 106 浏览量 更新于2024-11-15 收藏 4KB ZIP 举报
资源摘要信息:"hangsou_v20.zip_光纤陀螺" 1. 光纤陀螺基础知识: 光纤陀螺(Fiber Optic Gyroscope,FOG)是一种基于萨格纳克效应(Sagnac effect)的惯性导航系统组件,用于测量物体的角速度或方向变化。它利用了光在闭合路径中传播的时间差与路径所经历的旋转角速度成正比的原理。由于其高精度、高可靠性、抗干扰能力强等特点,在航空航天、航海导航、机器人技术、车载定位等领域有广泛应用。 2. allan方差分析: Allan方差是一种统计方法,用于评估和量化测量设备的噪声特性,特别是稳定度。在光纤陀螺领域,Allan方差分析可以用来评估输出信号的随机误差特性,包括量化短期稳定性(如白噪声、角随机游走等)和长期稳定性(如闪烁噪声、偏差不稳定等)。通过对光纤陀螺输出误差的Allan方差分析,可以更准确地理解和改善其性能表现。 3. 小波分析与盲信号处理: 小波分析是一种数学工具,用于分析具有不同频率的局部特征的信号。在光纤陀螺的应用中,小波分析可以用来从信号中分离出具有不同时间尺度的特征,比如识别和滤除噪声,以提高信号的质量和系统的性能。盲信号处理(Blind Signal Processing,BSP)是一种在信号的某些或全部参数未知的情况下,对信号进行估计和处理的方法。在光纤陀螺中,盲信号处理可以用于从混合信号中提取有用信息,如分离出有用的信号成分,从而对设备的输出进行更准确的分析。 4. matlab程序代码应用: 在课程设计中编写的matlab程序代码,用于实现光纤陀螺输出误差的Allan方差分析和利用小波分析的盲信号处理。MATLAB作为一种高性能的数值计算和可视化软件,特别适合于工程和科学计算。在光纤陀螺的研究和开发中,MATLAB能够提供强大的工具箱(如信号处理工具箱),用于进行数据分析、算法开发、仿真实验等。 5. 文件内容及使用: 提供的压缩包文件“hangsou_v20.zip”包含了一个名为“hangsou_v20.m”的MATLAB脚本文件。这个脚本文件可能包含了用于分析光纤陀螺输出误差的算法和方法,包括计算Allan方差的算法、小波变换的应用以及可能的盲信号处理算法。用户可以利用MATLAB环境打开并运行此脚本,进行信号处理和分析,以优化光纤陀螺的性能。 6. 结论: 综上所述,“hangsou_v20.zip_光纤陀螺”文件包包含了与光纤陀螺相关的MATLAB脚本程序,该程序能够执行光纤陀螺输出误差的Allan方差分析和利用小波变换的盲信号处理。通过这些分析方法,可以有效地识别和处理光纤陀螺信号中的噪声和干扰,从而提高测量精度和可靠性。对于研究和开发光纤陀螺技术的工程师和研究人员而言,这是一个十分宝贵的资源。

plt.boxplot(x=train_data.values,labels=train_data.columns) 3 plt.hlines([-7.5, 7.5], 0, 40, colors='r') 4 plt.show() 5 6 train_data = train_data[train_data['V9']>-7.5] 7 train_data.describe() 8 9 from sklearn import preprocessing 10 11 features_columns = [col for col in train_data.columns if col not in ['target']] 12 13 min_max_scaler = preprocessing.MinMaxScaler() 14 15 min_max_scaler = min_max_scaler.fit(train_data[features_columns]) 16 17 train_data_scaler = min_max_scaler.transform(train_data[features_columns]) 18 test_data_scaler = min_max_scaler.transform(test_data[features_columns]) 19 20 train_data_scaler = pd.DataFrame(train_data_scaler) 21 train_data_scaler.columns = features_columns 22 23 test_data_scaler = pd.DataFrame(test_data_scaler) 24 test_data_scaler.columns = features_columns 25 26 train_data_scaler['target'] = train_data['target'] 27 28 train_data 29 30 mcorr=mcorr.abs() 31 numerical_corr=mcorr[mcorr['target']>0.1]['target'] 32 print(numerical_corr.sort_values(ascending=False)) 33 34 index0 = numerical_corr.sort_values(ascending=False).index 35 print(train_data_scaler[index0].corr('spearman')) 36 37 new_numerical=['V0', 'V2', 'V3', 'V4', 'V5', 'V6', 'V10','V11', 38 'V13', 'V15', 'V16', 'V18', 'V19', 'V20', 'V22','V24','V30', 'V31', 'V37'] 39 X=np.matrix(train_data_scaler[new_numerical]) 40 VIF_list=[variance_inflation_factor(X, i) for i in range(X.shape[1])] 41 VIF_list 42 43 44 pca = PCA(n_components=0.9) 45 new_train_pca_90 = pca.fit_transform(train_data_scaler.iloc[:,0:-1]) 46 new_test_pca_90 = pca.transform(test_data_scaler) 47 new_train_pca_90 = pd.DataFrame(new_train_pca_90) 48 new_test_pca_90 = pd.DataFrame(new_test_pca_90) 49 new_train_pca_90['target'] = train_data_scaler['target'] 50 new_train_pca_90.describe()

2023-06-16 上传

index0 = numerical_corr.sort_values(ascending=False).index 36 print(train_data_scaler[index0].corr('spearman')) 37 38 new_numerical=['V0', 'V2', 'V3', 'V4', 'V5', 'V6', 'V10','V11', 39 'V13', 'V15', 'V16', 'V18', 'V19', 'V20', 'V22','V24','V30', 'V31', 'V37'] 40 X=np.matrix(train_data_scaler[new_numerical]) 41 VIF_list=[variance_inflation_factor(X, i) for i in range(X.shape[1])] 42 VIF_list 43 44 45 pca = PCA(n_components=0.9) 46 new_train_pca_90 = pca.fit_transform(train_data_scaler.iloc[:,0:-1]) 47 new_test_pca_90 = pca.transform(test_data_scaler) 48 new_train_pca_90 = pd.DataFrame(new_train_pca_90) 49 new_test_pca_90 = pd.DataFrame(new_test_pca_90) 50 new_train_pca_90['target'] = train_data_scaler['target'] 51 new_train_pca_90.describe() 52 53 pca = PCA(n_components=0.95) 54 new_train_pca_16 = pca.fit_transform(train_data_scaler.iloc[:,0:-1]) 55 new_test_pca_16 = pca.transform(test_data_scaler) 56 new_train_pca_16 = pd.DataFrame(new_train_pca_16) 57 new_test_pca_16 = pd.DataFrame(new_test_pca_16) 58 new_train_pca_16['target'] = train_data_scaler['target'] 59 new_train_pca_16.describe() 60 61 from sklearn.ensemble import GradientBoostingRegressor 62 63 from sklearn.model_selection import learning_curve 64 from sklearn.model_selection import ShuffleSplit 65 66 new_train_pca_16 = new_train_pca_16.fillna(0) 67 train = new_train_pca_16[new_test_pca_16.columns] 68 target = new_train_pca_16['target'] 69 70 train_data,test_data,train_target,test_target=train_test_split(train,target,test_size=0.2,random_state=0) 71 72 clf = LinearRegression() 73 clf.fit(train_data, train_target) 74 score = mean_squared_error(test_target, clf.predict(test_data)) 75 print("LinearRegression: ", score) 76 77 train_score = [] 78 test_score = []解释每一句代码的意思

2023-06-16 上传