用matlab的fdatool设计滤波器,导出参数,然后在FPGA中设计滤波器的方法。
低通滤波器设计比较简单。这里主要讲设计插值滤波器的方法。插值滤波器的思路是先插值,后滤波;抽取滤波器是先滤波再抽取。插值又分为插0值和非0值,两者的差别就是频谱的谐波分量不同。如下图
figure2 --upsample (a,4,1); %插0 。明显看到谐波分量和主瓣一样高
figure3 --sample (a,4,1); %插非0 。和插0 相比,主频没差别,只是旁瓣差别大
在fdatool中设计好滤波器之后,利用
点击粘贴 复制,将两个图放到一起,比较。
Hd = fir_low;
b = filter (Hd,a_inter4);
将滤波后波形和滤波器之前数据比较,发现,旁瓣衰减较大,主瓣基本没有改变。说明滤波器设计比较理想。
在fdatool中设计滤波器的时候,先在MATLAB中插0,然后用插0 后数据来设计普通的低通滤波器。比如在图2的基础上设计低通滤波器。为什么要用图2的结果进行仿真呢。因为在很多设计实现中,都是先插0,后滤波。观察图2,主要是要滤波150K左右以及以后的波形,工程实现中,要将旁瓣和主瓣相差最少60db,同时要尽量减少主瓣的失真。