低通FIR滤波器实现
本节涵盖MATLAB源代码低通FIR滤波器matlab代码.它涵盖了滤波器设计使用firrcos函数和matlab FDA工具。
使用FIRRCOS MATLAB函数
FFT_size = 1024;
t = 0:0.001:(FFT_size-1) / 1000;
x =罪(2 *π* 50 * t) +罪(2 *π* 200 * t);
多项式系数= firrcos (50100, 1000);
y = conv (x,多项式系数);
日元= fft (y, 1024);
图;情节(abs (fft (x, 1024)));
人物,情节(abs (y1));
这里我们将输入信号作为50hz和200hz的两个正弦波峰值。因此,如果我们让这个信号通过低通FIR滤波器,那么超过截止频率的频率应该被消除。这里FFT的长度是1024。在本实现中,我们使用MATLAB预定义函数来生成滤波器设计的系数。
多项式系数= firrcos (n, fc, bw, fs);
在那里,
'n' -过滤器的阶数。N是正整数。
'fc' -过滤器的截止频率。Fc必须大于0且小于fs/2。
'bw' -转换带宽。Bw必须大于0。
[fc-bw/2, fc+bw/2]必须在[0,fs/2]范围内。
'fs' -采样频率。Fs必须大于0。
在这里,我们还使用“conv”预定义函数将输入信号与系数进行卷积,以得到时域输出。
y = conv (x,多项式系数);
在那里,
'x' -输入信号。
“coeff”——系数。
在得到这个卷积输出('y')之后,然后绘制FFT输出(y)的图形以及FFT输入(x)。对时域信号进行FFT变换,将时域信号转换为频域信号。
图1:50hz和200hz频域输入信号(x)
上图中右侧的峰值只是原始输入信号的镜像。
下图为频域输出信号y。因此,从这两个图中我们可以得出结论,200 Hz的峰值被消除了,因为它大于截止频率(100 Hz)。
注意:-
假设我们给出一个110hz的输入信号,截止频率是100hz,那么输入信号不会在输出中完全消除,因为它需要时间来完全衰减。这段时间被称为过渡时期。
图2频域输出信号(y)
在MATLAB中使用FDA工具实现低通FIR滤波器
关闭所有;
clc;
FFT_size = 1024;
t = 0:0.001:(FFT_size-1) / 1000;
x1 =罪(2 *π* 15 * t) +罪(2 *π* 100 * t);
x1 = x1 /;
%%fs = 1000hz, fpass = 50hz, fstop = 100hz
B =[-0.00075204 -0.0034964 -0.0025769 -0.0029542 -0.0019023 7.5785e-005 0.0029216
0.0060432 0.0086036 0.0096315 0.0082863 0.0041324 -0.0026099 -0.010933 -0.019081 -0.024793 -0.025704 -0.019846 -0.0061564 - 0.014402 - 0.042456 - 0.015154 -0.0061564 -0.019846 -0.025704 -0.024793 -0.019081 -0.010933 -0.0026099 - 0.0041324 -0.0029542 -0.0025769 -0.0034964 -0.00075204];
b_dec = b * (32768);
b_deca = b_dec (:);
x_dec = x1 * (32768);
x_decaa = x_dec (:);
X =[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 x1];k= 55:1077
Y (k) = (x(k)*b(1)) +…
(x(k-1)*b(2)) +…
(x(k-2)*b(3)) +…
(x(k-3)*b(4)) +…
(x(k-4)*b(5)) +…
(x(k-5)*b(6)) +…
(x(k-6)*b(7)) +…
(x(k-7)*b(8)) +…
(x(k-8)*b(9)) +…
(x(k-9)*b(10)) +…
(x(k-10)*b(11)) +…
(x(k-11)*b(12)) +…
(x(k-12)*b(13)) +…
(x(k-13)*b(14)) +…
(x(k-14)*b(15)) +…
(x(k-15)*b(16)) +…
(x(k-16)*b(17)) +…
(x(k-17)*b(18)) +…
(x(k-18)*b(19)) +…
(x(k-19)*b(20)) +…
(x(k-20)*b(21)) +…
(x(k-21) *b(22)) +…
(x(k-22) *b(23)) +…
(x(k-23) *b(24)) +…
(x(k-24) *b(25)) +…
(x(k-25) *b(26)) +…
(x(k-26) *b(27)) +…
(x(k-27) *b(28)) +…
(x(k-28) *b(29)) +…
(x(k-29) *b(30)) +…
(x(k-30) *b(31)) +…
(x(k-31) *b(32)) +…
(x(k-32) *b(33)) +…
(x(k-33) *b(34)) +…
(x(k-34) *b(35)) +…
(x(k-35) *b(36)) +…
(x(k-36) *b(37)) +…
(x(k-37) *b(38)) +…
(x(k-38) *b(39)) +…
(x(k-39) *b(40)) +…
(x(k-40) *b(41)) +…
(x(k-41) *b(42)) +…
(x(k-42) *b(43)) +…
(x(k-43) *b(44)) +…
(x(k-44) *b(45)) +…
(x(k-45) *b(46)) +…
(x(k-46) *b(47)) +…
(x(k-47) *b(48)) +…
(x(k-48) *b(49)) +…
b (x (k-49) * (50));
y_dec = y * 32768;
y_deca = y_dec (:);
结束
z = y(51:结束);
日元= fft (z, 1024);
图;情节(abs (fft (x1, 1024)));
人物,情节(abs (y1));
y1_dec = 32768日元*;
y1_deca = y1_dec (:);
图3:15hz和100hz频域输入信号。
图4:15hz频域输出信号(y)。从上面两幅图我们可以得出结论,输入信号在100hz频率在输出被切断。
在这个实现中,我们使用FDA(滤波器设计分析)工具来生成滤波器系数。该过滤器的规格为:
Fs = 1000hz。
Fpass = 50 Hz。
Fstop = 100hz。
图5:用于生成低通FIR滤波器系数的FDA工具。
图6:低通FIR滤波器结构。
在这个实现中,FFT的长度是1024。在这里,输入信号由15hz和100hz的两个正弦波峰组成。
x1 =罪(2 *π* 15 * t) +罪(2 *π* 100 * t);
我们正在缩放这个输入信号,因为当输入(x)不在Q-15格式范围内时(即-1到0.9999999)。因此,我们将输入的x除以2,即x1/2。
现在系数被赋给了b。现在我们将对“x1”进行零填充,因为在滤波器方程中,之前的输入信号也与系数相乘。设计了50阶低通FIR滤波器的滤波方程。“k”值从55开始,因为原始输入信号在MATLAB中从第55个位置开始,一直到第1077个位置结束。
滤波方程实现如下:
Y (n) = x (n) * b (1) + x (n - 1) * b(2) +……+ x (n n) * b (n)
如果出现第一个输入,则将其与第一个系数相乘,其余系数与之前的输入相乘,这些输入的值为“0”。
如果出现第二个输入,则第二个输入与第一个系数相乘,第一个输入与第二个系数相乘,其余系数与前一个值为“0”的输入相乘。
它以类似的方式进行,直到输入到来,系数周期性地重复。然后我们绘制输入和输出值的FFT。
MATLAB代码的有用链接
参考以下以及左边面板上提到的链接,以获得有用的MATLAB代码。
OFDM前导信号的产生时间偏差估计频率估计信道估计11a WLAN信道PN序列生成OFDMA Tx RxAES DES载波聚合CCDF冷杉过滤器IIR滤波器低通FIR维特比译码器CRC8 CRC32
射频和无线教程
无线局域网802.11交流802.11广告wimax无线个域网z - waveGSMLTEUMTS蓝牙超宽频物联网卫星天线雷达