作者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
1F:推 bxxl:所有的系数都乘上同一个常数,就有gain了 12/05 21:22
2F:→ bxxl:或是0dB的filter, 在输出的地方再乘一值放大 12/05 21:23
3F:→ l055058:但是我的高频的值不想放大 囧rz 12/11 10:11
4F:→ diggershi:滤波器就是Pass的部分Gain=0dB 想要滤掉的部分Gain=-xdB 12/11 10:35
5F:→ diggershi:-x 就是一开始设计的部分要处理好...不想放大就把要pass 12/11 10:36
6F:→ diggershi:的Gain=ydB 要增加的部分 去设计出-x-ydB的滤波器後 12/11 10:37
7F:→ diggershi:用前面推文的放数就_是有同样的效果 12/11 10:37
8F:→ diggershi:用前面推文的方式就可以达到你要效果 12/11 10:41
9F:→ l055058:所以是要设计一个滤波器 低频xdb 高频-ydb吗? 12/11 11:26
10F:推 bxxl:如果你想要低频+10dB, 高频-40dB,就先设计就先设计低频0dB 12/13 14:51
11F:→ bxxl:高频-50dB的filter, 再把系数整个放大 12/13 14:51