IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 高斯脉冲串FRI信号重构 -> 正文阅读

[人工智能]高斯脉冲串FRI信号重构

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. 原始信号及重构信号
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:44:22  更:2022-05-13 11:46:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:30:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码