打印

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

[复制链接]
19|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
maoering|  楼主 | 2025-2-22 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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

粉丝