热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

数字滤波器的MATLAB与FPGA实现之读书笔记(四变换域滤波器的FPGA实现)

一、变换域滤波器简介1、采用变换域进行滤波处理的原因针对在时域无法进行滤波的情况或节约运算量。比如,扩频通信中的强窄带干扰的滤除,在时域很难处理&#

一、变换域滤波器简介


1、采用变换域进行滤波处理的原因

针对在时域无法进行滤波的情况或节约运算量。比如,扩频通信中的强窄带干扰的滤除,在时域很难处理,采用智能天线阵处理时,如果有用信号与干扰信号的波达方向相同,也无法通过波束成型算法滤除,但采用变换域滤波处理却十分容易。


2、变换域滤波有两种处理方法

通过某种变换将时域信号映射到另一个“域”直接处理,且处理后直接得到所需的时域信号,而不需要再进行域的反变换,如变换域串行LMS算法;

另一种处理方法是通过某种变换将时域映射到另一个“域”进行滤波处理,处理后的信号再通过对应的反变换处理,将信号再映射到时域,从而完成信号的滤波处理,如频域块LMS算法及变换域抗窄带干扰技术。其中后一种处理方法应用得更为广泛,滤波效果也更好,实现相对简单。


二、快速傅里叶变换


1、离散傅里叶变换


时域频域
周期/非周期离散/连续
连续/离散非周期/周期

 


 


 

对时域有限长信号采样后(离散)进行周期延拓(周期),这样,频域信号就变了周期离散信号。离散傅里叶理论实现了频域离散化,开辟了用数字技术在频域处理信号的新途径。


2、DFT存在的问题


名称问题原因解决措施
频率泄露导致频谱扩展信号截取时加窗导致的选择适当形状的窗函数、预加窗函数
栅栏效应只能在离散点看到信号频谱时域周期拓展导致频域离散化序列补零

 

 

 

 


3、频率分辨率与DFT参数的选择

频率分辨率:表征在频率轴上所能得到的最小频率间隔。

对于长度为N的DFT变换,其频率分辨率△f=fs/N,其中fs为时域信号的采样频率。

如果在x(n)中有两个频率分别为f1、f2的信号,则在对x(n)用矩形窗截断时,要分辨这两个频率,必须满足


4、FFT算法的基本思想

原理:利用的对称性和周期性:

算法提升程度:


 原来FFT算法
 

N^2次复乘、N(N-1)次复加

(N/2)log_2N
N=864次复乘12次
N=10241048576次5120次

 

 

 

 

 


5、FFT 算法的MATLAB仿真

%E8_1_FFTSim.m
%仿真FFT参数对采用FFT算法分析信号频谱的影响。产生频率分别为2Hz,2.05Hz的正弦波合成信号,采样
%频率=10Hz。根据(8-8)式,要实现分辨两个单频信号的目的,DFT的序列长度必须满足 。分别仿真3种
%情况下的FFT变换:1)取 的128点数据,计算FFT;2)将128点 以补零的方式加长到512点,计算FFT;
%3)取512点 ,计算FFT。
f1=2; f2=2.05;%单正弦信号的频率
fs=10; %采样频率
%对128点时域序列进行FFT分析
N=128; %FFT分析的点数
n=0:N-1;
xn1=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);%产生128点时域信号序列
XK1=fft(xn1); %进行傅立叶变换,并进行归一化处理
MXK1=abs(XK1(1:N/2));
% MXK1=20*log10(abs(XK1(1:N/2)));
% MXK1=MXK1-max(MXK1);
%对补零后的512点时域序列进行FFT分析
M=512;
xn2=[xn1 zeros(1,M-N)];%在时域信号序列后补零
XK2=fft(xn2); %进行傅立叶变换,并进行归一化处理
MXK2=abs(XK2(1:M/2));
%MXK2=20*log10(abs(XK2(1:M/2)));
%MXK2=MXK2-max(MXK2);
%对512点时域序列进行FFT分析
n=0:M-1;
xn3=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);%产生128点时域信号序列
XK3=fft(xn3); %进行傅立叶变换,并进行归一化处理
MXK3=abs(XK3(1:M/2));
% MXK3=20*log10(abs(XK3(1:M/2)));
% MXK3=MXK3-max(MXK3);
%绘图
subplot(321);
x1=0:N-1;
plot(x1,xn1);xlabel('n','fontsize',8);title('128点x(n)','fontsize',8);
subplot(322);
k1=(0:N/2-1)*fs/N;
plot(k1,MXK1);xlabel('f(Hz)','fontsize',8);title('128点xn的FFT变换','fontsize',8);
subplot(323);
x2=0:M-1;
plot(x2,xn2);xlabel('n','fontsize',8);title('512点补零x(n)','fontsize',8);
subplot(324);
k2=(0:M/2-1)*fs/M;
plot(k2,MXK2);xlabel('f(Hz)','fontsize',8);title('512点补零xn的FFT变换','fontsize',8);
subplot(325);
plot(x2,xn3);xlabel('n','fontsize',8);title('512点x(n)','fontsize',8);
subplot(326);
plot(k2,MXK3);xlabel('f(Hz)','fontsize',8);title('512点xn的FFT变换','fontsize',8);

N>400,才能分辨出f1、f2两信号

 

 

 


推荐阅读
  • KNN算法在海伦约会预测中的应用
    本文介绍如何使用KNN算法进行海伦约会的预测。我们将从数据导入、数据预处理、数据可视化到最终的模型训练和测试进行全面解析。 ... [详细]
  • ANSI最全介绍linux终端字体改变颜色等ANSI转义序列维基百科,自由的百科全书由于国内不能访问wiki而且国内关于ANSI的介绍都是简短的不能达到,不够完整所以转wiki到此 ... [详细]
  • 本文探讨了Thrift作为一款支持多语言的服务开发框架,其在体积、功能、扩展性以及多协议支持等方面的显著优势。特别地,Thrift作为一种RPC(远程过程调用协议)框架,非常适合用于构建可扩展且低耦合的分布式服务系统。文章通过多种编程语言对Thrift服务进行了性能测试,并提供了详细的测试结果。 ... [详细]
  • 远程访问用户 Kindle通过电子书实现控制
    介绍自2007年以来,亚马逊已售出数千万台Kindle,令人印象深刻。但这也意味着数以千万计的人可能会因为这些Kindle中的软件漏洞而被黑客入侵。他 ... [详细]
  • 本文详细介绍了MySQL表分区的概念、类型及其在实际应用中的实施方法,特别是针对Zabbix数据库的优化策略。 ... [详细]
  • 第三周课堂测试1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。(B ... [详细]
  • 本文介绍了如何在现有Ceph集群中添加新节点以扩展存储容量,并确保在不中断服务的情况下完成这一操作。文章详细描述了新节点的安装配置步骤及数据重新平衡的方法。 ... [详细]
  • 图神经网络模型综述
    本文综述了图神经网络(Graph Neural Networks, GNN)的发展,从传统的数据存储模型转向图和动态模型,探讨了模型中的显性和隐性结构,并详细介绍了GNN的关键组件及其应用。 ... [详细]
  • 本文探讨了如何利用伸展树(Splay Tree)来高效地处理区间操作,包括区间修改、查询和删除等。通过引入size域,伸展树能够灵活应对序列结构的变化。 ... [详细]
  • 日本作家竹内薰在其著作中,通过丰富的科学案例,探讨了人类思维中的假设是如何塑造我们的认知,并提供了打破传统思维模式、培养批判性思维的策略。书中以飞机飞行的原理为例,揭示了许多看似简单的现象背后,科学界至今仍未能完全解释清楚。 ... [详细]
  • 我们正在使用GNU Make来构建我们的系统,在makefile文件的末尾,我们通过一个名为Makedepends的包含来生成一系列的.d文件。然而,当文件被删除或移动时,依赖关系会中断,我们需要寻找一种方法来优雅地处理这种情况。 ... [详细]
  • 深入理解Java类加载机制及安全防护
    本文探讨了Java类加载的过程,包括加载、验证、准备、解析和初始化五个阶段,并详细解释了每个阶段的具体操作和意义。此外,文章还讨论了Java如何通过双亲委派模型来保障核心API的安全性,以及在特定情况下如何打破这一机制。 ... [详细]
  • APOC 函数详解:路径查询方法
    本文将深入探讨 APOC 库中的路径查询功能,特别是如何利用 `apoc.path.expand` 函数实现灵活的路径查询,包括动态设置最大路径长度等高级特性。 ... [详细]
  • ECharts图表绘制函数集
    本文档提供了使用ECharts库创建柱状图、饼图和双折线图的JavaScript函数。每个函数都详细列出了参数说明,并通过示例展示了如何调用这些函数以生成不同类型的图表。 ... [详细]
  • 拖拉切割直线 ... [详细]
author-avatar
飞翔的10号
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有