如何进行滤波器比较程序设计及函数编写的详细资料概述

描述

给出课程第二章的程序示例,供大家学习。

%%%%%       信号滤波前后频谱特性比较程序       %%%%%%%

%%%%%              File: signal_fliter_sim2.m                %%%%%

%%%      date: 2016-10-24               author: 算法工匠      %%%

%%%                           程序说明

% 本程序完成多种滤波器设计以及滤波的等效实现过程。

% 比较滤波器的两种设计方法的差异。

clear all;

close all;

%%************            程序主体           *****************%%

format long;

%*************        Preparation part      *******************

fs = 2000;          % frequency sample

fre1 = 10;          % Hz

fre2 = 500;        % Hz

time = [1:1000];

%%%%%%           信号的产生         %%%%%%%%%%

%*****************  Filter initialization  ************************

sin_signal1 = sin(2*pi*fre1.*time/fs);                  

% 产生正弦信号1

sin_signal2 = sin(2*pi*fre2.*time/fs);                 

% 产生正弦信号2

sin_signal = sin_signal1 + sin_signal2;

figure(1)

plot((sin_signal),'-*');

figure(2)

plot(abs(fft(sin_signal)),'-*');

aaa = 1;  % 断点调试  

%%%%%          滤波器设计           %%%%%

% 设计一个低通的FIR滤波器,能够滤除900hz信号。

fir_order = 128;

fir_low_filter = fir1(fir_order,0.2);  % 窗函数法

% fir_low_filter = fir1(fir_order, 0.2);

fir_low_filter1 = fir1(fir_order,0.2,'low',chebwin(129,100));  

% 窗函数法 使用切比雪夫窗 100为带外抑制dB值

fre = [0 0.2 0.3 1];

amp = [1 1 0 0];

fir_low_filter2 = firpm(fir_order,fre,amp);  

% 最佳逼近法

figure(3)

freqz(fir_low_filter );

figure(4)

freqz(fir_low_filter1 );

title('使用切比雪夫窗函数');

figure(5)

freqz(fir_low_filter2 );

title('使用最佳逼近法设计');

aaa = 1;  % 断点调试

% 实现滤波

% filter signal

filter_sin_signal = filter(fir_low_filter,1,sin_signal); % 实现滤波

for i = 5:length(sin_signal)

filter_sin_signal1(i) =  sin_signal(i)*fir_low_filter(1) + sin_signal(i-1)*fir_low_filter(2) +sin_signal(i-2)*fir_low_filter(3) +sin_signal(i-3)*fir_low_filter(4) +sin_signal(i-4)*fir_low_filter(5) ;

end

figure(6)

plot(abs(fft(filter_sin_signal)),'-*');

figure(7)

plot(filter_sin_signal1,'-*');

figure(8)

plot(filter_sin_signal,'-*');

aaa = 1;  % 断点调试

%****************         end of file       **********************

%%%             结论

% 使用不同的窗来设计滤波器进行性能比较。

% 比较不同的滤波器设计方法带来的差异。

% 了解滤波的等效过程,分解为乘累加的过程。

休息一下!

201801记录:

本来已经写完了本篇系列文章,但公众号里面显示的格式不正确。虽然后台显示程序格式很工整,所以还是决定用图片的方式来再次展示程序!

因此,将程序转换为图片后,同学们就能在电脑或者手机上看到工整的程序了。

程序

程序

程序

程序

程序

程序中的断点调试语句很有用,能够帮助大家查找和定位程序的问题。

此时,

同学们还掌握了窗函数法吗?

最佳逼近法呢?

如果还不清楚,

请即刻去百度问问!

仿真课程目的就是为了将学到的知识用于实际,用仿真的方式能够强化知识点的消化。希望大家能够自己动手写一遍程序。

请谨记!

动手写一遍,

调试一下!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分