matlab灰度图像频域低通滤波,求助呀,哪位好心人。关于低通滤波器时域和频域的曲线图...

做的是10HKZ的低通滤波器,主要是想滤掉100HZH的噪声。但是时域图不对!哪里出问题了,帮帮忙~看看呗!谢谢啦

clear all;close all;clc;    %清除所有变量,窗口以及命令窗口内容

%数据处理函数部分

fs=500000000;       %采样频率

x=load('F:data.txt');%附件的代码数据

N=length(x);

a=mean(x);      %mean求向量元素的平均值

ac=x-a;%去掉直流分量的干扰

n=0:N-1;

t=n/fs;     %时间序列

figure(1);

subplot(211),plot(n,ac,'r');%时域的波形图

grid on;

f=n*fs/N;           %频率序列

nf=2^nextpow2(t);

%nf1=0:ceil(nf/2);

Yp=fft(ac,nf);

k=fs*linspace(0,1,nf)-fs/2;

% k=fs*linspace(0,1,nf)-fs/2;

subplot(212),plot(k,abs(Yp),'b');   %信号的频谱图

ws=10000;%通带截止频率

wp=20000;%阻带起始频率

ds=50;%阻带衰减

ws1=2*pi*ws/fs;%经采样后的通带截止角频率

wp1=2*pi*wp/fs; %阻带经采样后的通带截止角频率

wd=(wp1+ws1)/2;%归一化后的滤波器截止频率

nn=ceil(6.6*pi/(wp1-ws1));%利用7-3求滤波器长度

% Y=fir1(nn-1,wd/pi,hanning(nn));%滤波器时域函数

Y=fir1(nn-1,wd/pi,hanning(nn));%滤波器时域函数

signal=conv(x,Y);

subplot(212),plot(fs*nx,signal);

title('经滤后的信号时域图');

xlabel('时间');

ylabel('幅度');

grid on;

nx=(0:nn-1)/fs;

lx=2^nextpow2(nx);

Y1=fft(signal,lx);

k=(0:(lx-1))*fs/lx;

figure(2);

% subplot(2,1,1),plot(k,abs(Yp));   %信号的频谱图

% subplot(2,1,2),

plot(k,abs(Y1));   %信号的频谱图

title('滤波后信号频谱');

xlabel('频率');

ylabel('幅度');

grid on;

a70cbf5f56cb187f20fb09bae08ed3de.gif

2011-10-27 16:19 上传

点击文件名下载附件

361.84 KB, 下载次数: 3105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值