matlab哈明窗带阻,用窗函数设计50Hz的FIR带阻滤波器
wlp=0.4999*pi;%下通帶截止頻率
wls=0.5*pi;%阻帶下限頻率
wus=0.5*pi;%阻帶上限頻率
wup=0.5*pi;%上通帶截止頻率
wc=[(wlp+wls)/2/pi,(wus+wup)/2/pi];%截止頻率在通帶和阻帶邊界頻率的中點
B=wls-wlp;%遷移域
N=ceil(12*pi/B)-1;%正向取整數(shù),根據(jù)過渡帶寬等于窗函數(shù)主瓣寬求窗函數(shù)的最小長度
n=0:N-1;
alpha=(N-1)/2;%求濾波器的相位延遲
m=n-alpha+eps;%eps為MATLAB系統(tǒng)的精度
%hd=sin(wc*m)/(m*pi);%求理想濾波器脈沖響應(yīng)??%維度不同,無法運(yùn)行
window=hamming(N);
[h1,w]=freqz(window,1)
figure(1);
subplot(2,1,1)
stem(window,'.');
xlabel('n');
title('海明窗函數(shù)');
subplot(2,1,2)
plot(w/pi,20*log(abs(h1)/abs(h1)))
grid on;
xlabel('w/pi');
ylabel('幅度(dB)');
title('海明窗函數(shù)頻譜');
hn=fir1(N-1,wc,'stop');
[h2,w]=freqz(hn,1,512);
figure(2);
subplot(2,1,1)
stem(n,hn,'.');
xlabel('n');
ylabel('h(n)');
title('海明窗函數(shù)單位脈沖響應(yīng)');
subplot(2,1,2)
plot(w/pi,20*log(abs(h2)/abs(h2(1))));
grid on;
xlabel('w/pi');
ylabel('幅度(dB)');
title('海明窗帶阻濾波器的幅度特性');
Ts=0.001;
fs=1/Ts;
x=sin(2*pi*50*n*Ts)+sin(2*pi*125*n*Ts);%原信號
y=x.*window';%加窗函數(shù)進(jìn)行濾波處理
xfft=fft(x,N);
xfft=xfft.*conj(xfft)/N;
y1=fft(y,N);
y2=y1.*conj(y1)/N;
figure(3);%濾除前后的信號對比。
subplot(2,2,1);plot(n,x);grid;
xlabel('時間 (s)');ylabel('幅度');title('輸入信號');
subplot(2,2,3);plot(n,y);grid;
xlabel('時間 (s)');ylabel('幅度');title('濾波器輸出');
subplot(2,2,2);plot(n*fs/N,xfft);axis([0 fs/2 min(xfft) max(xfft)]);grid;
xlabel('頻率 (Hz)');ylabel('Magnitude (dB)');title('輸入信號');
subplot(2,2,4);plot(n*fs/N,y2);axis([0 fs/2 min(y2) max(y2)]);grid;
xlabel('頻率 (Hz)');ylabel('Magnitude (dB)');title('濾波器輸出');
總結(jié)
以上是生活随笔為你收集整理的matlab哈明窗带阻,用窗函数设计50Hz的FIR带阻滤波器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PLL与DLL锁相环介绍
- 下一篇: 姚期智:这是一个“前所未有”的金融科技与