eric2013 发表于 2014-12-21 14:08:02

注意FIR滤波器获得结果的采样点数偏移

14个点的采样点偏移,高通:

fs=1000;                  %设置采样频率 1K
N=320;                  %采样点数      
n=0:N-1;
t=n/fs;                     %时间序列
f=n*fs/N;                  %频率序列

x1=sin(2*pi*50*t);
x2=sin(2*pi*200*t);
x=sin(2*pi*50*t)+sin(2*pi*200*t);%50Hz和200Hz正弦波混合               

plot(n, x2, 'b');   %绘制信号x的波形
xlabel('时间');
ylabel('幅值');
title('原始信号');
hold on;

b=fir1(28, 125/500,'high');   %获得滤波器系数,截止频率125Hz,高通滤波。
y=filter(b, 1, x);
plot(n(1:305), y(15:319), 'r');
legend('原始信号','滤波后信号');
grid on;

eric2013 发表于 2014-12-21 14:12:54

14个采样点的偏移,低通
fs=1000;                  %设置采样频率 1K
N=320;                  %采样点数      
n=0:N-1;
t=n/fs;                     %时间序列
f=n*fs/N;                  %频率序列

x1=sin(2*pi*50*t);
x2=sin(2*pi*200*t);
x=sin(2*pi*50*t)+sin(2*pi*200*t);%50Hz和200Hz正弦波混合               

plot(n, x1, 'b');   %绘制信号x的波形
xlabel('时间');
ylabel('幅值');
title('原始信号');
hold on;

b=fir1(28, 125/500);   %获得滤波器系数,截止频率125Hz.
y=filter(b, 1, x);
plot(n(1:305), y(15:319), 'r');
legend('原始信号','滤波后信号');
grid on;

xiaosir 发表于 2014-12-27 09:49:15

学习....

caicaptain2 发表于 2015-3-12 16:45:42

回 eric2013 的帖子

eric2013:14个采样点的偏移,低通
fs=1000;                  %设置采样频率 1K
N=320;                & .. (2014-12-21 14:12) images/back.gif

什么意思?

是说经过数字滤波后的波形发生了相移吗?

eric2013 发表于 2015-3-12 17:48:43

回 caicaptain2 的帖子

caicaptain2:什么意思?

是说经过数字滤波后的波形发生了相移吗?
 (2015-03-12 16:45) images/back.gif

是的,线性相位FIR的群延迟。

fcdxsdxsza 发表于 2015-7-1 14:31:42

管理員你好:

看到這篇   忽然讓我想到示波器程式中在   DSO_FirFilter_Step1KHz.c 裡面有

    /* 80階FIR濾波 */
    arm_fir_f32(&S, FirDataInput, FirDataOutput, BLOCK_SIZE);
   
    /* 輸出濾波器數值 */
    for(i = 0; i < DSOSCREEN_LENGTH; i++)
    {
      g_usWaveBuf =FirDataOutput;       /*這裡的+50 是因為 " 群延迟 "嗎? */
    }

又請問是如何算出+50的?謝謝
页: [1]
查看完整版本: 注意FIR滤波器获得结果的采样点数偏移