【滤波器】基于matlab平方根升余弦滤波器【含Matlab源码 994期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【滤波器】基于matlab平方根升余弦滤波器【含Matlab源码 994期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、平方根升余弦滤波器简介
1 引 言
在实际的数字通信系统中, 为了提高信号的频谱利用率, 常使用脉冲整型滤波器。一般都会采用升余弦滤波器作为成形滤波器, 多数情况下还会把一个升余弦滤波器分为两个平方根升余弦滤波器分别放在发送端和接收端。随着数字信号处理技术和器件的发展, 成形滤波器的工作频率越来越高, 超过百兆, 用DSP芯片实现已经不太现实。而FPGA的成本不断降低, 几乎可以跟ASIC相抗衡, 所以用FPGA设计工作在很高频率的滤波器更加合适。设计FIR滤波器的方法很多, 与传统方法相比, 分布式算法和CSD编码的方法可以极大地减少硬件电路的规模, 提高电路的执行速度。本文分别采用以上两种方法进行平方根升余弦滤波器的FPGA设计, 结合ALTERA公司的IP Core进行了比较和分析。
2 根升余弦滚降滤波器及其多相结构
注意到整形滤波器的采样频率一般高于符号速率, 所以, 在整形滤波器之前需要进行过采样。典型M倍插值的做法就是相邻两个样点之间插入M-1个零, 假设FIR滤波器的传输函数是H (z) , 根据抽取/插值理论, 图 1所示的多相结构是该插值滤波器的高效实现形式。图 1中, 根据本文所设计的滤波器要求, 取M=2, Hk (z) (k=0, 1) 表示脉冲响应是hk (n) =h (2n+k) , n=0, 1, …, 16的子滤波器。多相结构的好处在于每个子滤波器可以工作在较低的采样频率而滤波器系数的总数保持不变, 这就意味着计算量减少为原来的1/2了。本文所设计的滤波器的参数如表 1所示。
图 1 2倍插值FIR滤波器结构图
三、部分源代码
%设置参量,采用4倍采样速率,滚降系数为0.5
Fd=1; Fs=4; Delay=2; R=0.5;
%建立升余弦滚降滤波器
[yf,tf]=rcosine(Fd,Fs,'sqrt',R,Delay);
%画图得到升余弦滚降滤波器波形
%b1=ones(1,length(t2));% 滤波器输入矩形脉冲
figure(1);
subplot(3,1,1);
plot(yf);
grid;
xlabel('Time');
ylabel('Amplitude');
title('平方根升余弦滚降滤波器h(t)');
%定义一个与二元序列对应的时间序列作为原始信号
x=[zeros(1,10),ones(1,10),ones(1,10),zeros(1,10),zeros(1,10),zeros(1,10)];
y1=filter(yf,tf,x)/(Fs^0.5);
%y2=filter(yf,tf,y1)/(Fs^0.5);
%画出原始信号波形
subplot(3,1,2);
plot(x);
axis([0,61,-0.2,1.2]);
title('原始信号');
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
[4]张会生,王效洪,耿光辉.基于FPGA实现根升余弦滤波器的研究[J].无线通信技术. 2005,(02)
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/117887082
- 点赞
- 收藏
- 关注作者
评论(0)