搜索
bottom↓
回复: 6

滤波器 频率问题

[复制链接]

出0入0汤圆

发表于 2013-7-10 22:23:24 | 显示全部楼层 |阅读模式
请问一下,通常看到的  信号频率   采样频率,这两个频率和自身的时钟什么关系?
比如说:信号频率为1kHz,采样频率为20kHz,滤波器时钟应该是多少M?是和数据频率保持一样还是另有算法?
谢了

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-7-11 17:03:01 | 显示全部楼层
求知道~

出0入0汤圆

发表于 2013-7-11 21:11:23 | 显示全部楼层
通常的,采样率大于2倍带宽,如果是基带采样的话,采样率大于2倍最大信号频率;(非复用模式下)数字滤波器的工作时钟为采样率。

出0入0汤圆

 楼主| 发表于 2013-7-11 22:52:19 | 显示全部楼层
philoman 发表于 2013-7-11 21:11
通常的,采样率大于2倍带宽,如果是基带采样的话,采样率大于2倍最大信号频率;(非复用模式下)数字滤波器 ...

谢谢你的解答
  1. //-------------------------------------
  2. //        %参数定义
  3. //        f=1000;                        %信号频率为1kHz
  4. //        Fs=40*f;                        %采样频率为20kHz
  5. //        n=16;                                %半带滤波器阶数
  6. //        D=2;                                %抽取因子
  7. //        dev=0.0001;                %通阻带容限
  8. //       
  9. //        %产生正弦波信号
  10. //        t=0:1/Fs:0.02;
  11. //        c=2*pi*f*t;
  12. //        si=sin(c);
  13. //       
  14. //        %设计半带滤波器
  15. //        b=firhalfband(n,dev,'dev')
  16. //        s=filter(b,1,si);                %对信号进行滤波
  17. //        s=s/max(abs(s));                %归一化处理
  18. //        Ds=s(1:D:length(t));        %对滤波后的信号进行抽取
  19. //       
  20. //        %绘图
  21. //        figure(1);x=0:1:100;x=x/Fs;Dx=x(1:D:length(x));
  22. //        subplot(211);stem(x,si(1:length(x)));title('MATLAB仿真前波形');
  23. //        subplot(212);stem(Dx,Ds(1:length(Dx)));title('MATLAB仿真后波形');
  24. //        figure(2);freqz(b);

  25. //滤波系数
  26. //b =
  27. //
  28. //  Columns 1 through 11
  29. //
  30. //         0   -0.0030         0    0.0187         0   -0.0700         0    0.3043    0.5000    0.3043         0
  31. //
  32. //  Columns 12 through 17
  33. //
  34. //   -0.0700         0    0.0187         0   -0.0030         0
  35. //b =
  36. //
  37. //     0    -1     0     5     0   -18     0    78   128    78     0   -18     0     5     0    -1     0
复制代码
这是我的MATLAB程序


为什么得到的滤波后的波形和输入波形一个样呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-7-11 22:58:40 | 显示全部楼层
philoman 发表于 2013-7-11 21:11
通常的,采样率大于2倍带宽,如果是基带采样的话,采样率大于2倍最大信号频率;(非复用模式下)数字滤波器 ...


我原以为是滤波器时钟设置问题,这下排除了,那会是什么问题呢?

出0入0汤圆

 楼主| 发表于 2013-7-11 22:59:50 | 显示全部楼层
  1. module HB
  2. (
  3.         input clk,
  4.         input rst_n,
  5.        
  6.         input[7:0] HB_in,
  7.        
  8.         output[19:0] HB_out
  9. );
  10. //-------------------------------------
  11. //        %参数定义
  12. //        f=1000;                        %信号频率为1kHz
  13. //        Fs=40*f;                        %采样频率为20kHz
  14. //        n=16;                                %半带滤波器阶数
  15. //        D=2;                                %抽取因子
  16. //        dev=0.0001;                %通阻带容限
  17. //       
  18. //        %产生正弦波信号
  19. //        t=0:1/Fs:0.02;
  20. //        c=2*pi*f*t;
  21. //        si=sin(c);
  22. //       
  23. //        %设计半带滤波器
  24. //        b=firhalfband(n,dev,'dev')
  25. //        s=filter(b,1,si);                %对信号进行滤波
  26. //        s=s/max(abs(s));                %归一化处理
  27. //        Ds=s(1:D:length(t));        %对滤波后的信号进行抽取
  28. //       
  29. //        %绘图
  30. //        figure(1);x=0:1:100;x=x/Fs;Dx=x(1:D:length(x));
  31. //        subplot(211);stem(x,si(1:length(x)));title('MATLAB仿真前波形');
  32. //        subplot(212);stem(Dx,Ds(1:length(Dx)));title('MATLAB仿真后波形');
  33. //        figure(2);freqz(b);

  34. //滤波系数
  35. //b =
  36. //
  37. //  Columns 1 through 11
  38. //
  39. //         0   -0.0030         0    0.0187         0   -0.0700         0    0.3043    0.5000    0.3043         0
  40. //
  41. //  Columns 12 through 17
  42. //
  43. //   -0.0700         0    0.0187         0   -0.0030         0
  44. //b =
  45. //
  46. //     0    -1     0     5     0   -18     0    78   128    78     0   -18     0     5     0    -1     0

  47. //-------------------------------------
  48. wire[7:0] delay_out1,delay_out2,delay_out3,delay_out4,delay_out5,delay_out6,delay_out7,delay_out8,delay_out9,delay_out10,delay_out11,delay_out12,delay_out13,delay_out14,delay_out15,delay_out16;
  49. wire[15:0] MULT_data1,MULT_data2,MULT_data3,MULT_data4,MULT_data5,MULT_data6,MULT_data7,MULT_data8,MULT_data9,MULT_data10;
  50. //-------------------------------------
  51. delay        delay
  52. (
  53.         .clk(clk),
  54.         .rst_n(rst_n),
  55.         .delay_in(HB_in),                                //0
  56.         .delay_out1(delay_out1),        //-1
  57.         .delay_out2(delay_out2),        //0
  58.         .delay_out3(delay_out3),        //5
  59.         .delay_out4(delay_out4),        //0
  60.         .delay_out5(delay_out5),        //-18
  61.         .delay_out6(delay_out6),        //0
  62.         .delay_out7(delay_out7),        //78
  63.         .delay_out8(delay_out8),        //128
  64.         .delay_out9(delay_out9),        //78
  65.         .delay_out10(delay_out10),        //0
  66.         .delay_out11(delay_out11),        //-18
  67.         .delay_out12(delay_out12),        //0
  68.         .delay_out13(delay_out13),        //5
  69.         .delay_out14(delay_out14),        //0
  70.         .delay_out15(delay_out15),        //-1
  71.         .delay_out16(delay_out16)        //0
  72. );
  73. //-------------------------------------
  74. MULT        MULT1//乘法器
  75. (
  76.         .clk(clk),
  77.         .rst_n(rst_n),
  78.         .data_in1(delay_out1),
  79.         .data_in2(8'b1111_1111),        //-1
  80.         .Out(MULT_data1)
  81. );
  82. //-------------------------------------
  83. MULT        MULT2//乘法器
  84. (
  85.         .clk(clk),
  86.         .rst_n(rst_n),
  87.         .data_in1(delay_out3),
  88.         .data_in2(8'b0000_0101),        //5
  89.         .Out(MULT_data2)
  90. );
  91. //-------------------------------------
  92. MULT        MULT3//乘法器
  93. (
  94.         .clk(clk),
  95.         .rst_n(rst_n),
  96.         .data_in1(delay_out5),
  97.         .data_in2(8'b1110_1110),        //-18
  98.         .Out(MULT_data3)
  99. );
  100. //-------------------------------------
  101. MULT        MULT4//乘法器
  102. (
  103.         .clk(clk),
  104.         .rst_n(rst_n),
  105.         .data_in1(delay_out7),
  106.         .data_in2(8'b0100_1110),        //78
  107.         .Out(MULT_data4)
  108. );
  109. //-------------------------------------
  110. MULT        MULT5//乘法器
  111. (
  112.         .clk(clk),
  113.         .rst_n(rst_n),
  114.         .data_in1(delay_out8),
  115.         .data_in2(8'd0111_1111),        //128
  116.         .Out(MULT_data5)
  117. );
  118. //-------------------------------------
  119. MULT        MULT6//乘法器
  120. (
  121.         .clk(clk),
  122.         .rst_n(rst_n),
  123.         .data_in1(delay_out9),
  124.         .data_in2(8'b0100_1110),        //78
  125.         .Out(MULT_data6)
  126. );
  127. //-------------------------------------
  128. MULT        MULT7//乘法器
  129. (
  130.         .clk(clk),
  131.         .rst_n(rst_n),
  132.         .data_in1(delay_out11),
  133.         .data_in2(8'b1110_1110),        //-18
  134.         .Out(MULT_data7)
  135. );
  136. //-------------------------------------
  137. MULT        MULT8//乘法器
  138. (
  139.         .clk(clk),
  140.         .rst_n(rst_n),
  141.         .data_in1(delay_out13),
  142.         .data_in2(8'b0000_0101),        //5
  143.         .Out(MULT_data8)
  144. );
  145. //-------------------------------------
  146. MULT        MULT9//乘法器
  147. (
  148.         .clk(clk),
  149.         .rst_n(rst_n),
  150.         .data_in1(delay_out15),
  151.         .data_in2(8'b1111_1111),        //-1
  152.         .Out(MULT_data9)
  153. );
  154. //-------------------------------------
  155. ADD        ADD//加法器
  156. (
  157.         .clk(clk),
  158.         .rst_n(rst_n),
  159.        
  160.         .MULT_data1(MULT_data1),
  161.         .MULT_data2(MULT_data2),
  162.         .MULT_data3(MULT_data3),
  163.         .MULT_data4(MULT_data4),
  164.         .MULT_data5(MULT_data5),
  165.         .MULT_data6(MULT_data6),
  166.         .MULT_data7(MULT_data7),
  167.         .MULT_data8(MULT_data8),
  168.         .MULT_data9(MULT_data9),
  169. //        .MULT_data10(MULT_data10[15:8]),
  170.         .ADD_data(HB_out)
  171. );
  172. //-------------------------------------
  173. //-------------------------------------
  174. endmodule
复制代码
这是我的verilog代码,应该不会有什么理解上的错误吧...

出0入0汤圆

 楼主| 发表于 2013-7-12 13:38:25 | 显示全部楼层
接着顶
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 05:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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