✨ 长期致力于波长调制光谱、直接吸收光谱、免标定、功率密度谱、谐波分析研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1Voigt函数高精度快速近似算法与免基线直接吸收光谱方法针对Voigt函数计算精度与速度的矛盾提出了基于切比雪夫最佳一致逼近和无穷级数分析的三种近似方案。第一种方案用于Voigt函数半高半宽计算由基本初等函数构成计算精度优于10的负17次方比传统算法快一个数量级。第二种方案适用于需要大规模计算的应用通过对指数函数展开的延拓相对误差小于10的负6次方。第三种方案针对Gauss主导线型y≤0.1复误差函数虚部近似误差优于10的负15次方。基于此提出免基线直接吸收光谱方法对透射激光光强信号在时域加Nuttall窗四阶余弦窗将吸收信号与基线在频域分离。Nuttall窗的旁瓣峰值达负六十一点四分贝主瓣宽度适中。分离后的吸收谱线通过Voigt函数拟合得到积分吸光度进而计算气体浓度。在甲烷浓度测量实验中该方法在信噪比为十分贝时浓度测量相对误差为百分之二点三而传统基线拟合方法的误差为百分之七点八证明免基线方法的优越性。2基于二次-四次谐波联用的免标定波长调制光谱测量扫描波长调制光谱中传统傅里叶模型仅在扫描因子SF≤0.025时成立限制了调制幅度的选择。提出了基于二次谐波峰高-峰宽特征的气体参数测量方法不需要完整谱线扫描。二次谐波的峰高正比于浓度峰宽与压力、温度相关。但峰宽信噪比较低为此引入四次谐波辅助构建比值函数R H2^2 / H4该比值对非吸收损耗不敏感。通过数值仿真建立R与温度、压力的查找表测量时只需提取二次和四次谐波幅值即可反演参数。在CH4浓度测量中吸收光程二十厘米探测极限达到四点二八ppm。改进方法比单独使用二次谐波的探测灵敏度提高三倍。3基于调制激光信号功率谱密度的免标定方法与航空发动机测试应用提出了基于功率谱密度的免标定波长调制光谱方法。将调制后的激光信号进行功率谱密度估计由于吸收导致特定频率成分衰减从功率谱的稀疏特征中可以精确估计环境噪声。对含噪信号传统锁相放大器的测量准确度受噪声影响而功率谱方法能够在强噪声背景信噪比零分贝下提取吸收信号。实验证明在积分时间一秒时所提方法将CH4吸收的探测灵敏度提高二点六倍。将该方法应用于航空发动机高温燃气参数测试在超燃冲压发动机试验件、驻涡燃烧室和加力燃烧室上进行了现场测量。使用H2O分子谱线对7185.60 cm-1和7444.36 cm-1温度测量范围五百至一千二百七十三开尔文最大相对误差百分之三点六计算效率比波形拟合法提高两个数量级从五秒降至零点零五秒。在全尺寸航空发动机燃烧室出口测量中成功获得了燃气温度和浓度分布为燃烧诊断提供了可靠数据。import numpy as np from scipy.special import wofz from scipy.signal import welch class VoigtApprox: Voigt函数快速近似 staticmethod def humlicek_w4(x, y): Humlicek W4近似精度1e-6 z x 1j*y w wofz(z) * 2 * 1j # 实际使用wofz这里简化 return w.real staticmethod def faddeeva_approx(y, x0): 小y时的高精度近似 if y 0.1: # 多项式展开 return np.exp(-x**2) * (1 - 2*y/np.sqrt(np.pi)) return None class WMS_PowerSpectrum: 基于功率谱密度的免标定WMS def __init__(self, fs1e6, f_mod100e3): self.fs fs self.f_mod f_mod def power_spectrum(self, signal): f, Pxx welch(signal, fsself.fs, nperseg4096) # 提取调制频率处的幅值 idx np.argmin(np.abs(f - self.f_mod)) return Pxx[idx] def measure_absorption(self, signal_without_abs, signal_with_abs): P0 self.power_spectrum(signal_without_abs) P self.power_spectrum(signal_with_abs) # 吸收率 alpha -ln(P/P0) return -np.log(P/P0) class HarmonicRatioMethod: 二次-四次谐波比值法 def __init__(self, lookup_table): self.lut lookup_table # 预计算的 R(T,P) 表 def extract_harmonics(self, demodulated_signal, n2): 从解调信号中提取n次谐波幅值 # 使用带通滤波 from scipy.signal import butter, filtfilt b, a butter(4, [0.9, 1.1], btypeband, analogFalse, fs1e6) filtered filtfilt(b, a, demodulated_signal) return np.max(np.abs(filtered)) def get_temperature(self, H2, H4): R H2**2 / H4 # 查找表插值 # 假设lut存储 (R, T) 对 temps self.lut[:,1] Rs self.lut[:,0] T np.interp(R, Rs, temps) return T # 航空发动机测试模拟 def engine_test(): # 模拟采集信号 fs 2e6 t np.arange(0, 0.01, 1/fs) # 调制激光信号 f_mod 100e3 laser np.sin(2*np.pi*f_mod*t) # 吸收模型 absorption 0.05 * np.exp(-((t-0.005)/0.001)**2) signal laser * np.exp(-absorption) # 功率谱方法 wms_ps WMS_PowerSpectrum(fs, f_mod) abs_meas wms_ps.measure_absorption(laser, signal) print(fMeasured absorption peak: {abs_meas:.4f} (true ~0.05)) return abs_meas if __name__ __main__: engine_test()
谐波分析导向的免标定波长调制光谱关键技术【附模型】
发布时间:2026/5/20 0:15:02
✨ 长期致力于波长调制光谱、直接吸收光谱、免标定、功率密度谱、谐波分析研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1Voigt函数高精度快速近似算法与免基线直接吸收光谱方法针对Voigt函数计算精度与速度的矛盾提出了基于切比雪夫最佳一致逼近和无穷级数分析的三种近似方案。第一种方案用于Voigt函数半高半宽计算由基本初等函数构成计算精度优于10的负17次方比传统算法快一个数量级。第二种方案适用于需要大规模计算的应用通过对指数函数展开的延拓相对误差小于10的负6次方。第三种方案针对Gauss主导线型y≤0.1复误差函数虚部近似误差优于10的负15次方。基于此提出免基线直接吸收光谱方法对透射激光光强信号在时域加Nuttall窗四阶余弦窗将吸收信号与基线在频域分离。Nuttall窗的旁瓣峰值达负六十一点四分贝主瓣宽度适中。分离后的吸收谱线通过Voigt函数拟合得到积分吸光度进而计算气体浓度。在甲烷浓度测量实验中该方法在信噪比为十分贝时浓度测量相对误差为百分之二点三而传统基线拟合方法的误差为百分之七点八证明免基线方法的优越性。2基于二次-四次谐波联用的免标定波长调制光谱测量扫描波长调制光谱中传统傅里叶模型仅在扫描因子SF≤0.025时成立限制了调制幅度的选择。提出了基于二次谐波峰高-峰宽特征的气体参数测量方法不需要完整谱线扫描。二次谐波的峰高正比于浓度峰宽与压力、温度相关。但峰宽信噪比较低为此引入四次谐波辅助构建比值函数R H2^2 / H4该比值对非吸收损耗不敏感。通过数值仿真建立R与温度、压力的查找表测量时只需提取二次和四次谐波幅值即可反演参数。在CH4浓度测量中吸收光程二十厘米探测极限达到四点二八ppm。改进方法比单独使用二次谐波的探测灵敏度提高三倍。3基于调制激光信号功率谱密度的免标定方法与航空发动机测试应用提出了基于功率谱密度的免标定波长调制光谱方法。将调制后的激光信号进行功率谱密度估计由于吸收导致特定频率成分衰减从功率谱的稀疏特征中可以精确估计环境噪声。对含噪信号传统锁相放大器的测量准确度受噪声影响而功率谱方法能够在强噪声背景信噪比零分贝下提取吸收信号。实验证明在积分时间一秒时所提方法将CH4吸收的探测灵敏度提高二点六倍。将该方法应用于航空发动机高温燃气参数测试在超燃冲压发动机试验件、驻涡燃烧室和加力燃烧室上进行了现场测量。使用H2O分子谱线对7185.60 cm-1和7444.36 cm-1温度测量范围五百至一千二百七十三开尔文最大相对误差百分之三点六计算效率比波形拟合法提高两个数量级从五秒降至零点零五秒。在全尺寸航空发动机燃烧室出口测量中成功获得了燃气温度和浓度分布为燃烧诊断提供了可靠数据。import numpy as np from scipy.special import wofz from scipy.signal import welch class VoigtApprox: Voigt函数快速近似 staticmethod def humlicek_w4(x, y): Humlicek W4近似精度1e-6 z x 1j*y w wofz(z) * 2 * 1j # 实际使用wofz这里简化 return w.real staticmethod def faddeeva_approx(y, x0): 小y时的高精度近似 if y 0.1: # 多项式展开 return np.exp(-x**2) * (1 - 2*y/np.sqrt(np.pi)) return None class WMS_PowerSpectrum: 基于功率谱密度的免标定WMS def __init__(self, fs1e6, f_mod100e3): self.fs fs self.f_mod f_mod def power_spectrum(self, signal): f, Pxx welch(signal, fsself.fs, nperseg4096) # 提取调制频率处的幅值 idx np.argmin(np.abs(f - self.f_mod)) return Pxx[idx] def measure_absorption(self, signal_without_abs, signal_with_abs): P0 self.power_spectrum(signal_without_abs) P self.power_spectrum(signal_with_abs) # 吸收率 alpha -ln(P/P0) return -np.log(P/P0) class HarmonicRatioMethod: 二次-四次谐波比值法 def __init__(self, lookup_table): self.lut lookup_table # 预计算的 R(T,P) 表 def extract_harmonics(self, demodulated_signal, n2): 从解调信号中提取n次谐波幅值 # 使用带通滤波 from scipy.signal import butter, filtfilt b, a butter(4, [0.9, 1.1], btypeband, analogFalse, fs1e6) filtered filtfilt(b, a, demodulated_signal) return np.max(np.abs(filtered)) def get_temperature(self, H2, H4): R H2**2 / H4 # 查找表插值 # 假设lut存储 (R, T) 对 temps self.lut[:,1] Rs self.lut[:,0] T np.interp(R, Rs, temps) return T # 航空发动机测试模拟 def engine_test(): # 模拟采集信号 fs 2e6 t np.arange(0, 0.01, 1/fs) # 调制激光信号 f_mod 100e3 laser np.sin(2*np.pi*f_mod*t) # 吸收模型 absorption 0.05 * np.exp(-((t-0.005)/0.001)**2) signal laser * np.exp(-absorption) # 功率谱方法 wms_ps WMS_PowerSpectrum(fs, f_mod) abs_meas wms_ps.measure_absorption(laser, signal) print(fMeasured absorption peak: {abs_meas:.4f} (true ~0.05)) return abs_meas if __name__ __main__: engine_test()