24小时热门版块排行榜    

查看: 1460  |  回复: 5

zhang66h

铁虫 (正式写手)

[求助] 为什么信号经过通带的频率成分还衰减那么大跟通过阻带的差不多(第一次发帖帮帮忙)

用窗函数法设计的FIR数字带通滤波器为

假设信号为10Hz的正弦 噪声为1、2、3、4、5Hz的正弦
滤波后,滤波器输出为

滤波器输出的频谱

10Hz的信号在通带内 衰减为0 应该不衰减,而1-5Hz的噪声应该衰减很大
不应该像频谱显示的那样 衰减差不多
大家帮帮忙 懂的告诉我 谢谢了~

[ Last edited by zhang66h on 2011-10-14 at 17:08 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feng_zc

木虫 (正式写手)

把你的程序贴出来看看
2楼2011-10-14 21:01:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhang66h

铁虫 (正式写手)

引用回帖:
2楼: Originally posted by feng_zc at 2011-10-14 21:01:28:
把你的程序贴出来看看

clc;clf;clear;
fc=10;
fs=1000;
dt=1/fs;
t=0:dt:10-dt;
N=length(t);
x1=sin(2*pi*fc*t);
noise=1*(sin(2*pi*1*t)+sin(2*pi*2*t)+sin(2*pi*3*t)+sin(2*pi*4*t)+sin(2*pi*5*t));
x=x1+noise;

% BP filter
fs1=30;
nn=512;
B=0.5/fs1*2*pi;
n=ceil(12*pi/B);
w1=7.5/fs1*2;
w2=12.5/fs1*2;
wn=[w1,w2];
w=blackman(n);
b=fir1(n-1,wn,w);
freqz(b,1,nn,fs1)

figure (2)
nfft=512*8;
window=blackman(N);
periodogram(x1,window,nfft,fs);
figure (3)
window=blackman(N);
periodogram(x,window,nfft,fs);

y=filter(b,1,x);
figure (4)
subplot(3,1,1)                 % 原始信号
plot(t,x1); ylabel('原始信号');
subplot(3,1,2)                 % 输入信号含噪声
plot(t,x); ylabel('输入信号含噪声');
subplot(3,1,3)                 % 滤波器输出信号
plot(t,y); ylabel('滤波器输出信号');

figure (5)
window=blackman(N);
periodogram(y,window,nfft,fs);
3楼2011-10-14 21:13:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feng_zc

木虫 (正式写手)

【答案】应助回帖

zhang66h(金币+10): 采样频率有点高 之所以两个采样率不一样是因为 把它当成两个部分了 滤波器的采样率低 阶数就相应的低了 2011-10-15 12:08:15
你的程序至少有2个问题:
1.采样率不一致:你的信号采样率是fs=1000 Hz,而你的fir滤波器的采样率是fs1=30 Hz,让fs1=fs后,仿真结果就OK了。数字信号处理必须统一采样率。
2.你的滤波器阶数很高,输出时延大,前半部幅度很小,需要加大信号的采样时长。
4楼2011-10-15 11:46:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
5楼2012-02-23 17:42:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Yoloft

新虫 (初入文坛)

我遇到的问题和你一样,感谢解答!
6楼2012-04-14 18:27:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhang66h 的主题更新
信息提示
请填处理意见