硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4888|回复: 5
收起左侧

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

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2014-12-21 14:08:02 | 显示全部楼层 |阅读模式
14个点的采样点偏移,高通:
  1. fs=1000;                  %设置采样频率 1K
  2. N=320;                    %采样点数      
  3. n=0:N-1;
  4. t=n/fs;                     %时间序列
  5. f=n*fs/N;                  %频率序列
  6. x1=sin(2*pi*50*t);
  7. x2=sin(2*pi*200*t);
  8. x=sin(2*pi*50*t)+sin(2*pi*200*t);  %50Hz和200Hz正弦波混合               
  9. plot(n, x2, 'b');   %绘制信号x的波形  
  10. xlabel('时间');
  11. ylabel('幅值');
  12. title('原始信号');
  13. hold on;
  14.   
  15. b=fir1(28, 125/500,  'high');     %获得滤波器系数,截止频率125Hz,高通滤波。
  16. y=filter(b, 1, x);
  17. plot(n(1:305), y(15:319), 'r');
  18. legend('原始信号','滤波后信号');
  19. grid on;
复制代码
1.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
 楼主| 发表于 2014-12-21 14:12:54 | 显示全部楼层
14个采样点的偏移,低通
  1. fs=1000;                  %设置采样频率 1K
  2. N=320;                    %采样点数      
  3. n=0:N-1;
  4. t=n/fs;                     %时间序列
  5. f=n*fs/N;                  %频率序列
  6. x1=sin(2*pi*50*t);
  7. x2=sin(2*pi*200*t);
  8. x=sin(2*pi*50*t)+sin(2*pi*200*t);  %50Hz和200Hz正弦波混合               
  9. plot(n, x1, 'b');   %绘制信号x的波形  
  10. xlabel('时间');
  11. ylabel('幅值');
  12. title('原始信号');
  13. hold on;
  14.   
  15. b=fir1(28, 125/500);     %获得滤波器系数,截止频率125Hz.
  16. y=filter(b, 1, x);
  17. plot(n(1:305), y(15:319), 'r');
  18. legend('原始信号','滤波后信号');
  19. grid on;
复制代码
2.png
回复

使用道具 举报

12

主题

134

回帖

170

积分

初级会员

积分
170
发表于 2014-12-27 09:49:15 | 显示全部楼层
学习....
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2015-3-12 16:45:42 | 显示全部楼层

回 eric2013 的帖子

eric2013:14个采样点的偏移,低通
fs=1000;                  %设置采样频率 1K
N=320;                & .. (2014-12-21 14:12) 
什么意思?

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
 楼主| 发表于 2015-3-12 17:48:43 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:什么意思?

是说经过数字滤波后的波形发生了相移吗?
 (2015-03-12 16:45) 
是的,线性相位FIR的群延迟。
回复

使用道具 举报

34

主题

112

回帖

214

积分

高级会员

积分
214
发表于 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[i+50];       /*  這裡的  +50 是因為 " 群延迟 "嗎? */
    }

  又請問  是如何算出+50的?  謝謝
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 21:07 , Processed in 0.285375 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表