主要内容

upfirdn

上采样,应用FIR滤波器,下采样

描述

= upfirdn (h过滤输入信号使用带脉冲响应的FIR滤波器h.这个语法没有实现上采样或下采样。

= upfirdn (hp整数上采样系数p

例子

= upfirdn (hp指定整数下采样系数

例子

全部折叠

将信号的采样率由一个合理的转换因子从48khz的DAT采样率转换为44.1 kHz的CD采样率。使用老鼠函数来求分子l和分母理性因素。

Fdat = 48 e3;Fcd = 44.1 e3;[L, M] =鼠(Fcd / Fdat)
L = 147
米= 160

产生一个1.5 kHz的正弦信号采样 f DAT 0.25秒。绘制信号的第一毫秒。

t = 0:1 / Fdat: 0.25 - 1 / Fdat;x =罪(2 *π* 1.5 e3 * t);阀杆(t,x) xlim([0 0.001])保持

图中包含一个坐标轴。轴包含类型为stem的对象。

设计一个使用Kaiser窗的抗混叠低通滤波器。设置滤波器带边为截止频率的90%和110%, f DAT / 2 × 最小值 1 / l 1 / .指定通带纹波为5 dB,阻带衰减为40 dB。设置通带增益为l

f = (Fdat / 2) *分钟(1 / L, 1 / M);d = designfilt (“lowpassfir”...“PassbandFrequency”, 0.9 * f,“StopbandFrequency”, 1.1 * f,...“PassbandRipple”5,“StopbandAttenuation”现年40岁的...“DesignMethod”“kaiserwin”“SampleRate”48岁的e3);h = L *特遣部队(d);

使用upfirdn与过滤器h重新采样正弦信号。计算和补偿滤波器引入的延迟。生成相应的重采样时间向量。

y = upfirdn (x, h, L, M);延迟=地板(((filtord (d) 1) / 2 - (L - 1)) / L);y = y(延迟+ 1:结束);t_res =(0:(长度(y) 1)) / Fcd;

把重新采样的信号覆盖在图上。

茎(t_res y‘*’)传说(“原始”重新取样的“位置”“东南”)举行

图中包含一个坐标轴。轴包含2个类型为stem的对象。这些对象代表原始,重新采样。

输入参数

全部折叠

输入信号,指定为向量或矩阵。如果是一个向量,那么它代表一个信号。如果是一个矩阵,那么每一列都是独立过滤的。看到提示为更多的细节。

滤波器脉冲响应,指定为向量或矩阵。如果h是一个向量,那么它代表一个FIR滤波器。如果h为一个矩阵,则每一列为一个单独的FIR脉冲响应序列。看到提示为更多的细节。

上采样系数,指定为正整数。

下采样系数,指定为正整数。

输出参数

全部折叠

输出信号,以向量或矩阵的形式返回。每一列的长度装天花板(((长度(新)1)* p +长度(h)) /问)

请注意

upfirdn执行卷积和速率改变信号的长度不同于.的行数大约是p/乘以的行数

提示

的大小的有效组合h是:

  1. 是一个向量h是一个向量。

    输入是一个滤波器和一个信号,所以函数是卷积的h.输出信号行向量是什么为行向量;否则,是一个列向量。

  2. 是一个矩阵h是一个向量。

    输入是一个滤波器和多个信号,所以这个函数是卷积的h每列.由此产生的一个列数相同的矩阵吗

  3. 是一个向量h是一个矩阵。

    输入是多个滤波器和一个信号,所以这个函数对每列进行卷积h.由此产生的一个列数相同的矩阵吗h

  4. 是一个矩阵h是一个矩阵,两列数相同。

    输入是多个滤波器和多个信号,因此函数卷积对应的列h.由此产生的一个列数相同的矩阵吗h

算法

upfirdn采用多相插值结构。多相结构中乘加运算的次数近似lhlx- - - - - -pLx) /在哪里lhlxhn),xn),分别。对于长信号,这个公式通常是精确的。

upfirdn执行三种级联操作:

  1. 对矩阵中的输入数据进行上采样通过整数的一个因子p(插入0)

  2. FIR用向量或矩阵给出的脉冲响应序列对上采样信号数据进行滤波h

  3. 按整数的一个因子对结果进行向下采样(丢弃样品)

FIR滤波器通常是低通滤波器,你必须使用另一个函数如firpmfir1

请注意

这个函数重新取样使用firls,其次是实施的利率变化upfirdn

参考文献

R. E. Crochiere用有理数比率进行数据抽样率转换的通用程序。数字信号处理程序IEEE声学、语音和信号处理学会数字信号处理委员会编。纽约:IEEE出版社,1979,项目8.2-1-8.2-7。

[2] Crochiere, r.e.和Lawrence R. Rabiner。多速率数字信号处理.Englewood Cliffs, NJ: Prentice-Hall, 1983。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

之前介绍过的R2006a