m基于FPGA和MATLAB的数字CIC滤波器设计和实现

news2025/7/19 18:19:47

目录

1.算法概述

2.仿真效果预览

3.MATLAB/FPGA部分代码预览

4.完整MATLAB/FPGA程序


1.算法概述

      CIC滤波器由一对或多对积分-梳状滤波器组成,在抽取CIC中,输入信号依次经过积分,降采样,以及与积分环节数目相同的梳状滤波器。在内插CIC中,输入信号依次经过梳状滤波器,升采样,以及与梳状数目相同的积分环节。CIC滤波器是一种基于零极点相抵消的FIR滤波器。N级CIC抽取滤波器的基本结构框图如图1所示。

我们将这个系统模块话,然后在实际应用的时候,我们只要改变其中的参数就可以了。

系统分为如下三个模块。

       

模块一的设计:

delay_one(

                i_clk,//输入时钟

                i_rst,//输入复位信号

                i_data,//输入信号

                o_data//输出信号

                );

模块二的设计:

down(

           i_clk,//输入时钟

           i_rst,//输入复位信号

           i_M,  //抽取值

           i_data,//输入信号

           o_data//输出信号

           );

模块三的设计:

delay_M(

              i_clk,//输入时钟

              i_rst,//输入复位信号

              i_data,//输入信号

              o_data//输出信号

              );

那么其在顶层,我们只要调用这些模块就行了。

2.仿真效果预览

QUARTUS12.1

matlab2022a仿真

3.MATLAB/FPGA部分代码预览

.......................................
b4=conv(b3,b3);
a4=conv(a3,a3);
b5=conv(b4,b3);
a5=conv(a4,a3);
b6=conv(b4,b4);
a6=conv(a4,a4);
b7=conv(b6,b3);
a7=conv(a6,a3);
figure(1);
freqz(b7/D^5,a7,'whole');

%CIC抽取滤波器
% 抽取因子
r = 2;                 
hm = mfilt.cicdecim(r);  
%原始的采样率 44.1kHz.
fs = 44.1e3; 
%10240个采样点
n = 0:10239;           
%原始信号
x  = sin(2*pi*1e3/fs*n);  
%得到抽取后的5120个采样点
y_fi = filter(hm,x);        
x = double(x);
y = double(y_fi);
y = y/max(abs(y));
figure(2);
stem(n(1:44)/fs,x(2:45)); hold on;  
stem(n(1:22)/(fs/r),y(3:24),'r','filled'); 
xlabel('时间(sec)');ylabel('信号值');
title('CIC抽取滤波器');

%CIC内插滤波器
%插值因子
R = 2;                    
hm = mfilt.cicinterp(R);
% 原始采样频率:22.05 kHz.
fs = 22.05e3;           
% 5120个采样点
n = 0:5119;              
%原始信号
x = sin(2*pi*1e3/fs*n);    
y_fi = filter(hm,x);  
x = double(x);
y = double(y_fi);
y = y/max(abs(y));
figure(3);
stem(n(1:22)/fs,x(1:22),'filled'); hold on;
stem(n(1:44)/(fs*R),y(4:47),'r');  
xlabel('时间(sec)');ylabel('信号值');
01-23M
module down(
           i_clk,//输入时钟
           i_rst,//输入复位信号
           i_M,  //抽取值
           i_data,//输入信号
           o_data,//输出信号
           r_clk
           );
           
input              i_clk;//输入时钟
input              i_rst;//输入复位信号
input       [7:0]  i_M;  //抽取值          
input signed[31:0] i_data;//输入信号
output signed[31:0]o_data;//输出信号
output             r_clk;//输出信号
reg       [7:0] r_cnt =8'd0;
reg signed[31:0]o_data=32'd0;
reg             r_clk =1'b0;

always @(posedge i_clk)
begin
     if(!i_rst)//系统复位
     begin
     r_cnt<=8'd0;
     r_clk<=1'b0;
     end
else begin
          if(r_cnt==i_M/2-1)//分频
          begin
          r_clk<=~r_clk;
          r_cnt<=8'd0;
          end
     else begin
          r_cnt<=r_cnt+1'b1;
          r_clk<=r_clk; 
          end 
     end
end 

always @(posedge r_clk)
begin
     if(!i_rst)//系统复位
     begin
     o_data<=32'd0;
     end
else begin
     o_data<=i_data;//抽取
     end
end 


endmodule           

4.完整MATLAB/FPGA程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Facebook账号复审的问题。

Facebook账号复审主要指的就是&#xff1a; Facebook个人广告账号&#xff0c;或者是你的企业bn广告系统当中的 Facebook投手号。在投放广告的过程当中&#xff0c;因为违规。或者其他原因。 Facebook需要审核这个Facebook账号的主体。简单的说就是他的合法性。 所以会要求你。…

基于Peer-Group(对等体组)的BGP和 BGP水平分割路由反射器

目录 一、简介 二、基于Peer-Group的IBGP配置 三、基于Peer-Group的EBGP配置 四、IBGP的水平分割与路由反射器 1.水平分割概念 2.现象 【1】R3收到的路由信息如下&#xff1a; 【2】R2收到的路由信息如下&#xff1a; 这就是IBGP水平分割导致的现象&#xff01; 五、…

策略验证_卖出口诀_三种图线交叉点卖出股票需抢先

写在前面&#xff1a; 1. 本文中提到的“股票策略校验工具”的具体使用操作请查看该博文&#xff1b; 2. 文中知识内容来自书籍《同花顺炒股软件从入门到精通》 3. 本系列文章是用来学习技法&#xff0c;文中所得内容都仅仅只是作为演示功能使用 目录 解说 策略代码 结果 解…

m低信噪比下GPS信号的捕获算法研究,分别使用matlab和FPGA对算法进行仿真和硬件实现

目录 1.算法概述 2.仿真效果预览 3.MATLAB/FPGA部分代码预览 4.完整MATLAB/FPGA程序 1.算法概述 GPS卫星发送的信号一般由3个分量组成&#xff1a;载波、伪码和导航电文&#xff0c;其中伪码和导航电文采用BPSK技术去调制载波。GPS使用的两个L波段两种载频&#xff1a; 为了…

react学习随笔

创建react脚手架项目 方法一&#xff1a;在安装好nodejs的情况下 npm install -g create-react-app 全局安装react脚手架 create-react-app 项目名 创建一个新的react项目 方法二&#xff1a;直接安装 npx create-react-app 项目名 npx create-react-app 项目名 --template ty…

org.activiti.engine

org.activiti.engine目录概述需求&#xff1a;设计思路实现思路分析1.TaskService2.RuntimeService3.ProcessEngines4.ProcessEngineLifecycleListener5.ProcessEngines参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,…

详解Unity中的新版Nav Mesh|导航寻路系统 (三)

前言 通过前面两篇的介绍与讲解我们已经对新版NavMesh有了一个基础的了解和使用&#xff0c;本篇我们继续讲解剩余的两个组件NavMeshModifier、NavMeshModifierVolume&#xff0c;这两个组件是主要是用于影响导航网格的生成的。所以内容不是很主要&#xff0c;但也非常重要。 …

LQ0209 颠倒的价牌【枚举+进制】

题目来源&#xff1a;蓝桥杯2013初赛 C A组D题 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小李的店里专卖其它店中下架的样品电视机&#xff0c;可称为&#xff1a;样品电视专卖店。 其标价都是 4 位数字&am…

Pulsar bundle数目的选择

看到今年Pulsar 峰会上挺多人分享负载均衡的内容&#xff0c;这里也整理分享一下相关的内容。 实践中&#xff0c;我们都会 关闭 auto bundle split&#xff0c;保证系统稳定 Pulsar bundle split 是一个比较耗费资源的操作&#xff0c;会造成连接到这个 bundle 上的所有 pr…

SAP 物料分类账配置详解Part 1( 基于SAP S/4HANA1909 版本)

本文将详细介绍&#xff1a;SAP 物料分类账配置要点 &#xff0c;本系统使用的版本是&#xff1a; SAP S/4HANA1909 版本目录 1 物料分类账的后台配置 1.1 激活物料分类帐的评估区域 1.2 分配货币类型并定义物料分类帐类型 1.3 分配物料分类帐类型给评估范围 1.5 定义…

m基于MATLAB的通信系统仿真,包括信号源,载波信号,放大器,带宽滤波器,接收端包括放大器,带宽滤波器,载波解调,低通滤波器等

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 Interference : 200KHz Signal source: 需要在给出的一个excel 文档里调用&#xff0c;我对应的信号是第二竖栏&#xff0c;就是从B1到B60 里面所有的filter(滤波器)都是自己来选值&am…

驱动 私有数据传参点灯

1.在串口工具进行输入&#xff1a; echo 1 > /dev/myled0 ---->led1灯点亮 echo 0 > /dev/myled0 ---->led1灯熄灭 echo 1 > /dev/myled1 ---->led1灯点亮 echo 0 > /dev/myled1 ---->led1灯熄灭 echo 1 > /dev/myled2 ----…

243 h160 相交链表

题解 本题关键: acbbca // 243 h160 相交链表public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode pointAheadA,pointBheadB;int rount2;while (rount>0){if (pointApointB){return pointA;}pointApointA.next;pointBpointB.next;if (pointAnul…

【树莓派不吃灰】命令篇⑥ 了解树莓派Boot分区,学习Linux启动流程

目录1. Linux启动过程1.1 内核引导1.2 运行init初始化进程 —— 初始化系统环境1.3 运行级别 —— runlevel1.4 系统初始化 —— 加载开机启动程序1.5 用户登录1.5.1 方式1&#xff1a;命令行登录1.5.2 方式2&#xff1a;ssh登录&#xff08;常用&#xff09;1.5.3 方式3&#…

[附源码]计算机毕业设计JAVA恒星学院网络计费系统

[附源码]计算机毕业设计JAVA恒星学院网络计费系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

Lingo软硬件划分 实例

文章目录一、SM2 加密算法软硬件划分1.1 实验目标1.2 实验过程&#xff08;1&#xff09; 综合考虑使得系统整体性能最&#xff08;2&#xff09;只考虑硬面积&#xff0c;即系统硬件面积最小&#xff08;3&#xff09;只考虑功耗&#xff0c;即系统功耗最小&#xff08;4&…

SpringBoot实用开发篇复习4(实用开发篇完)

在上面一节&#xff0c;我们学习了SpringBoot整合第三方技术&#xff0c;这次我们主要学习监控技术&#xff0c;主要包含四个部分&#xff0c;分别为监控的意义&#xff0c;可视化监控平台&#xff0c;监控的原理&#xff0c;自定义监控指标等&#xff0c;下面一起来学习吧。 …

nodejs+vue+elementui前台美食网上订餐点菜系统 vscode项目

前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE 系统分为不同的层次&#xff1a;视图层&#xff08;vue页面&#xff09;&#xff0c;表现层&#xff08;控制器类&#xff09;&#xff0c;业务层&#xff08;接口类&#xff09;和持久层…

SSM框架+LayUi+Mysql实现的物流配送管理系统(功能包含分角色,登录/注册、车辆管理/路线管理/运单管理/调度安排/信息管理等)

博客目录SSM框架LayUiMysql实现的物流配送管理系统实现功能截图系统功能使用技术代码完整源码SSM框架LayUiMysql实现的物流配送管理系统 本系统为了解决物流平台的配送难题&#xff0c;将司机/物流配送的整体流程话&#xff0c;便于物流公司的统一管理&#xff0c;提高了物流日…

JUC学习笔记——共享模型之内存

在本系列内容中我们会对JUC做一个系统的学习&#xff0c;本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍&#xff1a; Java内存模型可见性模式之两阶段终止模式之Balking原理之指令级并行有序性volatile原理 Java内存模型 我们首先来介绍一下Java内存模型&#xf…