东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3442|回复: 25
打印 上一主题 下一主题

[课堂笔记] freqz数字滤波器的频率响应(幅频特性与相频特性)

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14439
QQ
跳转到指定楼层
楼主
发表于 2022-9-1 14:28:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式




数字滤波器的频率响应(幅频特性与相频特性)

freqz 明白了 0-2*pi 那个是  归一化的数字域频率




  1. # -*- coding: utf-8 -*-
  2. __author__ = u'东方耀 微信:dfy_88888'
  3. __date__ = '2022/9/1 上午8:57'
  4. __product__ = 'PyCharm'
  5. __filename__ = '25_BPSK调制解调物理层仿真'


  6. from common.radar_common import *

  7. # 选择Mark Directory as,然后选择第一项:Sources Root   红线消失

  8. # pip3 install scikit-commpy   https://github.com/veeresht/CommPy
  9. # https://blog.51cto.com/u_15127585/2670058

  10. from commpy.filters import rcosfilter, rrcosfilter


  11. mat_file = "/home/jiang/matlab_works/zhihu_tongxin/h1.mat"

  12. mat_data = scio.loadmat(mat_file)
  13. print("matlab数据的字典keys=", mat_data.keys())


  14. bit_rate = 1000  # 比特率
  15. symbol_rate = 1000 # 符号率
  16. sps = 16 #每个符号的采样点数
  17. fc = 2000 #载波频率
  18. fs = 16000 #采样频率 = sps * symbol_rate
  19. sample_num = 129
  20. Roll_off_factor = 0.6

  21. time_idx, h_rc = rcosfilter(sample_num, Roll_off_factor, Ts=1/symbol_rate, Fs=fs)
  22. h1 = mat_data["h1"][0]
  23. # -1 1 2*fs  sinc怎么取 没懂
  24. h_sinc = np.sinc(np.linspace(-4, 4, sample_num))


  25. print("时刻(间隔是采样间隔,非符合间隔):", len(time_idx), time_idx[1] - time_idx[0], 1/symbol_rate, 1/fs, time_idx[:10])
  26. print("滤波器幅值:", len(h_rc), h_rc[:5])

  27. # Compute the frequency response of a digital filter 数字滤波器的频率响应
  28. # `w` is normalized to the range [0, pi) (radians/sample)
  29. # The frequency response, as complex numbers
  30. # https://vimsky.com/examples/usage/python-scipy.signal.freqz.html
  31. w, frequency_response = signal.freqz(h_sinc, a=1)


  32. fig = plt.figure(figsize=(18, 20))  # H=2000  W=1800像素
  33. plt.figure(1)
  34. plt.subplots_adjust(wspace=0, hspace=0.4)
  35. plt.subplot(2, 1, 1)
  36. plt.xlabel("采样点/时刻",
  37.            fontproperties=font, fontsize=15)
  38. plt.ylabel("幅值", fontproperties=font, fontsize=15)

  39. plt.plot(time_idx, h_sinc, marker='o', markersize=4,
  40.              markerfacecolor=my_color[0], color=my_color[0], label="sinc")
  41. plt.plot(time_idx, h_rc, marker='o', markersize=4,
  42.              markerfacecolor=my_color[1], color=my_color[1], label="python")
  43. plt.plot(time_idx, h1, marker='o', markersize=4,
  44.              markerfacecolor=my_color[2], color=my_color[2], label="matlab")
  45. plt.legend(loc="best")
  46. plt.title('rcosfilter升余弦滚降滤波器(滚降因子beta=%.1f)对比' % Roll_off_factor,
  47.              fontproperties=font, fontsize=18)

  48. plt.subplot(2, 1, 2)
  49. plt.plot(w/np.pi, 20 * np.log10(np.abs(frequency_response)), marker='o', markersize=4,
  50.              markerfacecolor=my_color[3], color=my_color[3], label="Amplitude-frequency")
  51. # plt.plot(w, np.unwrap(np.angle(h)), 'g')
  52. plt.plot(w/np.pi, np.unwrap(np.angle(frequency_response)), marker='o', markersize=4,
  53.              markerfacecolor=my_color[4], color=my_color[4], label="Phase-frequency")
  54. plt.xlabel("归一化的频率(*pi radians/sample)",
  55.            fontproperties=font, fontsize=15)
  56. plt.ylabel("幅值(db)", fontproperties=font, fontsize=15)
  57. plt.legend(loc="best")

  58. plt.title('数字滤波器的频率响应(幅频特性与相频特性)',
  59.              fontproperties=font, fontsize=18)

  60. plt.show()




复制代码




屏幕截图_5.png (114.21 KB, 下载次数: 233)

屏幕截图_5.png

h1.mat

858 Bytes, 下载次数: 319

让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
沙发
发表于 2022-9-18 15:37:26 | 只看该作者
有点卡
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
板凳
发表于 2022-9-18 15:38:00 | 只看该作者
挺厉害得
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
地板
发表于 2022-9-18 15:38:44 | 只看该作者
挺厉害得
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
5#
发表于 2022-9-18 15:39:18 | 只看该作者
挺厉害得
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
6#
发表于 2022-9-18 15:39:39 | 只看该作者
挺厉害得
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
7#
发表于 2022-9-18 15:39:58 | 只看该作者
挺厉害得
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
8#
发表于 2022-9-18 15:40:14 | 只看该作者
挺厉害得
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
9#
发表于 2022-9-18 15:40:33 | 只看该作者
挺厉害得
回复

使用道具 举报

0

主题

49

帖子

102

积分

注册会员

Rank: 2

积分
102
10#
发表于 2022-9-18 15:40:55 | 只看该作者
挺厉害得
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-19 16:06 , Processed in 0.191896 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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