給出課程第二章的程序示例,供大家學(xué)習(xí)。
%%%%% 信號(hào)濾波前后頻譜特性比較程序 %%%%%%%
%%%%% File: signal_fliter_sim2.m %%%%%
%%% date: 2016-10-24 author: 算法工匠 %%%
%%% 程序說明
% 本程序完成多種濾波器設(shè)計(jì)以及濾波的等效實(shí)現(xiàn)過程。
% 比較濾波器的兩種設(shè)計(jì)方法的差異。
clear all;
close all;
%%************ 程序主體 *****************%%
format long;
%************* Preparation part *******************
fs = 2000; % frequency sample
fre1 = 10; % Hz
fre2 = 500; % Hz
time = [1:1000];
%%%%%% 信號(hào)的產(chǎn)生 %%%%%%%%%%
%***************** Filter initialization ************************
sin_signal1 = sin(2*pi*fre1.*time/fs);
% 產(chǎn)生正弦信號(hào)1
sin_signal2 = sin(2*pi*fre2.*time/fs);
% 產(chǎn)生正弦信號(hào)2
sin_signal = sin_signal1 + sin_signal2;
figure(1)
plot((sin_signal),'-*');
figure(2)
plot(abs(fft(sin_signal)),'-*');
aaa = 1; % 斷點(diǎn)調(diào)試
%%%%% 濾波器設(shè)計(jì) %%%%%
% 設(shè)計(jì)一個(gè)低通的FIR濾波器,能夠?yàn)V除900hz信號(hào)。
fir_order = 128;
fir_low_filter = fir1(fir_order,0.2); % 窗函數(shù)法
% fir_low_filter = fir1(fir_order, 0.2);
fir_low_filter1 = fir1(fir_order,0.2,'low',chebwin(129,100));
% 窗函數(shù)法 使用切比雪夫窗 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('使用切比雪夫窗函數(shù)');
figure(5)
freqz(fir_low_filter2 );
title('使用最佳逼近法設(shè)計(jì)');
aaa = 1; % 斷點(diǎn)調(diào)試
% 實(shí)現(xiàn)濾波
% filter signal
filter_sin_signal = filter(fir_low_filter,1,sin_signal); % 實(shí)現(xiàn)濾波
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; % 斷點(diǎn)調(diào)試
%**************** end of file **********************
%%% 結(jié)論
% 使用不同的窗來設(shè)計(jì)濾波器進(jìn)行性能比較。
% 比較不同的濾波器設(shè)計(jì)方法帶來的差異。
% 了解濾波的等效過程,分解為乘累加的過程。
休息一下!
201801記錄:
本來已經(jīng)寫完了本篇系列文章,但公眾號(hào)里面顯示的格式不正確。雖然后臺(tái)顯示程序格式很工整,所以還是決定用圖片的方式來再次展示程序!
因此,將程序轉(zhuǎn)換為圖片后,同學(xué)們就能在電腦或者手機(jī)上看到工整的程序了。





程序中的斷點(diǎn)調(diào)試語句很有用,能夠幫助大家查找和定位程序的問題。
此時(shí),
同學(xué)們還掌握了窗函數(shù)法嗎?
最佳逼近法呢?
如果還不清楚,
請(qǐng)即刻去百度問問!
仿真課程目的就是為了將學(xué)到的知識(shí)用于實(shí)際,用仿真的方式能夠強(qiáng)化知識(shí)點(diǎn)的消化。希望大家能夠自己動(dòng)手寫一遍程序。
請(qǐng)謹(jǐn)記!
動(dòng)手寫一遍,
調(diào)試一下!
-
濾波器
+關(guān)注
關(guān)注
162文章
8411瀏覽量
185690 -
程序
+關(guān)注
關(guān)注
117文章
3846瀏覽量
85232 -
斷點(diǎn)
+關(guān)注
關(guān)注
0文章
12瀏覽量
8070
原文標(biāo)題:數(shù)字信號(hào)處理之信號(hào)處理仿真 第二章 濾波器設(shè)計(jì)及函數(shù)編寫(2)
文章出處:【微信號(hào):gh_30373fc74387,微信公眾號(hào):通信工程師專輯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
單片機(jī)C語言程序設(shè)計(jì)的20例基礎(chǔ)程序設(shè)計(jì)詳細(xì)資料概述
基于STM32單片機(jī)的生日快樂音頻播放程序設(shè)計(jì)的詳細(xì)資料概述
C++語言入門教程之C++語言程序設(shè)計(jì)函數(shù)的詳細(xì)資料概述免費(fèi)下載
如何進(jìn)行MCS-51匯編語言程序設(shè)計(jì)?詳細(xì)資料概述
C語言實(shí)例教程之如何進(jìn)行簡(jiǎn)單的程序設(shè)計(jì)詳細(xì)資料免費(fèi)下載
有源濾波器的仿真詳細(xì)資料免費(fèi)下載
C語言教程之如何選擇結(jié)構(gòu)程序設(shè)計(jì)的詳細(xì)資料概述
C語言程序設(shè)計(jì)教程之C語言基礎(chǔ)的詳細(xì)資料概述
C語言程序設(shè)計(jì)教程之如何進(jìn)行函數(shù)與編譯預(yù)處理資料概述
C語言程序設(shè)計(jì)教程課件之函數(shù)的詳細(xì)資料說明
C++程序設(shè)計(jì)教程之基于對(duì)象的程序設(shè)計(jì)的詳細(xì)資料說明
如何進(jìn)行PLC控制程序的設(shè)計(jì)詳細(xì)資料PPT說明
使用DSP進(jìn)行FIR數(shù)字濾波器設(shè)計(jì)的詳細(xì)資料論文免費(fèi)下載
如何進(jìn)行濾波器比較程序設(shè)計(jì)及函數(shù)編寫的詳細(xì)資料概述
評(píng)論