[問題]FIR低通濾波器

看板MATLAB作者 (MIKAI)時間11年前 (2013/12/04 14:39), 編輯推噓2(209)
留言11則, 3人參與, 最新討論串1/1
小弟想寫一個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

12/05 21:22, , 1F
所有的係數都乘上同一個常數,就有gain了
12/05 21:22, 1F

12/05 21:23, , 2F
或是0dB的filter, 在輸出的地方再乘一值放大
12/05 21:23, 2F

12/11 10:11, , 3F
但是我的高頻的值不想放大 囧rz
12/11 10:11, 3F

12/11 10:35, , 4F
濾波器就是Pass的部分Gain=0dB 想要濾掉的部分Gain=-xdB
12/11 10:35, 4F

12/11 10:36, , 5F
-x 就是一開始設計的部分要處理好...不想放大就把要pass
12/11 10:36, 5F

12/11 10:37, , 6F
的Gain=ydB 要增加的部分 去設計出-x-ydB的濾波器後
12/11 10:37, 6F

12/11 10:37, , 7F
用前面推文的放數就_是有同樣的效果
12/11 10:37, 7F

12/11 10:41, , 8F
用前面推文的方式就可以達到你要效果
12/11 10:41, 8F

12/11 11:26, , 9F
所以是要設計一個濾波器 低頻xdb 高頻-ydb嗎?
12/11 11:26, 9F

12/13 14:51, , 10F
如果你想要低頻+10dB, 高頻-40dB,就先設計就先設計低頻0dB
12/13 14:51, 10F

12/13 14:51, , 11F
高頻-50dB的filter, 再把係數整個放大
12/13 14:51, 11F
文章代碼(AID): #1IdiunIe (MATLAB)
文章代碼(AID): #1IdiunIe (MATLAB)