1.close all; clear all; clc; 2.coe =[0 254 35 166 90 221 2 0]; %滤波器系数 3. 4.len = length(coe); % 滤波器阶数 5.Fs=80000; % 采样率 6.T=0.015; % 时间 7.dt=1.0/Fs; % 时间刻度 8.N=T/dt; % 点数 9.t=linspace(0,T,N); % 时间向量 10.x = sin(2*pi*500*t); % 输入信号,500KHz 11.y = sin(2*pi*13000*t); % 输入信号,13000Hz 12.z=x+y; 13.outputY = conv(z,coe)/(2^len); % 输出信号 14. 15.subplot(211) 16.plot(t,z); 17.subplot(212) 18.plot(outputY) 这段代码的FIR滤波器,FIR阶数、系数、字长
时间: 2023-08-06 13:02:02 浏览: 202
MATLAB 语言基础知识详细介绍.pdf
这段代码中的FIR滤波器的阶数为7,系数为coe数组,字长不明确指定,可能是默认使用Matlab中的double类型,即64位浮点数。在第13行代码中,为了避免输出信号的幅值过大,进行了归一化处理,除以了2的len次方。注意,这个归一化因子应该是2的len-1次方,而不是2的len次方,因为len是系数数组的长度,而不是滤波器的阶数。另外,由于卷积运算会使输出信号的长度变长,因此在实际应用中需要对边缘效应进行处理,以避免产生误差。
阅读全文