重工电子论坛

标题: 简单FIR例子 [打印本页]

作者: 李维强-15级    时间: 2016-7-1 20:22
标题: 简单FIR例子
做FIR 仿真   遇到个简单概念性问题 希望得到解答
总体问题描述:
我设计一个低通滤波器 127阶(MATLAB算出来的)  截止频率1K  目的是为了 滤去高频信号   
我信号源是 一个900HZ和1200HZ相加  幅值都是0V-3V   这个相加后的信号 通过滤波器后 还原到900HZ的信号
以上还原没问题
但是 我同样让两个信号 相乘   通过滤波器 还原出来的信号就有问题了   想搞清楚为什么

============================================================================
以下是我的流程
matlab算出这个滤波器

然后得到这个127阶的参数,在下面的文件里面,直接拖拽的MATLAB命令行里面就可以看到了,记事本打开也可以,只不过格式有点乱
里面是1000的截止频率   到1200HZ的时候下降80db  采样频率10K
FIR参数.rar (1.31 KB, 下载次数: 9)

然后构建我们的信号源
Vi1=1.5*SIN(2*PI*900*i*100/1000000)+1.5   ; 这个目的是吧它抬起来在0-3V之间,因为单片机采样幅度范围在这个里面。 其中 i 表示第几个采样点,PI=3.14159,100/1000000表示10k的采样周期,900表示信号频率为900HZ

Vi2=1.5*SIN(2*PI*1500*i*100/1000000 +2)+1.5 ; 参数意思和上面一样,+2是我人为的移相了下

然后我把两个信号源加起来  VI=Vi1+Vi2; 把VI输入滤波器 ,滤波器输出后能够还原到Vi1的信号,

上图  红色的是1500HZ的波形,蓝色的是900HZ的波形 ,然后他们两个相加过后的波形如下


然后我把这个相加后的波形,通过滤波器,就把1500HZ的滤去,剩下900HZ的,滤去过后的如下图

上图中  蓝色的是滤波之前900Hz的信号,棕色的是滤波过后的信号,我人为的把滤波器增益设置为0.5的。所以幅值小了点,过滤波器相位也有偏移。总之把1500的滤去了



下面问题来老

我把VI=Vi1*Vi2  ,得到的波形如下图

然后我把它通过滤波器 想滤去1500HZ的波形 结果。。。


=======================================================
原因分析:
因为波形相乘过后,把那个1.5的直流分量乘进去了,如果我把两个信号源的1.5V的直流分量去除掉,同样可以滤除1500的那个高频信号,但是做乘法的时候为什么会被直流分量影响?










作者: 李维强-15级    时间: 2016-7-3 14:56
fir这么简单 为什么书上写得这么复杂??
http://www.zhihu.com/question/29945169?sort=created
上面这个帖子,讲述了,为什么我们教材上面要花这么大的功夫去讲 最后实现起来这么简单的例子,原因是我们简单玩玩可以,也可以解决很多实际问题了,但是那个参数啷个来的,如何去实现动态的滤波,这个却是个问题了。
作者: 李维强-15级    时间: 2016-7-22 19:44
FIR模拟.rar (143.23 KB, 下载次数: 11)




欢迎光临 重工电子论坛 (http://cqutlab.cn/) Powered by Discuz! X3.1