怎么用高通滤波器滤不掉高频部分啊
信号时域表达式为:y=A.*exp(-((2.^1.5).*(t-t0)/t00).^2).*cos(2*pi*fd*(t-t0)),频域表达式为:Y=(A*t0/4).*(pi/4).^0.5.*(exp(-(pi*(f-fd)*t0)/(2.^1.5)).^2) +exp(-(pi*(f+fd)*t0)/(2.^1.5)).^2) ) ,频域包含两个变量,一个是(f-fd),另一个是(f+fd),我用窗函数想把高频部分滤掉不行,不知道怎么才能把高频部分滤掉哪?请高人指教,谢谢!!程序如下:
clear
sf=2500000; %采样频率
deltat=1/sf; N=16384;
t=0:deltat:(N*deltat-deltat);
deltaf=sf/N;
fd=600000;Nf=20;% 多普勒频率 测量区条纹数
A=1;%B=0.000001;%信号幅值
t0=0.0015; t00=Nf/fd;%t0信号到达时间
fp1=800000; fp2=900000; %高通滤波器
wp=2*fp1/sf; %阻带截止频率
ws=2*fp2/sf; %通带起始频率
deltaw=ws-wp;%确定过度带宽
N0=ceil(6.2*pi/deltaw); %按汉宁窗计算滤波器长度N0,ceil是向上取整函数
N1=N0+mod(N0+1,2); %为实现第一类对偶滤波器,要确保其长度N1为奇数
n=N1-1; %滤波器的阶数
wn=(ws+wp)/2; %理想高通的截止频率
b=fir1(n,wn,'high',hanning(N1));
y=A.*exp(-((2.^1.5).*(t-t0)/t00).^2).*cos(2*pi*fd*(t-t0));
%单个粒子产生的光电流
y1 = filter(b,1,y);
y2=abs(fft(y));
y3=abs(fft(y1));
subplot(211)
plot(0:(sf/N):(sf-sf/N),y2);
subplot(212)
plot(0:(sf/N):(sf-sf/N),y3);
[ 本帖最后由 eight 于 2008-4-1 10:06 编辑 ] 问题:1、 这个程序运行完在0.6e6和1.9e6处有两个峰值,不想要1.9e6的值,怎么样才能把它去掉哪?
2、另外我加了个汉宁窗的低通滤波器,没有滤掉高频部分不说,信号的幅值还变的那么小是怎么回事?(加的是低通滤波器,程序标注错了) 采样频率是2500000(2.5e6),对信号进行FFT后,频谱只在0~1.25e6范围内,而1.9e6处的峰值是0.6e6对应的负频率处的值。 谢谢songzy41老师,老师言简意赅,佩服!!
主要是显示的问题,实信号的频域显示本来应该是从-sf/2:(sf/N):(sf/2-sf/N),将它显示在0:(sf/N):(sf-sf/N)就会出现问题。将信号改成复信号就好了:x=A.*exp(-((2.^1.5).*(t-t0)./t00).^2).*cos(j*2*pi*fd*(t-t0));
我不是学信号的,简单的问题也困扰好久,谢谢帮忙!!
页:
[1]