热门标签 | 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两信号

 

 

 


推荐阅读
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文介绍了如何通过扩展 UnityGUI 创建自定义和复合控件,以满足特定的用户界面需求。内容涵盖简单和静态复合控件的实现,并展示了如何创建复杂的 RGB 滑块。 ... [详细]
  • 本文详细介绍了MicroATX(也称Mini ATX)和MATX主板规格,探讨了它们的结构特点、应用场景及对电脑系统成本和性能的影响。同时,文章还涵盖了相关操作系统的实用技巧,如蓝牙设备图标删除、磁盘管理等。 ... [详细]
  • 本文详细介绍如何在Vue项目中通过Element UI组件库实现对输入框占位符(placeholder)值的获取,以及数据绑定和查询的基本方法。文章将涵盖v-model双向绑定、el-form表单配置等核心内容。 ... [详细]
  • andr ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 解决Element UI中Select组件创建条目为空时报错的问题
    本文介绍如何在Element UI的Select组件中使用allow-create属性创建新条目,并处理创建条目为空时出现的错误。我们将详细说明filterable属性的必要性,以及default-first-option属性的作用。 ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
  • Win11扩展卷无法使用?解决扩展卷灰色问题的指南
    本文详细介绍了在Windows 11中遇到扩展卷灰色无法使用时的解决方案,帮助用户快速恢复磁盘扩展功能。 ... [详细]
  • 武汉大学计算机学院研究生入学考试科目及专业方向
    武汉大学计算机学院为考生提供了多个硕士点,涵盖计算机科学与技术、软件工程、信息安全等多个领域。考研科目包括思想政治理论、英语一或二、数学一或二以及专业基础课程。具体的专业方向和考试科目详见正文。 ... [详细]
  • Java编程实践:深入理解方法重载
    本文介绍了Java中方法重载的概念及其应用。通过多个示例,详细讲解了如何在同一类中定义具有相同名称但不同参数列表的方法,以实现更灵活的功能调用。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
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社区 版权所有