數字訊號處理(2) 數字濾波器

2021-10-17 01:53:55 字數 3511 閱讀 4407

數字濾波器是由數字乘法器、加法器和延時單元組成的一種演算法或裝置。數字濾波器的功能是對輸入離散訊號的數字**進行運算處理,以達到改變訊號頻譜的目的。

其對應的差分方程為:(其中x(n)為系統輸入,y(n)為系統的輸出)

將h(z)公式中的z換為ejw,可以求得w在(0~π)區間的頻域響應

使用matlab中的freqz函式可以直接繪製出數字濾波器的頻域響應曲線。

數字濾波器包括有限長衝激響應(fir)濾波器、無限長衝激響應(iir)濾波器。fir濾波器的a(1)=1,a(2)…a(n+1)都為0,fir濾波器只對輸入訊號進行處理,因此具有穩定性;iir濾波器由於引入了輸出訊號的反饋,因此存在不穩定性。

fir濾波器在工程中更為常用,matlab程式演示fir濾波器的設計。

clc

clear

close all

n=512; % 訊號長度

fs=1e6; % 取樣頻率

dt=1/fs; % 取樣間隔

t=(0:n-1)*dt; % 時間序列

f1=15e3; % 訊號頻率1 /hz

f2=50e3; % 訊號頻率2 /hz

xn=2*cos(2*pi*f1*t)+cos(2*pi*f2*t+0.5*pi+1)

;% 15khz+50khz

%% fir濾波器設計

filterlen = 128; % 濾波器長度

filterstep = filterlen-1; % 濾波器階數

freqstart=10e3;% 低截止頻率

freqend =20e3;% 高截止頻率

w1 = freqstart/fs*2*pi;% 歸一化

w2 = freqend /fs*2*pi;% 歸一化

window = ones(filterlen,1)

;% 矩形窗

% window = hanning(filterlen)

;% 漢寧窗

% window = blackman(filterlen)

;% 布萊克曼窗

% hn = fir1(filterstep,w2/pi,'low',window)

; % 生成低通濾波器

% hn = fir1(filterstep,w2/pi,'high',window)

; % 生成高通濾波器

hn = fir1(filterstep,[w1/pi,w2/pi],'bandpass',window)

;% 生成帶通濾波器

% hn = fir1(filterstep,[w1/pi,w2/pi],'stop',window)

; % 生成帶阻濾波器

figure;

freqz(hn,1)

;% 繪製歸一化的濾波器的特性曲線

figure;

subplot(3,2,3)

;plot(hn,'o-');

xlabel(

'點數/n');

title(

'濾波器時域圖');

subplot(3,2,1)

;plot(t,xn)

;xlabel();

title(

'原始訊號');

%% fft分析原始訊號

nn=512;% nn點dft

xn=fft(xn,nn)/nn;% 計算signal的nn點快速傅利葉變換

f0=fs/nn; % 頻率解析度

f=(0:nn-1)*f0; % 頻率序列

fk=(0:nn-1)

; % 譜線序列

a=abs(xn)

; % 幅值序列

phase=atan(-real(xn)./imag(xn))/pi*180; % 相位序列

subplot(3,2,2)

;plot(f(1:nn/2),a(1:nn/2))

;xlabel(

'頻率/hz'

);ylabel(

'幅度');

title(

'原始訊號頻譜');

%% filtering

% 方法1:

% yn = conv(xn,hn)

;% 對原始序列和濾波器序列求卷積得到濾波後的結果

% yn = yn(filterlen/2:filterlen/2+n-1)

;% 濾波結果是居中的資料

% 方法2:

% 矩陣法計算卷積

a = n;

b = filterlen+n-1;

hn = zeros(a,b)

;% 初始化乙個a行b列的矩陣

for i=1:a

for j=1:filterlen

hn(i,j+i-1)

= hn(j)

; end

endyn=xn*hn;

yn = yn(filterlen/2:filterlen/2+n-1);

subplot(3,2,5)

;plot(t,yn)

;xlabel();

title(

'濾波器輸出訊號');

%% fft分析輸出訊號

nn=512;% nn點dft

xn=fft(yn,nn)/nn;% 計算signal的nn點快速傅利葉變換

f0=fs/nn; % 頻率解析度

f=(0:nn-1)*f0; % 頻率序列

fk=(0:nn-1)

; % 譜線序列

a=abs(xn)

; % 幅值序列

phase=atan(-real(xn)./imag(xn))/pi*180; % 相位序列

subplot(3,2,6)

;plot(f(1:nn/2),a(1:nn/2))

;xlabel(

'頻率/hz'

);ylabel(

'幅度');

title(

'輸出訊號頻譜');

%% 濾波器引數存為txt檔案

fid=fopen(

'hn.txt','w'

); %需要改檔名稱的地方

count=fprintf(fid,'%d\n',round(hn*65536))

; %需要匯出的資料名稱

數字訊號處理 數字濾波器

輸入訊號中有用的頻率成分和洗完濾除的成分個占有不同的頻帶,通過濾波器選頻實現濾波目的 如高通濾波器,帶通濾波器,低通濾波器等等 訊號和干擾的頻譜會相互重疊,需要根據隨機訊號的統計特性,在某種準則下最大限度地抑制干擾,恢復訊號,達到濾波目的.寫出系統幅頻特性函式 h e h z big 令 omega...

數字訊號處理 7 5 FIR數字濾波器

當系統嚴格要求線性相位時,採用fir濾波器,因為達到同樣的效果,fir的階數比iir高很多。線性相位條件 單位衝激響應h n 序列以n n 1 2為偶對稱中心,群延遲延時t n 1 2,即以t為抽樣週期。奇對稱。與上面不同的是,產生了固定相移 pi 2 偶對稱時,具有準確的線性相位 n 1 2個抽樣...

數字訊號處理實驗(四) 數字濾波器結構

目錄 一 實驗目的 二 實驗內容及要求 1.數字濾波器的級聯結構 2.數字濾波器的併聯結構 三 實驗結果及問題回答 1.數字濾波器的級聯結構 2.數字濾波器的併聯結構 使用相互連線的基本結構塊的結構表示,是線性時不變數字濾波器的硬體或軟體實現中的第一步。本實驗掌握用mat lab對fir和iir傳輸...