wuzhijun117420 发表于 2012-2-2 23:56

Butterworth低通滤波器设计错误

本帖最后由 wuzhijun117420 于 2012-2-3 09:20 编辑

向各位朋友请教一问题:本人在Butterworth低通滤波器设计时,采用以下语句绘出的频响中相位曲线不完整。大于60Hz,没有值。是不是说明这一设计无效。这到底是什么原因,以及如何处理。
=buttord(0.2,0.3,3,60);
=butter(ord,wn);
freqz(b,a,256,204.8); title('n=ord Butterworth Lowpass Filter')
谢谢大家!

wuzhijun117420 发表于 2012-2-3 00:12

本帖最后由 wuzhijun117420 于 2012-2-3 00:24 编辑

不瞒大家,其实我是想在matlab中设计一低通滤波器+下采样downsample降低上图信号的最大频率且同时降低分析数据量,如将最大频率从102.4降到20或25.6(如下图)。的确,decimate函数可以实现下采样且方便使用,但由于decimate下采样采用的是cheby1(Chebyshev Type I滤波器)实现下采样前的低通滤波。所以通带内波纹对原信号影响较大,会影响原来就不清晰的信号频谱峰。考虑到Butterworth滤波器通带平坦,不会对原信号通带内频谱产生影响。故而设计之。希望大家能够帮帮我,谢谢!

wuzhijun117420 发表于 2012-2-4 18:42

顺便问下,各位有没有利用fft进行数字滤波的。

wuzhijun117420 发表于 2012-2-5 13:00

%%%%%%%%算法1=fft+downsample函数%%%%%%%
%实现下采样downsample过程,识别效果好于resample函数,差于decimate函数.
%   temp1=fft(thist_noiseout,m);
%   temp1(,:)=0;;%注意temp1的第一个元素为直流分量.将中间高频分量滤掉.
%   thist_noiseout=ifft(temp1);
%   thist=downsample(thist_noiseout,4);%单纯取样,每隔4个数据取一个点.
%   clear temp1 thist_noiseout
%%%%%%%%%%%%%%算法1结束%%%%%%%%%%%%%%%%

%%%%% 算法2=Butter+downsample函数 %%%%%
%采用Butterworth滤波器滤波,再下采样.
%=buttord(0.2,0.25,3,60);%%阻带最大衰减60应如何设置.
%=butter(ord,wn);
%for j=1:n,
%    thist(:,j)=filtfilt(b,a,thist_noiseout(:,j));
%end
%thist=downsample(thist,4);%单纯取样,每隔4个数据取一个点.
%clear ord wn B A
%clear thist_noiseout
%%%%%%%%%%%%%%算法2结束%%%%%%%%%%%%%%%%

%%%%%%%%% 算法3=decimate函数 %%%%%%%%%%
%分析效果好于resample,可能因为resample中interp过程丢失了元数据信息.
%thist=zeros(m/4,n);
%for j=1:n,
%    thist(:,j)=decimate(thist_noiseout(:,j),4);
    %采样8阶Chebyshev滤波和filtfilt函数.
%end
%clear thist_noiseout
%%%%%%%%%%%%%%算法3结束%%%%%%%%%%%%%%%%
通过对比,以上三个函数滤波效果原来基本相同.cheby1滤波器通带波纹对信号通带影响原来可以忽略.

wuzhijun117420 发表于 2012-2-5 13:03

但butterworth设计时相位曲线不对好像不知是啥原因。希望高手给予解答,谢谢!

dufeng_dufeng 发表于 2014-4-1 20:00

2012 年的贴子,刚看到,decimate是cheby1,通带波纹rp=1dB,可以改成0.1,直接用这个函数,省得麻烦

守望1988 发表于 2014-11-24 21:03

看不到附件啊

小海豚zc 发表于 2015-4-16 17:24

wuzhijun117420 发表于 2012-2-5 13:03
但butterworth设计时相位曲线不对好像不知是啥原因。希望高手给予解答,谢谢!

请问 decimate 默认采用了8阶chebyshevI型低通滤波器压缩频带,那么 低通的截止频率是多少呢?如果不知道这个截止频率我怎么知道我所关注的频率是否被滤掉呢??
页: [1]
查看完整版本: Butterworth低通滤波器设计错误