射频和无线供应商和资源的家

一站式满足您的射频和无线需求

低通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变换,将时域信号转换为频域信号。

输入firrcos matlab
图1:50hz和200hz频域输入信号(x)

上图中右侧的峰值只是原始输入信号的镜像。
下图为频域输出信号y。因此,从这两个图中我们可以得出结论,200 Hz的峰值被消除了,因为它大于截止频率(100 Hz)。
注意:-

假设我们给出一个110hz的输入信号,截止频率是100hz,那么输入信号不会在输出中完全消除,因为它需要时间来完全衰减。这段时间被称为过渡时期。

输出firrcos matlab
图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 (:);
输入fir滤波器
图3:15hz和100hz频域输入信号。输出fir滤波器
图4:15hz频域输出信号(y)。从上面两幅图我们可以得出结论,输入信号在100hz频率在输出被切断。

在这个实现中,我们使用FDA(滤波器设计分析)工具来生成滤波器系数。该过滤器的规格为:
Fs = 1000hz。
Fpass = 50 Hz。
Fstop = 100hz。

低通滤波器系数使用FDA工具
图5:用于生成低通FIR滤波器系数的FDA工具。FIR滤波器结构
图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蓝牙超宽频物联网卫星天线雷达


分享本页

翻译本页
Baidu