李萨如图(Lissajous figure)详解与 MATLAB 可视化

李萨如图(Lissajous figure)详解与 MATLAB 可视化示例

摘要:李萨如图是由两个互相垂直方向上的简谐运动合成而成的平面轨迹,既有优美的几何形状,又能直接反映两个正弦信号的频率比与相位差。因此它在物理(示波器相位/频率测量)、信号处理与数学视觉化中都很常用。下面先从数学定义、几何性质与仪器学意义讲起,再给出若干 MATLAB 可视化与相位估计的实用代码示例,便于实验与教学使用。

1. 什么是李萨如图(定义)

给定两个互相垂直的简单正弦振动

{x(t)=Asin⁡(at+δ),y(t)=Bsin⁡(bt), \begin{cases} x(t)=A\sin(a t+\delta),\\[4pt] y(t)=B\sin(b t), \end{cases} {x(t)=Asin(at+δ),y(t)=Bsin(bt),

其中 A,BA,BA,B 为振幅,a,ba,ba,b 为角频率(或简记为频率比),δ\deltaδ 为相位差。随着参数 ttt 变化,(x(t),y(t))(x(t),y(t))(x(t),y(t)) 在平面上描出的轨迹即为李萨如图

李萨如图是指两个沿着垂直方向的正弦信号合成的轨迹,由于其能同时反映两垂直信号的幅值和相位差,常用于信号处理领域。

2. 几何与代数性质(重要结论)

  • 相等频率(a=ba=ba=b:轨迹为椭圆(包括退化为直线或圆的特例)。特别地,当 A=BA=BA=Bδ=π2\delta=\tfrac{\pi}{2}δ=2π 时为圆;当 δ=0\delta=0δ=0 时为通过原点的直线 y=(B/A)xy=(B/A)xy=(B/A)x

    可以从三角恒等式消去 ttt 得到常见的椭圆方程(设 s=sin⁡(at)s=\sin(at)s=sin(at)):

    x2A2+y2B2−2xycos⁡δAB=sin⁡2δ, \frac{x^2}{A^2}+\frac{y^2}{B^2}-\frac{2xy\cos\delta}{AB}=\sin^2\delta, A2x2+B2y2AB2xycosδ=sin2δ,

    它是一般的二次曲线,δ\deltaδ 控制椭圆的倾角与长短轴比。

  • 频率比为有理数(闭合性):若 ab\frac{a}{b}ba 为有理数,设在最简形式为 m:nm:nm:n(互素整数),则轨迹是闭合曲线,会重复。
    aaabbb 都是整数,记 g=gcd⁡(a,b)g=\gcd(a,b)g=gcd(a,b),则函数对 ttt最小重复周期

    T=2πg, T=\frac{2\pi}{g}, T=g2π,

    曲线在一个周期内完成闭合。

  • 频率比为无理数(致密):若 ab\frac{a}{b}ba 为无理数,则轨迹不会闭合,而是在某区域内稠密填充(随采样时间越长越像填满区域)。

3. 仪器学意义(示波器上的应用)

  • 在示波器的 X-Y 模式下,将一通道接 x(t)x(t)x(t)、另一通道接 y(t)y(t)y(t),李萨如图直接给出两信号间的频率比相位差信息:

    • 若频率相同 (a=ba=ba=b),用 xxx-轴过零点时 yyy 的截距可估相位:当 x=0x=0x=0(即 sin⁡(at)=0\sin(at)=0sin(at)=0)时 y=Bsin⁡δy=B\sin\deltay=Bsinδ,因此

      δ=arcsin⁡ ⁣(yat x=0B), \delta=\arcsin\!\Big(\frac{y_{\text{at }x=0}}{B}\Big), δ=arcsin(Byat x=0),

      这是示波器上常见的相位测量法(注意有符号与 π\piπ 的模糊,需要结合方向或多次测量判定象限)。

    • 若频率比为简单整数比 m:nm:nm:n,图形的“瓣数/形状”可直接读出比例,从而判定频率比。

4. MATLAB 可视化代码(完整示例脚本)

下面给出一个自包含的 MATLAB 脚本 Lissajous_demo.m,它演示若干典型参数、整数比闭合与无理比稠密两类情形,并给出一个用于 等频情况估算相位差 的简单方法。

把下面代码复制到一个文件 Lissajous_demo.m,在 MATLAB 中运行即可。

% Lissajous_demo.m
% 李萨如图示例脚本:绘制若干典型参数并演示等频相位估计
clear; close all; clc;

% ------- 示例参数(每行:A B a b delta) delta 单位为弧度
examples = [
    1 1 1 1 0;          % 同频,同相 -> 直线
    1 1 1 1 pi/2;       % 同频,90度 -> 圆(若A=B)
    1 1 2 1 0;          % 频率比 2:1
    1 1 3 2 pi/4;       % 频率比 3:2 带相位
    1 1 5 4 pi/3;       % 频率比 5:4
    1 1 1 sqrt(2) 0     % 无理比示例(稠密)
];

figure('Position',[100 100 1200 700]);
rows = 2; cols = 3;
for k = 1:size(examples,1)
    A = examples(k,1); B = examples(k,2);
    a = examples(k,3); b = examples(k,4); delta = examples(k,5);
    
    % 智能选取绘制时间长度 t_end:
    if abs(a-round(a))<1e-10 && abs(b-round(b))<1e-10
        % 若 a,b 为整数,则最小重复周期 T = 2*pi / gcd(a,b)
        g = gcd(round(a), round(b));
        T = 2*pi / max(g,1);
        t_end = T;    % 一个周期即可见闭合图形
        N = 4000;
    else
        % 非整数(可能为无理比),用较长时间观察稠密性
        t_end = 40*pi;
        N = 20000;
    end
    
    % ------- 绘制李萨如图 -------
    t = linspace(0,t_end,N);
    x = A*sin(a*t + delta);
    y = B*sin(b*t);
    subplot(rows,cols,k);
    plot(x,y,'LineWidth',1.2);
    axis equal; grid on;
    xlabel('x = A sin(a t + \delta)');
    ylabel('y = B sin(b t)');
    title(sprintf('A=%.2g B=%.2g, a=%.3g b=%.3g, \\delta=%.3g\\pi', ...
        A,B,a,b,delta/pi));
end
sgtitle('李萨如图示例(不同频率比与相位)','FontSize',14);

% ------- 等频(a==b)时的相位估计演示 -------
figure('Name','等频相位估计示例','NumberTitle','off');
A = 1; B = 1; a = 1; b = 1; delta_true = pi/6; % 30度
t = linspace(0,2*pi,5000);
x = A*sin(a*t + delta_true);
y = B*sin(b*t);

plot(x,y,'k'); axis equal; grid on;
xlabel('x'); ylabel('y');
title(sprintf('等频李萨如:\\delta_{true}=%.1f°', delta_true*180/pi));
hold on;

% 找到 x=0 处的第一个交点并内插算出对应 y 值(线性内插)
zc = find(x(1:end-1).*x(2:end) < 0, 1, 'first');
if ~isempty(zc)
    kidx = zc;
    % 线性内插求零点时刻 t0
    t0 = t(kidx) - x(kidx)*(t(kidx+1)-t(kidx)) / (x(kidx+1)-x(kidx));
    y0 = interp1(t,y,t0);
    plot(0,y0,'ro','MarkerFaceColor','r','MarkerSize',8);
    % 估计相位(取 principal branch)
    delta_est = asin( y0 / B );
    txt = sprintf('\\delta_{est}=%.2f° (由 y_{x=0}/B 估计)', delta_est*180/pi);
    legend('轨迹','x=0 点对应 y','Location','best');
    text(0.05, -0.1, txt, 'Units','normalized','FontSize',11,'Color','r');
    fprintf('真实相位 (rad) = %.6f, 估计相位 (rad) = %.6f\n', delta_true, delta_est);
else
    warning('未找到 x=0 的交点(采样/参数问题)');
end

% 保存示例图
% saveas(gcf, 'Lissajous_phase_estimation.png');

在这里插入图片描述
在这里插入图片描述

5. 李萨如图的应用

1. 频率比测量

李萨如图最经典的用途是在示波器上比较两个信号的频率

  • 原理:当两个互相垂直的输入信号分别驱动 X 轴与 Y 轴时,如果它们是正弦波,屏幕上会显示闭合的李萨如曲线。曲线形状与两个信号的频率比 a:ba:ba:b 有直接关系。

  • 用途:通过观察图形的交点数目,可以快速判断频率比。例如:

    • 频率比 1:1 → 圆、椭圆或直线
    • 频率比 2:1 → “8” 字形
    • 频率比 3:2 → 三叶形等
  • 应用场景

    • 早期电子仪器中,用于校准信号源、音叉或振荡器频率
    • 无需复杂数学计算,直接肉眼判断频率比

2. 相位差测量

  • 原理:当两个信号的频率相同(a = b),李萨如图是椭圆,椭圆的倾斜程度与相位差 δ\deltaδ 相关。

  • 用途:通过测量椭圆的截距比例,或者直接找 x=0x=0x=0 时的 yyy 值,就可以估算相位差。

  • 应用场景

    • 测量电路中电压与电流的相位差
    • 声学中测量麦克风信号的相位差
    • 振动分析中比较两个传感器的时延

3. 双通道信号分析

  • 在信号分析中,如果需要同时观察两个通道信号的同步性波形关系,李萨如图提供了一个二维视图。
  • 这比单独看两个时域波形更容易发现周期性关系或失真。

4. 机械振动与模式识别

  • 原理:李萨如图可视化两个垂直方向上的运动。

  • 应用

    • 在机械系统(如悬挂系统、桥梁、飞机机翼)中,用两个方向的位移信号绘制李萨如图,可以判断振动模式是否为简谐、是否存在耦合或共振。

5. 光学与激光扫描

  • 在激光灯光秀、示教仪器中,利用两个正交方向的扫描信号(X 扫描、Y 扫描)叠加,就可以生成李萨如曲线的光学图案。
  • 通过调节频率比与相位,可以产生艺术性的动态图案(音乐可视化、艺术装置等)。

6. 通信与调制分析

  • 在调幅(AM)、调频(FM)、调相(PM)信号分析中,李萨如图可用于快速识别调制类型和参数。
  • 在 IQ 调制解调中,李萨如图和星座图有一定联系,都利用正交分量作二维显示。

📌 总结
李萨如图的核心价值就是用二维轨迹可视化两个信号的关系,尤其是频率比与相位差的测量。在示波器普及之前,它几乎是工程师的“必修技能”,现在虽然有更先进的频谱仪、相位计,但在教学、艺术和某些快速诊断中依然非常有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱代码的小黄人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值