当前位置: 首页 > article >正文

关于FPGA中添加FIR IP核(采用了GOWIN EDA)

文章目录

  • 前言
  • 一、IP核
  • 二、MATLAB文件
  • 三、导出系数COE文件
    • 1.设计滤波器
    • 2.用官方的matlab代码或者直接用文本文件
  • 四、进行模块化设计
  • 源文件


前言

FIR滤波器的特点是其输出信号是输入信号的加权和,权值由滤波器的系数决定。每个系数代表了滤波器在特定延迟位置上的“权重”,这些系数通常是根据特定的设计要求(例如频率响应、带宽、滤波器类型等)计算得出的。故需要手动导入COE的系数文件


提示:以下是本篇文章正文内容,下面案例可供参考

一、IP核

二、MATLAB文件

这里想制作一个22阶的全通滤波器,代码如下

% 定义滤波器阶数
n = 22;

% 定义归一化频率范围
w = [-1 1];

% 使用 cfirpm 函数设计全通滤波器
b = cfirpm(n, w, 'allpass');

IP核直接设计这个滤波器,发现IP核导入需要COE文件
在这里插入图片描述

三、导出系数COE文件

MATLAB可以直接生成COE文件,这里提供几种方式

1.设计滤波器

在matlab中的fliter design设计滤波器
在这里插入图片描述
这个滤波器的衰减在0.15dB左右,可认为是幅度不变的全通,相位随着频率增大而滞后

在这里插入图片描述
如果是XILINX的COE可以直接从这里导出文件

2.用官方的matlab代码或者直接用文本文件

%creat number of FIR%
%first channel
N=23;
fs0=96000;
fpass0=48000;
wn_fpass0=fpass0/fs0;

%second channel
fs1=96000;
fpass1=48000;
wn_fpass1=fpass1/fs1;

%generate FIR Coeff
coeff0=fir1(N-1,wn_fpass0,'low');
coeff1=fir1(N-1,wn_fpass1,'low');

%convert
coeff_width=18;
scaled_width=coeff_width-1;
coeff0_fi=round(coeff0*2^scaled_width);
coeff1_fi=round(coeff1*2^scaled_width);

%save
file_name='./coeff.dat';
fid=fopen(file_name,'w');
fprintf(fid,'%d\n',[coeff0_fi,coeff1_fi]);
fclose(fid);

生成滤波器系数文件,然后导入
这里需要注意,抽头数=阶数+1,而且双通道的抽头数(Taps number)是总的抽头数,例如22阶滤波器抽头数为(22+1)*2=46

四、进行模块化设计

最后需要在top文件中进行例化


源文件

高云参考:https://www.gowinsemi.com.cn/enrollment_view.aspx?TypeId=67&Id=560&FId=t27:67:27#IP


http://www.kler.cn/a/472027.html

相关文章:

  • Linux下文件重定向
  • flink cdc oceanbase(binlog模式)
  • 51单片机——中断(重点)
  • asp.net core中的 Cookie 和 Session
  • 寒假刷题Day1
  • Python学习笔记:显示进度条
  • 使用宝塔面板,安装 Nginx、MySQL 和 Node.js
  • 后端Java开发:第十天
  • 【Linux】进程概念(PCB)与进程创建(fork)
  • 策略模式(Stragety Pattern)
  • PostgreSQL 运维的难与“难” --上海PG大会主题记录
  • Cloudflare IP 优选工具:轻松找到最快的 CDN 节点
  • Unity 3D游戏开发从入门进阶到高级
  • 【蓝桥真题练习】蓝桥杯 2021 国赛 A 组 E 题
  • 云商城--业务+架构学习和环境准备
  • php 多进程那点事,用 swoole 如何解决呢 ?
  • 【Cocos TypeScript 零基础 5.1】
  • win下搭建elk并集成springboot
  • 未来趋势:电商平台API接口的智能化与自动化发展
  • MYSQL----------MySQL权限管理
  • get和post有什么区别
  • 解决LNMP环境下PHP使用freetds扩展连接SqlServer数据库乱码问题
  • 现代谱估计的原理及MATLAB仿真(二)(AR模型法、MVDR法、MUSIC法)
  • 超市管理系统(javaweb+mysql+redis)
  • VSCode 使用鼠标滚轮控制字体
  • 【商城的功能开发】