0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FFT卷积是什么?FFT卷积基本过程描述

冬至子 来源:雷达系统工程师 作者:忠于梦想 2023-07-04 11:42 次阅读

信号与系统基础之卷积定理:频域乘积相当于时域卷积,千万不要问我什么,可以去看看教材上的公式推导。

运算效率对比分析,使用FFT快速卷积法(实线)明显比时域卷积乘法次数要少,一般而言64点以上,FFT法就具有优势。

FFT卷积基本过程描述:设信号x长度n,卷积系数h长度为k,则时域卷积结果长度为L=n+k-1,为了采用高效的基2型FFT算法,需要将信号和系数均在末尾补零扩展到最接近的2的N次方长度m(比如n=32,k=16,则L=32+16-1=47,最近的2的N次方为64),然后分别做m点FFT变换到频域后再复乘,最后IFFT变回时域。

图片

从上理论就讲说这么多,更详细的可看看相关专著书籍,接下来用matlab仿真来看看运算过程的中间环节是什么样;

clc;
clear;
%%设定信号参数
T=10e-6;           %信号长度:us
f0=3e6;           %信号1:3MHz
f1=8e6;           %信号2:8MHz
fs=80e6;            %信号采样率:MHz
t=-T/2:1/fs:T/2-1/fs; %时间序列


%加载fdatool设计的滤波器FIR系数
load("coef.mat");
%滤波器频率响应
freqz(coef,1,200,fs);
%低通滤波器参数:3MHz带宽,截止频率4MHz,带外抑制80dbc

图片

信号和变量长度

图片

信号长度800,系数长度134,则卷积结果长度为800+134-1=933,因此需要补零扩展到1024点;

%生成信号:模拟采样过程
if_sig=cos(2*pi*f0*t)+cos(2*pi*f1*t);
%加入白噪声SNR=30dB
if_sig=awgn(if_sig,30,'measured');    
% if_sig=round(8192*if_sig); %中频信号
plot(if_sig);title('原始信号');

图片

图片

plot(coef);title('滤波器系数的时域');
coef_fft = fft(coef,1024);
len=length(coef_fft);
f_x=(0:len-1)*fs/len;%频率序列
f_x=f_x/1e6;
plot(f_x(1:len/2+1),10*log10(abs(coef_fft(1:len/2+1))));
title('滤波器系数的频域');
xlabel('频率/MHz');ylabel('幅度/dB');

图片

图片

此处留一个坑,下回继续

sig_fft = fft(if_sig,1024);
plot(f_x,20*log10(abs(sig_fft)));
title('原始信号做1024点FFT');
xlabel('频率/MHz');ylabel('幅度/dB');

图片

%频域相乘,注意此处为复数乘法
conv_fft = sig_fft.*coef_fft;
plot(f_x,20*log10(abs(conv_fft)));
title('信号和系数频域乘积后');
xlabel('频率/MHz');ylabel('幅度/dB');

图片

上图为频域滤波后结果,可以看到8MHz的带外信号被滤除,剩下3MHz的带内信号;接下来就是变换回时域波形。

%IFFT变换还原到时域
fft_filter_out = ifft(conv_fft);
plot(fft_filter_out);
title('FFT卷积频域滤波后的信号波形');

图片

为了方便对比,下边给出通过时域卷积方式的运算结果

%时域卷积方式滤波
conv_filter_out = conv(if_sig,coef);
plot(conv_filter_out);xlim([1,1200]);
title('时域卷积方式滤波后的信号波形');

图片

从上面时域处理、频域处理的结果可以看到,两者处理后时域处理的结果和频域处理后的前933个点的结果相同。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 低通滤波器
    +关注

    关注

    13

    文章

    448

    浏览量

    46925
  • FFT
    FFT
    +关注

    关注

    15

    文章

    425

    浏览量

    58645
  • 信号处理器
    +关注

    关注

    1

    文章

    239

    浏览量

    25034
  • MATLAB仿真
    +关注

    关注

    4

    文章

    174

    浏览量

    19640
  • fir滤波器
    +关注

    关注

    1

    文章

    92

    浏览量

    18713
收藏 人收藏

    评论

    相关推荐

    什么是卷积码? 什么是卷积码的约束长度?

    小。与分组码不同,卷积码编码后的n 个码元不仅与当前段的k 个信息元有关,还与前面的N ?1段信息有关,各码字间不再是相互独立的,码字中互相关联的码元个数为n ? N 。同样,在译码过程中不仅
    发表于 05-30 16:06

    FFT与DFT计算时间的比较及圆周卷积代替线性卷积的有效性实

    实验二 FFT与DFT计算时间的比较及圆周卷积代替线性卷积的有效性实验:一 实验目的1:掌握FFT基2时间(或基2频率)抽选法,理解其提高减少乘法运算次数提高运算速度的原理。2:掌握
    发表于 12-29 21:52

    卷积特性(卷积定理).ppt

    卷积特性(卷积定理).ppt
    发表于 10-03 23:09

    卷积特性(卷积定理).zip

    卷积特性(卷积定理).zip
    发表于 10-04 11:36

    CNN之卷积

    的局部一个一个比对时的计算过程,便是卷积操作什么是卷积对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素
    发表于 10-17 10:15

    卷积神经网络一维卷积的处理过程

    。本文就以一维卷积神经网络为例谈谈怎么来进一步优化卷积神经网络使用的memory。文章(卷积神经网络中一维卷.
    发表于 12-23 06:16

    简谈卷积—幽默笑话谈卷积

    作弊中,为了让照片同时像两个人,只要把两人的图像卷积处理即可,这就是一种平滑的过程,可是我们怎么才能真正把公式和实际建立起一种联系呢,也就是说,我们能不能从生活中找到一种很方便且具体的例子来表达公式
    发表于 05-25 18:08

    利用FFT IP Core实现FFT算法

    利用FFT IP Core实现FFT算法 摘要:结合工程实践,介绍了一种利用FFT IP Core实现FFT的方法,设计能同时对两路实数序列进行256点
    发表于 01-16 10:04 6727次阅读
    利用<b class='flag-5'>FFT</b> IP Core实现<b class='flag-5'>FFT</b>算法

    什么是卷积_卷积的意义

    卷积的定义 卷积是两个变量在某范围内相乘后求和的结果。 如果卷积的变量是序列x(n)和h(n),则卷积的结果 ,其中星号*表示卷积。 当时序
    发表于 11-28 17:54 15.6w次阅读
    什么是<b class='flag-5'>卷积</b>_<b class='flag-5'>卷积</b>的意义

    FFT三峰插值修正的电能计量新算法

    综合自乘窗和自卷积窗的优势,设计出一种Hanning自乘一卷积窗函数,其具有较优的主瓣和旁瓣性能。基于Hanning自乘一卷积FFT三峰插值修正公式、
    发表于 03-10 10:31 1次下载

    一维卷积、二维卷积、三维卷积具体应用

    由于计算机视觉的大红大紫,二维卷积的用处范围最广。因此本文首先介绍二维卷积,之后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用。
    发表于 05-08 10:29 4247次阅读
    一维<b class='flag-5'>卷积</b>、二维<b class='flag-5'>卷积</b>、三维<b class='flag-5'>卷积</b>具体应用

    卷积编码之维特比译码介绍 浅析卷积码之应用

    以(n,k,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积
    发表于 08-21 09:56 2895次阅读

    详解卷积神经网络卷积过程

    卷积过程卷积神经网络最主要的特征。然而卷积过程有比较多的细节,初学者常会有比较多的问题,这篇文章对卷积
    的头像 发表于 05-02 15:39 1.6w次阅读
    详解<b class='flag-5'>卷积</b>神经网络<b class='flag-5'>卷积</b><b class='flag-5'>过程</b>

    卷积神经网络四种卷积类型

    有些消息来源使用名称deconvolution,这是不合适的,因为它不是解卷积。为了使事情更糟,确实存在解卷积,但它们在深度学习领域并不常见。实际的反卷积会使卷积
    的头像 发表于 04-19 16:48 3713次阅读
    <b class='flag-5'>卷积</b>神经网络四种<b class='flag-5'>卷积</b>类型

    调用HLS的FFT库实现N点FFT

    在HLS中用C语言实现8192点FFT,经过测试,实验结果正确,但是时序约束不到100M的时钟,应该是设计上的延时之类的比较大,暂时放弃这个方案,调用HLS中自带的FFT库(hls:fft
    的头像 发表于 07-11 10:05 661次阅读
    调用HLS的<b class='flag-5'>FFT</b>库实现N点<b class='flag-5'>FFT</b>