clear all;close all;clc;
load ('ReceiveData.txt'); % 读取信号文本
%% 重采样
fs_original = 100e3; % 接收换能器采样率
fs = 96e3; % 重采样目标采样率
resample(ReceiveData,fs,fs_original); % 重采样
figure; % 时域波形
plot((0:length(ReceiveData)-1)/fs,ReceiveData);xlabel('time/s');ylabel('Amplitude');grid on;axis tight;
figure; % 频谱分析
plot(-fs/2:fs/length(ReceiveData):fs/2-fs/length(ReceiveData),fftshift(abs(fft(ReceiveData))));grid on;axis tight;
xlabel('Frequency/Hz');ylabel('Amplitude');
%% 带通滤波
fc = 12e3; % 中心频率
fl = 8e3; % 下限频率
fh = 16e3; % 上限频率
filter_n = 1024; % 滤波器阶数
b=fir1(filter_n,[fl fh]/(fs/2)); % 带通滤波器
% freqz(b,1,2048); % 幅频特性曲线
signal=filter(b,1,...
[ReceiveData zeros(1,filter_n/2)]); % 带通滤波
signal=signal(filter_n/2+1:end);
figure; % 时域波形
plot((0:length(signal)-1)/fs,signal);xlabel('time/s');ylabel('Amplitude');grid on;axis tight;
figure; % 频谱分析
plot(-fs/2:fs/length(signal):fs/2-fs/length(signal),fftshift(abs(fft(signal))));grid on;axis tight;
xlabel('Frequency/Hz');ylabel('Amplitude');
%% 同步
% 本地同步信号生成
fh = 14e3; % 上限频率
fl = 10e3; % 下限频率
PulseWidth = 150e-3; % LFM信号长度
Band = fh - fl; % 带宽
Slope = Band/PulseWidth; % 斜率
t2=0:1/fs:(PulseWidth-1/fs);
lfm = 0.8*cos(2*pi*fl*t2+pi*Slope*t2.^2); % 本地同步信号
[Rx,lags]=xcorr(signal,lfm); % 与本地lfm做自相关
[Rxmax,nRxmax]=max(Rx); % 找自相关峰值
nDelay1=lags(nRxmax); % 同步估计出的时延
figure;
plot(Rx);
版权声明:本文为qq_43466146原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。