当前位置: 首页 > news >正文

带约束的高斯牛顿法求解多音信号分离问题

一、信号模型与优化问题建立

1. 复信号模型

设观测的复信号由两个单频复指数信号加噪声组成:

x [ n ] = A 0 e j ( 2 π f 0 n T s + ϕ 0 ) + A 1 e j ( 2 π f 1 n T s + ϕ 1 ) + w [ n ] , n = 0 , 1 , … , N − 1 x[n] = A_0 e^{j(2\pi f_0 n T_s + \phi_0)} + A_1 e^{j(2\pi f_1 n T_s + \phi_1)} + w[n], \quad n=0,1,\dots,N-1 x[n]=A0ej(2πf0nTs+ϕ0)+A1ej(2πf1nTs+ϕ1)+w[n],n=0,1,,N1

其中:

  • A 0 , A 1 > 0 A_0, A_1 > 0 A0,A1>0 为幅度

  • f 0 , f 1 ∈ ( 0 , f s / 2 ) f_0, f_1 \in (0, f_s/2) f0,f1(0,fs/2) 为频率

  • ϕ 0 , ϕ 1 ∈ [ − π , π ] \phi_0, \phi_1 \in [-\pi, \pi] ϕ0,ϕ1[π,π] 为相位

  • T s = 1 / f s T_s = 1/f_s Ts=1/fs 为采样间隔

  • w [ n ] ∼ C N ( 0 , σ 2 ) w[n] \sim \mathcal{CN}(0, \sigma^2) w[n]CN(0,σ2) 为复高斯噪声

2. 参数向量定义

将待估计参数定义为向量形式:

θ = [ A 0 , f 0 , ϕ 0 , A 1 , f 1 , ϕ 1 ] T ∈ R 6 \boldsymbol{\theta} = \left[ A_0, f_0, \phi_0, A_1, f_1, \phi_1 \right]^T \in \mathbb{R}^6 θ=[A0,f0,ϕ0,A1,f1,ϕ1]TR6

3. 优化目标

通过最小二乘准则估计参数:
min ⁡ θ J ( θ ) = ∑ n = 0 N − 1 ∣ x [ n ] − s [ n ; θ ] ∣ 2 \min_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \sum_{n=0}^{N-1} \left| x[n] - s[n; \boldsymbol{\theta}] \right|^2 θminJ(θ)=n=0N1x[n]s[n;θ]2
其中信号模型为:

s [ n ; θ ] = A 0 e j ( 2 π f 0 n T s + ϕ 0 ) + A 1 e j ( 2 π f 1 n T s + ϕ 1 ) s[n; \boldsymbol{\theta}] = A_0 e^{j(2\pi f_0 n T_s + \phi_0)} + A_1 e^{j(2\pi f_1 n T_s + \phi_1)} s[n;θ]=A0ej(2πf0nTs+ϕ0)+A1ej(2πf1nTs+ϕ1)

4. 约束条件

根据物理意义添加边界约束:

{ 0 ≤ A k ≤ A max ⁡ f min ⁡ ≤ f k ≤ f max ⁡ − π ≤ ϕ k ≤ π , k = 0 , 1 \begin{cases} 0 \leq A_k \leq A_{\max} \\ f_{\min} \leq f_k \leq f_{\max} \\ -\pi \leq \phi_k \leq \pi \end{cases}, \quad k=0,1 0AkAmaxfminfkfmaxπϕkπ,k=0,1


二、优化问题求解推导

1. 目标函数的复变函数处理

由于目标函数是复值,需用Wirtinger微积分求导。定义残差:

r n ( θ ) = x [ n ] − s [ n ; θ ] r_n(\boldsymbol{\theta}) = x[n] - s[n; \boldsymbol{\theta}] rn(θ)=x[n]s[n;θ]

则目标函数可写为:

J ( θ ) = ∑ n = 0 N − 1 r n ( θ ) r n ( θ ) ‾ J(\boldsymbol{\theta}) = \sum_{n=0}^{N-1} r_n(\boldsymbol{\theta}) \overline{r_n(\boldsymbol{\theta})} J(θ)=n=0N1rn(θ)rn(θ)

其中 ( ⋅ ) ‾ \overline{(\cdot)} ()表示复共轭。

2. 梯度计算(Wirtinger导数)

Wirtinger导数定义为:
∇ θ J = 2 ∑ n = 0 N − 1 Re ⁡ ( ∂ r n ∂ θ H r n ) \nabla_{\boldsymbol{\theta}} J = 2 \sum_{n=0}^{N-1} \operatorname{Re} \left( \frac{\partial r_n}{\partial \boldsymbol{\theta}}^H r_n \right) θJ=2n=0N1Re(θrnHrn)

其中 ( ⋅ ) H (\cdot)^H ()H表示共轭转置。具体到每个参数:

  • 幅度 A 0 A_0 A0的梯度分量

∂ r n ∂ A 0 = − e j ( 2 π f 0 n T s + ϕ 0 ) \frac{\partial r_n}{\partial A_0} = -e^{j(2\pi f_0 n T_s + \phi_0)} A0rn=ej(2πf0nTs+ϕ0)

∂ J ∂ A 0 = 2 Re ⁡ ( ∑ n = 0 N − 1 [ − e − j ( 2 π f 0 n T s + ϕ 0 ) ] r n ) \frac{\partial J}{\partial A_0} = 2 \operatorname{Re} \left( \sum_{n=0}^{N-1} \left[ -e^{-j(2\pi f_0 n T_s + \phi_0)} \right] r_n \right) A0J=2Re(n=0N1[ej(2πf0nTs+ϕ0)]rn)

  • 频率 f 0 f_0 f0的梯度分量

∂ r n ∂ f 0 = − j ⋅ 2 π n T s A 0 e j ( 2 π f 0 n T s + ϕ 0 ) \frac{\partial r_n}{\partial f_0} = -j \cdot 2\pi n T_s A_0 e^{j(2\pi f_0 n T_s + \phi_0)} f0rn=j2πnTsA0ej(2πf0nTs+ϕ0)

∂ J ∂ f 0 = 2 Re ⁡ ( ∑ n = 0 N − 1 [ j ⋅ 2 π n T s A 0 e − j ( 2 π f 0 n T s + ϕ 0 ) ] r n ) \frac{\partial J}{\partial f_0} = 2 \operatorname{Re} \left( \sum_{n=0}^{N-1} \left[ j \cdot 2\pi n T_s A_0 e^{-j(2\pi f_0 n T_s + \phi_0)} \right] r_n \right) f0J=2Re(n=0N1[j2πnTsA0ej(2πf0nTs+ϕ0)]rn)

  • 相位 ϕ 0 \phi_0 ϕ0的梯度分量

∂ r n ∂ ϕ 0 = − j A 0 e j ( 2 π f 0 n T s + ϕ 0 ) \frac{\partial r_n}{\partial \phi_0} = -j A_0 e^{j(2\pi f_0 n T_s + \phi_0)} ϕ0rn=jA0ej(2πf0nTs+ϕ0)

∂ J ∂ ϕ 0 = 2 Re ⁡ ( ∑ n = 0 N − 1 [ j A 0 e − j ( 2 π f 0 n T s + ϕ 0 ) ] r n ) \frac{\partial J}{\partial \phi_0} = 2 \operatorname{Re} \left( \sum_{n=0}^{N-1} \left[ j A_0 e^{-j(2\pi f_0 n T_s + \phi_0)} \right] r_n \right) ϕ0J=2Re(n=0N1[jA0ej(2πf0nTs+ϕ0)]rn)

A 1 , f 1 , ϕ 1 A_1, f_1, \phi_1 A1,f1,ϕ1的梯度形式类似,只需将下标0改为1)

3. Hessian矩阵近似

为加速收敛,采用Gauss-Newton法近似Hessian:

H ( θ ) ≈ 2 ∑ n = 0 N − 1 Re ⁡ ( ∂ r n ∂ θ H ∂ r n ∂ θ ) \mathbf{H}(\boldsymbol{\theta}) \approx 2 \sum_{n=0}^{N-1} \operatorname{Re} \left( \frac{\partial r_n}{\partial \boldsymbol{\theta}}^H \frac{\partial r_n}{\partial \boldsymbol{\theta}} \right) H(θ)2n=0N1Re(θrnHθrn)

其中雅可比矩阵的行向量为:

J n = ∂ r n ∂ θ = [ ∂ r n ∂ A 0 , ∂ r n ∂ f 0 , ∂ r n ∂ ϕ 0 , ∂ r n ∂ A 1 , ∂ r n ∂ f 1 , ∂ r n ∂ ϕ 1 ] \mathbf{J}_n = \frac{\partial r_n}{\partial \boldsymbol{\theta}} = \left[ \frac{\partial r_n}{\partial A_0}, \frac{\partial r_n}{\partial f_0}, \frac{\partial r_n}{\partial \phi_0}, \frac{\partial r_n}{\partial A_1}, \frac{\partial r_n}{\partial f_1}, \frac{\partial r_n}{\partial \phi_1} \right] Jn=θrn=[A0rn,f0rn,ϕ0rn,A1rn,f1rn,ϕ1rn]

4. 带约束的Gauss-Newton算法

迭代格式如下:

步骤1:初始化参数 θ ( 0 ) \boldsymbol{\theta}^{(0)} θ(0),设置迭代索引 k = 0 k=0 k=0

步骤2:计算当前残差 r n ( k ) = x [ n ] − s [ n ; θ ( k ) ] r_n^{(k)} = x[n] - s[n; \boldsymbol{\theta}^{(k)}] rn(k)=x[n]s[n;θ(k)]

步骤3:计算梯度 g ( k ) = ∇ J ( θ ( k ) ) \mathbf{g}^{(k)} = \nabla J(\boldsymbol{\theta}^{(k)}) g(k)=J(θ(k))和近似Hessian H ( k ) \mathbf{H}^{(k)} H(k)

步骤4:求解带约束的线性最小二乘问题:

δ ( k ) = arg ⁡ min ⁡ δ ∥ J ( k ) δ + r ( k ) ∥ 2 \boldsymbol{\delta}^{(k)} = \arg \min_{\boldsymbol{\delta}} \| \mathbf{J}^{(k)} \boldsymbol{\delta} + \mathbf{r}^{(k)} \|^2 δ(k)=argδminJ(k)δ+r(k)2

s.t. θ ( k ) + δ ∈ Ω \text{s.t.} \quad \boldsymbol{\theta}^{(k)} + \boldsymbol{\delta} \in \Omega s.t.θ(k)+δΩ

其中 Ω \Omega Ω为参数可行域, r ( k ) = [ r 0 ( k ) , … , r N − 1 ( k ) ] T \mathbf{r}^{(k)} = [r_0^{(k)}, \dots, r_{N-1}^{(k)}]^T r(k)=[r0(k),,rN1(k)]T

步骤5:更新参数 θ ( k + 1 ) = θ ( k ) + μ δ ( k ) \boldsymbol{\theta}^{(k+1)} = \boldsymbol{\theta}^{(k)} + \mu \boldsymbol{\delta}^{(k)} θ(k+1)=θ(k)+μδ(k) μ \mu μ为步长)

步骤6:若 ∥ δ ( k ) ∥ < ϵ \|\boldsymbol{\delta}^{(k)}\| < \epsilon δ(k)<ϵ则停止,否则 k ← k + 1 k \leftarrow k+1 kk+1转步骤2


三、边界约束处理策略

采用投影梯度法处理边界约束:

  1. 在每次迭代更新后,检查参数是否越界:

θ new = P Ω ( θ + μ δ ) \boldsymbol{\theta}_{\text{new}} = \mathcal{P}_{\Omega} \left( \boldsymbol{\theta} + \mu \boldsymbol{\delta} \right) θnew=PΩ(θ+μδ)

其中投影算子 P Ω \mathcal{P}_{\Omega} PΩ定义为:

P Ω ( θ i ) = { θ min ⁡ , i θ i < θ min ⁡ , i θ i θ min ⁡ , i ≤ θ i ≤ θ max ⁡ , i θ max ⁡ , i θ i > θ max ⁡ , i \mathcal{P}_{\Omega}(\theta_i) = \begin{cases} \theta_{\min,i} & \theta_i < \theta_{\min,i} \\ \theta_i & \theta_{\min,i} \leq \theta_i \leq \theta_{\max,i} \\ \theta_{\max,i} & \theta_i > \theta_{\max,i} \end{cases} PΩ(θi)= θmin,iθiθmax,iθi<θmin,iθmin,iθiθmax,iθi>θmax,i

  1. 对于相位周期性约束,投影后需归一化到 [ − π , π ] [-\pi, \pi] [π,π]
    ϕ proj = m o d ( ϕ + π , 2 π ) − π \phi_{\text{proj}} = \mod(\phi + \pi, 2\pi) - \pi ϕproj=mod(ϕ+π,2π)π

四、算法完整流程(伪代码)


输入:观测信号 x[0..N-1], 采样率 fs, 初始估计 θ_init输出:优化参数 θ_opt设定:最大迭代次数 K, 容差 ε, 步长 μ=0.1θ_prev ← θ_initfor k = 1 to K do// 1. 计算当前残差和雅可比矩阵for n = 0 to N-1 dor_n = x[n] - s(n; θ_prev)J_n = [∂r/∂A0, ∂r/∂f0, ∂r/∂φ0, ∂r/∂A1, ∂r/∂f1, ∂r/∂φ1]  // 按Wirtinger导数公式end// 2. 构造正规方程H = Re(J^H * J)  // 6×6实对称矩阵g = Re(J^H * r)  // 6×1实向量// 3. 求解线性系统 (带约束)δ = H \ g  // 高斯消去法或Cholesky分解// 4. 带投影的参数更新θ_temp = θ_prev + μ * δθ_new = ProjectToBounds(θ_temp)  // 边界投影// 5. 收敛检查if ||θ_new - θ_prev|| < ε thenbreakendθ_prev ← θ_newendθ_opt ← θ_new

五、与现有方法的理论对比

| 算法 | 计算复杂度 | 收敛速度 | 全局最优保证 | 边界处理 |

|-----------------|-------------|---------|------------|---------|

| 本文方法 | O(6^2N) | 二次收敛 | 局部最优 | 投影法 |

| SSA-BSS | O(N log N) | 一次迭代 | 依赖初始化 | 无 |

| 粒子滤波 | O(NM) | 渐近收敛 | 概率保证 | 重采样 |

| 循环对消 | O(N log N) | 一次迭代 | 无 | 无 |

注:M为粒子数


六、论文书写建议

  1. 问题建模部分
  • 明确定义复信号模型和参数向量

  • 给出完整的最小二乘目标函数和约束条件

  1. 算法推导部分
  • 详细说明Wirtinger导数的推导过程

  • 给出Gauss-Newton法的矩阵形式更新公式

  • 解释边界投影算子的实现

  1. 实验部分
  • 比较梯度解析计算与数值微分的精度差异

  • 展示不同SNR下的参数估计Cramér-Rao界

  1. 附录
  • 提供核心算法的伪代码

  • 补充投影梯度的收敛性证明

通过以上数学化表达,可避免出现MATLAB工具箱依赖,提升论文的理论严谨性。实际实现时,可基于上述推导自主编写优化器(如用C++或Python实现),无需调用现成优化库。

取前两个峰值位置 f ^ 0 , f ^ 1 \hat{f}_0, \hat{f}_1 f^0,f^1

@article{chen2022,
title={Precision Extraction of Weak Harmonic Signals in Strong Interference Environments},
author={Chen, Y. and Wang, L. and Smith, J.},
journal={IEEE Transactions on Instrumentation and Measurement},
volume={71},
pages={1–10},
year={2022},
doi={10.1109/TIM.2022.3147321}
}
其中 θ = [ A 0 , f 0 , ϕ 0 , A 1 , f 1 , ϕ 1 ] T \boldsymbol{\theta} = [A_0, f_0, \phi_0, A_1, f_1, \phi_1]^T θ=[A0,f0,ϕ0,A1,f1,ϕ1]T 是 6维参数向量

δ = − ( J T J ) − 1 J T r \boldsymbol{\delta} = -(\mathbf{J}^T\mathbf{J})^{-1}\mathbf{J}^T\mathbf{r} δ=(JTJ)1JTr

常用步长选择方法:

  1. 固定步长(不推荐):需要经验且难以适应不同迭代。

  2. 精确线搜索:求解α使J(θ_k + αδ_k)最小化,计算量大。

  3. 非精确线搜索(Armijo准则等):折中方案,保证充分下降且计算量小。

相关文章:

  • GPIO-LED驱动
  • FPGA基础 -- Verilog 验证平台
  • Kimi“新PPT助手” ,Kimi全新自研的免费AI生成PPT助手
  • Android 编译和打包image镜像流程
  • RS485
  • 用于算法性能预测的 GNN 框架
  • 在Ubuntu上设置Firefox自动化测试环境:指定Marionette端口号
  • 【Comosl教程】如何计算物体所受到的力矩——质心积分法
  • 微信小程序:选择页面单选实现(多页面均可选择)
  • 探秘 Java 安全利器 ——JVMTI
  • 从哈希到挑战响应,密码传输安全解析
  • 《去哪儿网Redis高并发实战:从问题定位到架构升级》
  • RK3288 android7.1 将普通串口设置为调试串口
  • 从ConstraintLayout到Jetpack Compose:全面掌握Android UI设计与布局技术
  • 广东省专升本英语形容词与副词全梳理
  • ​​FFmpeg命令全解析:三步完成视频合并、精准裁剪​​、英伟达显卡加速
  • Maven 多模块项目调试与问题排查总结
  • 自动化 UI 测试智能体在 Trae 平台的部署体验
  • FPGA基础 -- Verilog 竞争/竞态(Race Condition)
  • AI辅助编程工具技术评估(2025年):CodeBuddy在开发者生态中的差异化优势分析
  • 政府网站建设先进材料/投放广告的网站
  • 建网站大约得用多少钱/网站seo搜索
  • 专门做酒店网站/网店推广的方式
  • 网页设计与制作课程实施报告/泰州百度seo
  • 做吉祥物设计看什么网站/郑州seo优化外包公司
  • 网站建设与规划前景/什么是软文营销?