作者l055058 (MIKAI)
看板MATLAB
標題[問題]FIR低通濾波器
時間Wed Dec 4 14:39:42 2013
小弟想寫一個FIR的低通濾波器
初始的放大倍率想要調大(也就是大於0db)
但是程式碼中所使用到的fir1指令 沒辦法設定
底下是程式碼
clear;close all
ws=0.4 %stop band
n_hm=2 %filter length
%%plot hamming
b=fir1(n_hm-1,ws);
[h,omega]=freqz(b,1,512);
mag=20*log10(abs(h));
% figure(1)
subplot(211)
n_axis=[0:1:n_hm-1];
stem(n_axis,b);
line(n_axis,zeros(1,length(n_axis)));
xlabel('n');ylabel('h(n)');
title('Impulse sequencies coefficients');
subplot(212);
plot(omega/pi,mag);
axis([0 1 -80 5]);grid
xlabel('pi unit');ylabel('Magnitude or T(jw) (dB)');
title('FIR Lowpass Filter Designed Useing Hamming Window');
NUM=[b];
DEN=[1 zeros(1,n_hm)];
FR2=tf(NUM,DEN,-1);
figure(2)
% sigma(FR);hold on ;grid on;
sigma(FR2)
請問各位先進 程式碼如何做更改 或是需改成放大器呢?
我的目的是將訊號在低頻的時候能夠放大,高頻盡量小
感謝!!
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.13.133.146
推 bxxl:所有的係數都乘上同一個常數,就有gain了 12/05 21:22
→ bxxl:或是0dB的filter, 在輸出的地方再乘一值放大 12/05 21:23
→ l055058:但是我的高頻的值不想放大 囧rz 12/11 10:11
→ diggershi:濾波器就是Pass的部分Gain=0dB 想要濾掉的部分Gain=-xdB 12/11 10:35
→ diggershi:-x 就是一開始設計的部分要處理好...不想放大就把要pass 12/11 10:36
→ diggershi:的Gain=ydB 要增加的部分 去設計出-x-ydB的濾波器後 12/11 10:37
→ diggershi:用前面推文的放數就_是有同樣的效果 12/11 10:37
→ diggershi:用前面推文的方式就可以達到你要效果 12/11 10:41
→ l055058:所以是要設計一個濾波器 低頻xdb 高頻-ydb嗎? 12/11 11:26
推 bxxl:如果你想要低頻+10dB, 高頻-40dB,就先設計就先設計低頻0dB 12/13 14:51
→ bxxl:高頻-50dB的filter, 再把係數整個放大 12/13 14:51