注意FIR滤波器获得结果的采样点数偏移
14个点的采样点偏移,高通:fs=1000; %设置采样频率 1K
N=320; %采样点数
n=0:N-1;
t=n/fs; %时间序列
f=n*fs/N; %频率序列
x1=sin(2*pi*50*t);
x2=sin(2*pi*200*t);
x=sin(2*pi*50*t)+sin(2*pi*200*t);%50Hz和200Hz正弦波混合
plot(n, x2, 'b'); %绘制信号x的波形
xlabel('时间');
ylabel('幅值');
title('原始信号');
hold on;
b=fir1(28, 125/500,'high'); %获得滤波器系数,截止频率125Hz,高通滤波。
y=filter(b, 1, x);
plot(n(1:305), y(15:319), 'r');
legend('原始信号','滤波后信号');
grid on; 14个采样点的偏移,低通
fs=1000; %设置采样频率 1K
N=320; %采样点数
n=0:N-1;
t=n/fs; %时间序列
f=n*fs/N; %频率序列
x1=sin(2*pi*50*t);
x2=sin(2*pi*200*t);
x=sin(2*pi*50*t)+sin(2*pi*200*t);%50Hz和200Hz正弦波混合
plot(n, x1, 'b'); %绘制信号x的波形
xlabel('时间');
ylabel('幅值');
title('原始信号');
hold on;
b=fir1(28, 125/500); %获得滤波器系数,截止频率125Hz.
y=filter(b, 1, x);
plot(n(1:305), y(15:319), 'r');
legend('原始信号','滤波后信号');
grid on; 学习....
回 eric2013 的帖子
eric2013:14个采样点的偏移,低通fs=1000; %设置采样频率 1K
N=320; & .. (2014-12-21 14:12) images/back.gif
什么意思?
是说经过数字滤波后的波形发生了相移吗?
回 caicaptain2 的帖子
caicaptain2:什么意思?是说经过数字滤波后的波形发生了相移吗?
(2015-03-12 16:45) images/back.gif
是的,线性相位FIR的群延迟。 管理員你好:
看到這篇 忽然讓我想到示波器程式中在 DSO_FirFilter_Step1KHz.c 裡面有
/* 80階FIR濾波 */
arm_fir_f32(&S, FirDataInput, FirDataOutput, BLOCK_SIZE);
/* 輸出濾波器數值 */
for(i = 0; i < DSOSCREEN_LENGTH; i++)
{
g_usWaveBuf =FirDataOutput; /*這裡的+50 是因為 " 群延迟 "嗎? */
}
又請問是如何算出+50的?謝謝
页:
[1]