1.算法概述
MATLAB系統(tǒng)供了許多工具箱(Toolbox),借助于信號(hào)處理工具箱(signal processing)中的freqz_m涩笤,remez等函數(shù)嚼吞,使得FIR數(shù)字濾波器的設(shè)計(jì)大為簡(jiǎn)化,每個(gè)程序都只有短短的幾十行蹬碧。因此實(shí)用MATLAB進(jìn)行濾波器的設(shè)計(jì)變得十分簡(jiǎn)便舱禽。本文分析了國(guó)內(nèi)外數(shù)字濾波技術(shù)的應(yīng)用現(xiàn)狀與發(fā)展趨勢(shì),介紹了數(shù)字濾波器的基本結(jié)構(gòu)恩沽,數(shù)字濾波器根據(jù)其沖激響應(yīng)函數(shù)的時(shí)域特性誊稚,可分為兩種,即無限長(zhǎng)沖激響應(yīng)(IIR)濾波器和有限長(zhǎng)沖激響應(yīng)(FIR)濾波器罗心。討論了IIR與FIR數(shù)字濾波器的設(shè)計(jì)方法里伯。本文利用matlab的強(qiáng)大計(jì)算功能和信號(hào)數(shù)據(jù)處理功能,本文用matlab設(shè)計(jì)的數(shù)字濾波器對(duì)信號(hào)進(jìn)行濾波降噪處理渤闷,并對(duì)實(shí)驗(yàn)方法的改進(jìn)展開了討論疾瓮。
·有限沖擊響應(yīng)(Finite Impulse Response,F(xiàn)IR)濾波器
有限長(zhǎng)沖擊響應(yīng)濾波器飒箭,即FIR濾波器狼电,是指離散系統(tǒng)的單位沖擊響應(yīng)h(k)是一個(gè)有限長(zhǎng)的序列,即系統(tǒng)的單位沖擊響應(yīng)只在給定的時(shí)間區(qū)間里有非零值弦蹂。FIR濾波器的單位抽樣響應(yīng)為有限長(zhǎng)度肩碟,一般采用非遞歸形式實(shí)現(xiàn)。通常的FIR數(shù)字濾波器有橫截性和級(jí)聯(lián)型兩種凸椿。
無限沖擊響應(yīng)濾波器削祈,即IIR濾波器,是指離散系統(tǒng)的單位沖擊響應(yīng)h(k)是一個(gè)無限長(zhǎng)的時(shí)間序列削饵。這種濾波器濾波的實(shí)現(xiàn)結(jié)構(gòu)與一般數(shù)字濾波器的結(jié)構(gòu)相同岩瘦。一個(gè)數(shù)字濾波器可以用系統(tǒng)函數(shù)表示為:
可見數(shù)字濾波器的功能就是把輸入序列x(n)通過一定的運(yùn)算變換成輸出序列y(n)未巫。不同的運(yùn)算處理方法決定了濾波器實(shí)現(xiàn)結(jié)構(gòu)的不同。無限沖激響應(yīng)濾波器的單位抽樣響應(yīng)h(n)是無限長(zhǎng)的启昧,其差分方程如(2-2)式所示叙凡,是遞歸式的,即結(jié)構(gòu)上存在著輸出信號(hào)到輸入信號(hào)的反饋密末,其系統(tǒng)函數(shù)具有(2-1)式的形式握爷,因此在z平面的有限區(qū)間(0<︱z︱<∞)有極點(diǎn)存在。
2.仿真效果預(yù)覽
matlab2022a仿真
3.MATLAB部分代碼預(yù)覽
............................................................
%k=input('請(qǐng)選擇窗的類型:\n 1严里、矩形窗\n 2新啼、漢寧窗\n 3、漢明窗\n 4刹碾、布拉克曼窗\n');
k=2
switch k
case 1
x=win(0,N-1,0,N-1); ??????????????????????%矩形窗
figure,
subplot(1,2,1);
stem(n,x,'.'); ???????????????????????????%得到數(shù)字信號(hào)波形表示方法函數(shù)STEM
xlabel('n'); ?????????????????????????????%X坐標(biāo)標(biāo)簽
ylabel('x'); ?????????????????????????????%Y坐標(biāo)標(biāo)簽
string=['矩形窗時(shí)域圖形','N=',num2str(N)];%波形標(biāo)題
text((0.6*N),0.8,string); ????????????????%波形標(biāo)題
[H,m]=freqz(x,[1],1024,'whole'); ?????????%求其頻率響應(yīng)
mag=abs(H); ??????????????????????????????%得到幅值
db=20*log10((mag+eps)/max(mag));
subplot(1,2,2);
plot(m/pi,db);
xlabel('w/pi');
ylabel('dB');
title('矩形窗的頻率特性(db)');
axis([0,1,-100,0]);
string=['矩形窗','N=',num2str(N)];
%==================================================================
case 2
x=win(0,N-1,0,N-1);
x=(0.5-0.5*cos(2*pi*n/(N-1))).*x;
figure,
subplot(1,2,1);
stem(n,x,'.');
xlabel('n');
ylabel('x');
string=['漢寧窗時(shí)域圖形','N=',num2str(N)];
text((0.6*N),0.8,string);
[H,m]=freqz(x,[1],1024,'whole'); %求其頻率響應(yīng)
mag=abs(H); %得到幅值
db=20*log10((mag+eps)/max(mag));
subplot(1,2,2);
plot(m/pi,db);
xlabel('w/pi');
ylabel('dB');
title('漢寧窗的頻率特性(db)');
axis([0,1,-100,0]);
string=['漢寧窗','N=',num2str(N)];
figure(3);[B,A]=fir1(N,Wn,'low',hann(N+1));y_Win=filter(B,A,y);plotspec(y_Win,Ts); ?????????????
case 3
x=win(0,N-1,0,N-1);
x=(0.54-0.46*cos(2*pi*n/(N-1))).*x;
figure,
subplot(1,2,1);
stem(n,x,'.');
xlabel('n');
ylabel('x');
string=['漢明窗時(shí)域圖形','N=',num2str(N)];
text((0.6*N),0.8,string);
[H,m]=freqz(x,[1],1024,'whole'); %求其頻率響應(yīng)
mag=abs(H); %得到幅值
db=20*log10((mag+eps)/max(mag));
subplot(1,2,2);
plot(m/pi,db);
xlabel('w/pi');
ylabel('dB');
title('漢明窗的頻率特性(db)');
axis([0,1,-100,0]);
string=['漢明窗','N=',num2str(N)];
figure(3);[B,A]=fir1(N,Wn,'low',hamming(N+1));y_Win=filter(B,A,y);plotspec(y_Win,Ts); ?????????????
case 4
x=win(0,N-1,0,N-1);
x=(0.42-0.5*cos(2*pi*n/(N-1))+0.08*cos(4*pi*n/(N-1))).*x;
figure,
subplot(1,2,1);
stem(n,x,'.');
xlabel('n');
ylabel('x');
string=['布拉克曼窗時(shí)域圖形','N=',num2str(N)];
text((0.6*N),0.8,string);
[H,m]=freqz(x,[1],1024,'whole'); %求其頻率響應(yīng)
mag=abs(H); %得到幅值
db=20*log10((mag+eps)/max(mag));
subplot(1,2,2);
plot(m/pi,db);
xlabel('w/pi');
ylabel('dB');
title('布拉克曼窗的頻率特性(db)');
axis([0,1,-100,0]);
string=['布拉克曼窗','N=',num2str(N)];
figure(3);[B,A]=fir1(N,Wn,'low',blackman(N+1));y_Win=filter(B,A,y);plotspec(y_Win,Ts); ?????????????
end
01-018M