matlab中rcosdesign函数

整理原因

最近需要完成一个fir的作业,具体上就是需要将进行8-PAM调制,4倍上采样,完成C和verilog程序设计,并通过仿真显示出C程序和Verilog滤波波形。课上给出的参考程序中涉及到该函数,与此同时,我对8-PAM不了解,所以打算整理一下,然后看看和8-PAM是否有关联,我从google上同时查找8-PAM和rcosdesign,发现没有和两个词都相关的内容,先留一个坑,等有时间把调制方式的内容学习整理下。

rcosdesign

用法
b = rcosdesign(beta,span,sps,shape)

beta: 滚降系数,取值0~1之间,决定频宽和陡峭程度。取值一般大于0.2。

span: 表示截断的符号范围。

sps: 单个符号范围的采样个数。

shape:可选参数。可不加,可加上’normal’,可加上’sqrt’。

平方根升余弦滤波器

h = rcosdesign(0.25,6,4);
mx = max(abs(h-rcosdesign(0.25,6,4,'sqrt')))          %mx = 0默认情况为平方根升余弦滤波器
fvtool(h,'impulse')

一共4*6+1个采样点
normal升余弦滤波器

rf = 0.25;
span = 4;
sps = 3;

h1 = rcosdesign(rf,span,sps,'normal');
fvtool(h1,'impulse')

normal 升余弦滤波器
normal升余弦滤波器等价于两个级联的平方根升余弦滤波器。
测试代码

rf = 0.25;
span = 4;
sps = 3;
h1 = rcosdesign(rf,span,sps,'normal');   % normal升余弦滤波器
fvtool(h1,'impulse')

h2 = rcosdesign(rf,span,sps,'sqrt');     % 平方根升余弦滤波器
fvtool(h2,'impulse')                     % 显示滤波器脉冲系数
h3 = conv(h2,h2);                        % 级联平方根升余弦滤波器
% 取和normal升余弦滤波器相同数量的系数
p2 = ceil(length(h3)/2);         
m2 = ceil(p2-length(h1)/2);
M2 = floor(p2+length(h1)/2);
ct = h3(m2:M2);

% 绘制normal升余弦滤波器和级联平方根滤波器
stem([h1/max(abs(h1));ct/max(abs(ct))]','filled')
xlabel('Samples')
ylabel('Normalized amplitude')
legend('h1','h2 * h2')

平方根升余弦滤波器和normal升余弦滤波器系数
从图中可以看出,滤波器系数并没有完全重合,这是因为normal升余弦滤波器是无限长度的,我们可以通过增加span截断的符号范围来使得两者之间更接近。
span取50
当span取50时,基本看不出任何区别

附录

randi()函数

用法

r=randi(imax);    % 产生1-imax之间的整型标量
r=randi(imax,10,1);    % 产生1-imax之间的整型10*1矩阵
r=randi([imin,imax],10,1) % 产生仅包含0,1的整型10*1矩阵

在这里插入图片描述

upfirdn()函数

用法

yout = upfirdn(xin,h)             %xin为输入信号,h为脉冲响应
yout = upfirdn(xin,h,p)
yout = upfirdn(xin,h,p,q)       %p为上采样系数,q为下采样系数

说明
包含3个流程:

  1. 上采样xin,上采样控制系数为p(通过插入0来实现)
  2. 利用脉冲响应系数h对上采样后数据进行滤波
  3. 下采样滤波结果,下采样控制系数为q(通过删除部分结果实现)
    后续补充例子

参考文章

[1]https://blog.csdn.net/lanluyug/article/details/80401943
[2]https://ww2.mathworks.cn/help/signal/ref/rcosdesign.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值