升余弦滤波器的频域响应

升余弦滤波器又叫RC滤波器,其传输函数H(ω)如下[1]:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemlkb25nemFpeGlh,size_20,color_FFFFFF,t_70,g_se,x_16

其中α为滚降因子,Ts为采样时间,不同滚降因子对应的传输特性图如下所示:watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemlkb25nemFpeGlh,size_16,color_FFFFFF,t_70,g_se,x_16

由以上波形可以看出,滚降因子α越大,则信号带宽就会越宽;反之,则信号带宽就越窄。以下为使用python代码编写的RC滤波器频域响应代码:

import numpy as np
import matplotlib.pyplot as plt
def hwRrc(Ts = 1, alpha = 0.2, i=0):
    # hw(w + 2*pi*i/Ts)
    if Ts==0:
        Ts = 1
    endw = (1+alpha) * np.pi /Ts *1.5
    w0 = np.arange(-endw, endw, 0.01)
    w 
### MATLAB 中升余弦滤波器频域特性的实现方法 #### 设计根升余弦滤波器 为了在MATLAB中实现升余弦滤波器频域特性,可以利用内置函数`rcosdesign`来创建该类型的滤波器对象。此函数允许指定滚降因子、符号间隔以及滤波器长度等参数。 ```matlab % 定义根升余弦滤波器的设计参数 roll_off = 0.5; % 滚降因子 span_sym = 10; % 符号跨度 (单位: 符号周期) sps = 8; % 每个符号中的样本数 h = rcosdesign(roll_off, span_sym, sps); ``` 这段代码定义了一个具有特定滚降系数和每符号样本数量的根升余弦脉冲成形滤波器[^2]。 #### 计算频率响应 一旦获得了滤波器系数向量 `h` ,就可以使用 `freqz` 函数计算其频率响应: ```matlab [H,f] = freqz(h); % H 是复数值频率响应;f 表示对应的角频率 figure; plot(f/pi, abs(H)); % 绘制归一化后的幅度谱图 xlabel('Normalized Frequency (\times\pi rad/sample)'); ylabel('|H|'); title('Magnitude Response of Raised Cosine Filter'); grid on; ``` 这会绘制出滤波器的幅值响应曲线,在这里可以看到典型的升余弦形状特征。 #### 可视化时域与频域响应 除了查看频域内的表现外,还可以观察滤波器的时间行为及其冲击响应: ```matlab figure; subplot(2,1,1); stem(real(ifftshift(ifft(H)))); axis tight; title('Impulse Response'); subplot(2,1,2); plot(linspace(-length(h)/2,length(h)/2-1,length(h)), h); axis tight; title('Time Domain Representation'); ``` 这些图形有助于更全面地理解滤波器的行为模式,包括它如何影响不同频率分量的数据流。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值