主要内容

fdesign.octave

倍频滤波器规格

兼容性

请注意

fdesign.octave在未来的版本中,该功能将从DSP系统工具箱™中移除。该函数的现有实例继续运行。对于新代码,使用octaveFilter(音频工具箱)对象。

语法

D = fdesign.octave(l)
D = fdesign。八度(l,面具)
D = fdesign。八度(l,掩码,规格)
D = fdesign.octave(…Fs)

描述

D = fdesign.octave(l)构造一个八度筛选器规范对象d,l每八度的波段。的默认值l就是其中之一。

请注意

创建的过滤器fdesign.octave符合ANSI标准®S1.11-2004和IEC 61260:1995标准。

D = fdesign。八度(l,面具)构造一个八度筛选器规范对象dl每八度的乐队和面具FVTool的规范。“mask”可选值包括:

  • “阶级0”

  • “1级”

  • 二班的

D = fdesign。八度(l,掩码,规格)构造一个八度筛选器规范对象dl每八度的波段,面具规范的FVTool,和规范规范字符向量。可用的规格有:

  • “N, F0”

(不区分大小写),其中:

  • N是过滤器的顺序

  • F0是中心频率。中心频率以标准化频率单位指定,假设采样频率为48khz,除非规格中包含以Hz为单位的采样频率:D = fdesign.octave(…Fs).如果指定的中心频率无效,则发出警告,中心频率四舍五入到最接近的有效值。可以通过使用确定设计的有效中心频率validfrequencies使用您的八度滤波器规范对象。例如:

    D = fdesign.octave(1,“1级”“N, F0”1000年,6日,44.1 e3);Validcenterfreq = validfrequency (d);
    有效中心频率:

    • 如果指定采样频率,则必须大于20hz且小于20khz。20hz到20khz是人类听力的标准范围。

    • 根据以下算法计算,如果每八度的频带数,l,为偶数:

      G = 10^(3/10);X = -1000:1350;validcenterfreq = 1000*(g ^((2*x-59)/(2*L)));Validcenterfreq = Validcenterfreq (Validcenterfreq >20 & Validcenterfreq <2e4);

    • 根据以下算法计算,如果每八度的频带数,l,为奇数:

      G = 10^(3/10);X = -1000:1350;validcenterfreq = 1000*(g ^((x-30)/L));Validcenterfreq = Validcenterfreq (Validcenterfreq >20 & Validcenterfreq <2e4);

      只有大于20和小于20000的中心频率被保留。中心频率和相应的上频带频率必须小于奈奎斯特频率,奈奎斯特频率是采样率(samplingfreq).上频带频率向量(upperbandfreq)对应中心频率(validcenterfreq)使用以下算法计算:

      = validcenterfreq.*(G^(1/(2*L)));
      该算法剔除了对应的上频带频率不服从奈奎斯特规则的中心频率。
      Validcenterfreq = Validcenterfreq (upperbandfreq < samplingfreq/2);
      如果不指定采样频率,fdesign.octave假设一个samplingfreq48千赫。为了得到有效的归一化中心频率,剩余的中心频率除以24000。
      Validcenterfreq = Validcenterfreq /24000;

例子

全部折叠

请注意:如果您正在使用R2016a或更早的版本,请将对对象的每个调用替换为等效的调用一步语法。例如,obj (x)就变成了步骤(obj, x)

设计一个六阶倍频0级滤波器,中心频率为1000hz,采样频率为44.1 kHz。

D = fdesign.octave(1,“阶级0”“N, F0”6、1000、44100)
d =具有属性的八度:响应:'八度音和分数八度音' BandsPerOctave: 1掩码:'类0'规格:'N,F0'描述:{2x1单元}NormalizedFrequency: 0 Fs: 44100 FilterOrder: 6 F0: 1000
Biquad =设计(d,“SystemObject”,真正的)
biquad =BiquadFilter属性:结构:'直接形式II' SOSMatrixSource: 'Property' SOSMatrix: [3x6 double] ScaleValues: [4x1 double] InitialConditions: 0 OptimizeUnityScaleValues: true显示所有属性

绘制滤波器的幅值响应fvtool.频率的对数刻度自动设置为fvtool对于八度滤波器。

fvtool (biquad)

使用上述设计的滤波器对正弦信号进行滤波。输入是两个音调的和——一个是0.3 kHz,另一个是3 kHz。初始化频谱分析仪,查看过滤后的输出功率谱。

Fs = 2500;sinineobject1 = dsp。SineWave (“SamplesPerFrame”, 1024,...“SampleRate”Fs,“频率”, 100);sinineobject2 = dsp。SineWave (“SamplesPerFrame”, 1024,...“SampleRate”Fs,“频率”, 1000);Sa = dsp。简介(“SampleRate”Fs,“NumInputPorts”2,...“PlotAsTwoSidedSpectrum”假的,“YLimits”(-250年,50),...“ChannelNames”, {“输入”“FilteredOutput”},“ShowLegend”,真正的);

流正弦信号和传递它作为输入到双二次滤波器。使用频谱分析仪查看输入功率谱和过滤后的输出功率谱。

Iter = 1:3000 Sinewave1 = Sineobject1();Sinewave2 = Sineobject2();输入= Sinewave1 + Sinewave2;filteredOutput = biquad(Input);sa(输入,filteredOutput);结束

另请参阅

在R2011a中引入