% 假设 ch1_mv 是原始数据
data = reshape(ch1_mv, [4096, 20000]);
data = data( 146:end-200,:);
data =data - mean2(data);
% 参数设置
samplingRate = 250e6; % 采样率 250 MHz
pointsPerSample = 3751; % 每次采样点数
% 计算每个点的时间间隔
dt = 1 / samplingRate;
% 生成第一列时间序列
timePerColumn1 = (0:pointsPerSample-1) * dt'; % 第一列时间序列
% 定义时间偏移
timeOffset = 1e-3; % 1 毫秒的时间偏移
% 初始化时间矩阵
numRows = 20000; % 20000 行
timeMatrix = zeros(pointsPerSample, numRows); % 初始化时间矩阵
% 填充时间矩阵
for col = 1:numRows
timeMatrix(:, col) = timePerColumn1 + (col-1) * timeOffset;
end
% 频率假设
carrierFreq = 8e7; % AOM移频量为80MHz
% 生成本地正弦和余弦信号
cosRef = cos(2 * pi * carrierFreq .* timeMatrix);
sinRef = sin(2 * pi * carrierFreq .* timeMatrix);
% 对每个空间点进行 IQ 解调
I = data.*cosRef;
Q = data.*sinRef;
% 使用低通滤波器过滤掉160Mhz分量
Fs = 250e6; % 采样率 (Hz)
Fc = 120e6; % 通带频率 (Hz)
order = 8; % 滤波器阶数
% 对 I 和 Q 信号进行低通滤波
I_PASS = lowpass(I, Fc, Fs, 'Steepness', 0.95, 'StopbandAttenuation', 60);
Q_PASS = lowpass(Q, Fc, Fs, 'Steepness', 0.95, 'StopbandAttenuation', 60);
% 计算相位和幅值
phaseData = atan2(Q_PASS,I_PASS);
amplitude = hypot(I_PASS,Q_PASS);
phaseData_end = phaseData(3000:3751,:);
plot(phaseData(:,2000));
unwrappedPhase_position = unwrap(phaseData, [], 1); % 空间维度上的相位解缠绕
unwrappedPhase_position = unwrappedPhase_position - unwrappedPhase_position(1, :); % 消除初相位
unwrappedPhase_time = unwrap(unwrappedPhase_position, [], 2); % 在时间维度上展开 |