分布式光纤声波传感系统IQ解调 求助

[复制链接]
 楼主| maoering 发表于 2025-2-22 16:11 | 显示全部楼层 |阅读模式
采集到的分布式光纤信号  在IQ解调过程中遇到了些问题,解调效果特别不好,请各位大佬帮助解答一下
 楼主| maoering 发表于 2025-2-22 16:12 | 显示全部楼层
% 假设 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);  % 在时间维度上展开

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部