FIR滤波器(芯片内运用)

文章介绍了如何在MATLAB中使用fdatool生成FIR滤波器参数,然后导出这些参数以供芯片使用。通过编写MATLAB代码生成混频数字信号,并将其导出到文本文件。在芯片内部,利用卷积运算实现滤波,展示了DSP上的处理结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于FIR滤波器在芯片内使用的话,我个人在学校里面的学习趋向于会使用(自己推理计算不太会)。所以我们要用就只能通过一些软件。

(1)MATLAB

(2)芯片和编译的软件

有了这两个基本就可以用了,接下来上干货。

第一步我们要在MATLAB生成FIR的参数

        打开MATLAB然后fdatool就会弹出一个界面

 按照这个里面左边的参数设置然后改变右边的通过频率啥的就可以了

第二步file然后Export这样参数就形成了,然后把这个参数导出来就可以了

第三步我是用的在MATLAB上生成一个混频的数字信号但是实际上是芯片ad或者传感器上获得数字信号

% clc;
% clear all;
% close all;

Fs = 1000e3;
Ts = 1/Fs;
F1 = 40e3;
F2 = 80e3;
F3 = 120e3;

T = 0.05;
t = 0:Ts:(T-Ts);
NN = length(t);

x_sig = sin(2*pi*F1*t) + sin(2*pi*F2*t) + sin(2*pi*F3*t);
subplot(211)
plot(t,x_sig)
subplot(212)
freq = (-NN/2+1:NN/2)/NN*Fs;
plot(freq/1e3,abs(fftshift(fft(x_sig))));


fid = fopen('x_sig.txt','w');
count = fprintf(fid, '%f,' ,x_sig);
fclose(fid)

fid = fopen('Num.txt','w');
count = fprintf(fid, '%f,' ,Num);
fclose(fid)

通过这个代码重复导出来就可以得到混频的数字信号

第四步 在芯片中用到这个FIR来使用

在芯片上使用我们要知道卷积在芯片中是什么,卷积计算就是相乘累加OK放图

 这样就可以得出来信号了

 主要就是这样,按照这个就可以得到滤波的数字信号了。

	for(i=65;i<10000;i++)
	{
		y_sign[i]=0;
		for(j=0;j<65;j++)
		{
			y_sign[i] +=  x_sign[i-j]*fir_x[j];
		}
	}

DSP上的结果

 

如果有用点个关注 , 谢谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值