|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 eecsseudl 于 2013-4-29 09:55 编辑
各位朋友,我的问题描述如下:
1、我需要验证不同点数(N)平均值滤波器的传输函数H(exp(jw)),具体为验证一个N=36点平均值滤波器H1(exp(jw)),和 一个N=4点H2(exp(jw)),级联N=8点平均值滤波器H3(exp(jw))的传输函数;
2、理论上,H1(exp(jw)) = H2(exp(jw)) * H3(exp(jw)),(由于知识基础上的原因,推导过程我并不清楚,但我用时域写的N点平均值滤波器函数对同一组输入数据做滤波,滤出数据是一样的,如果有朋友不吝赐教又不嫌小事麻烦,也不妨顺便给我补一下基础知识);
3、我计算出来的平均值滤波器传输函数为H(exp(jw)) = 1/N* (sum(exp(-jwn)), n is from 0 to (N-1);
4、我的matlab代码如下:
“
%verify the cascade of system Hw
%32 point average filter
N= 32; K= 500; k= 0: 1: K; w= pi* k/ K;
Hw= 0;
for n= 0: N-1;
Hw= Hw + exp(-j* w* n);
end
Hw = Hw/ N;
magHw= abs(Hw); angHw= angle(Hw);
hold on;plot(w/pi, magHw, 'red'); hold off;
%4 point average filter
N= 4; K= 500; k= 0: 1: K; w= pi* k/ K;
Hw2= 0;
for n= 0: N-1;
Hw2= Hw2 + exp(-j* w* n);
end
Hw2 = Hw2/ N;
magHw2= abs(Hw2); angHw2= angle(Hw2);
hold on;plot(w/pi, magHw2, 'black'); hold off;
%8 point average filter
N= 8; K= 500; k= 0: 1: K; w= pi* k/ K;
Hw3= 0;
for n= 0: N-1;
Hw3= Hw3 + exp(-j* w* n);
end
Hw3 = Hw3/ N;
magHw3= abs(Hw3); angHw3= angle(Hw3);
hold on;plot(w/pi, magHw3, 'green'); hold off;
%4 point and 8 point filter's cascade
Hwp= Hw2.* Hw3;
magHwp= abs(Hwp); angHwp= angle(Hwp);
hold on;plot(w/pi, magHwp, 'blue'); hold off;
”
5、
图中红色为H1(exp(jw))、黑色为H2(exp(jw))、绿色为H3(exp(jw))以及蓝色为H2(exp(jw)) .* H3(exp(jw)),显然不等于H1(exp(jw))。
6、因为自己再信号与系统这一块的基础知识上有欠缺,所以花了很多时间,还是找不到问题的所在,望友人相助~~
|
|