FRI信号是一种参数化信号,最常见的有Dirac脉冲,除此之外还有高斯脉冲串。这个例程是高斯脉冲串的信号重构。信号时长为1s,信号的新息率为10,即包含有5个高斯脉冲。采样核为理想的低通滤波器,这里没有进行时域卷积,而是直接选取了低频的傅里叶系数。
%% 高斯脉冲串FRI信号重构
%% 采样核为sinc核,直接选取低频的傅里叶系数
%%2022 4.12 18:00
clc;clear all;close all;
L = 5;
%% 生成单个高斯脉冲并绘制
fs=1000; %sampling frequency
dt = 1/fs; %采样时间间隔
t=-0.5:1/fs:0.5; %time base
T = 1; %仿真时长
sigma = 0.01; %标准差
variance = sigma^2; %方差
x=exp(-t.^2/(2*variance)); %单个高斯脉冲
subplot(2,1,1)
plot(t,x,'b');
title(['Gaussian Pulse \sigma=', num2str(sigma),'s']);
xlabel('Time(s)');
ylabel('Amplitude');
%% 生成高斯脉冲流并绘制
t_simu = 1; %仿真时长为1s
t_base = 0: 1/fs: 1;
numStream = 5; %脉冲数
akrec = [0.5 ,0.8 ,0.7 ,0.6 ,0.7]; %脉冲时延
tk = [0.3 ,0.4, 0.5,0.75 ,0.9]; %脉冲幅度
N = length(t_base); %向量长度
gaussStream = zeros(1,N);
for i = 1: numStream
gaussStream = gaussStream + akrec(i)*(exp(-(t_base-tk(i)).^2/(2*variance))); %单个高斯脉冲
end
subplot(2,1,2)
plot(t_base,gaussStream,'b');
title(['Gaussian Pulse Stream with location=', num2str(tk)]);
xlabel('Time(s)');
ylabel('Amplitude');
% %% 产生采样核
% B = 20; %采样核带宽,由新息率决定
% th = -T/2:dt:T/2-dt;
% h = B*sinc(B*th);
% % plot(h)
%% 频域滤波
F = fft(gaussStream)*2/N; % FRI信号的傅里叶系数
y1 = F(2: 2+2*L); % 频域滤波,取低频的傅里叶系数
%% 采样傅里叶系数
tt = -(t_simu/2): dt: (t_simu/2);
[TT, kk] = meshgrid(tt, 2: 2+2*5);
W = exp(-1i*2*pi/1*TT.*kk); %dft变换的矩阵
hk = W*x'*2*dt; % 求脉冲基函数的的dft
y = (y1.')./hk;
%% TLS-滤波方法
c = y(L+1:end);
r = y(L+1:-1:1);
Y = toeplitz(c,r); % 寻找最佳的Toeplitz矩阵
%% SVD分解,找到零化滤波器系数
[~,~,V] = svd(Y,0);
h = V(:,L+1);
h = h./h(1)
%% 对零化滤波器系数求根
z = roots(h);
%% 重构原始时间延迟参数
tkr = sort(mod(-T*angle(z)/(2*pi),T))
%% 重构幅度
tkrec = tkr;
[kk, tt] = meshgrid(tkrec, 1: 2*L+1);
V = exp(-1i*(2*pi*kk.*tt/t_simu))./t_simu;
akrec =abs(pinv(V)*y);
%% 重构完整信号
reconstructed_signal = 0;
for i = 1: L
reconstructed_signal = reconstructed_signal + exp(-(t_base-tkrec(i)).^2/(2*sigma^2))*akrec(i); % 叠加原始信号
end
reconstructed_signal = real(reconstructed_signal);
tkrec = tkrec';
%% 绘制原始信号及重构信号
figure;
plot(gaussStream, '*'); hold on;
title('gaussStream');
plot(reconstructed_signal, 'o'); hold on;
title('reconstructed_signal');
grid on;
中间的绘图结果显示如下,首先是单个的高斯脉冲及高斯脉冲串。
图1. 高斯脉冲及脉冲串
下面是原始的FRI信号和重构出来的FRI信号。
图2. 原始信号及重构信号
|