Matlab滤波、频谱分析
滤波:
某目标信号是由5、15、30Hz正弦波混合而成的混合信号,现需要设计一个滤波器滤掉5、30Hz两种频率。
分析:显然我们应该设计一个带通滤波器,通带频率落在15Hz附近。
% 滤波
% 某目标信号是由5、15、30Hz正弦波混合而成的混合信号,
% 现需要设计一个滤波器滤掉5、30Hz两种频率。
%
% 分析:显然我们应该设计一个带通滤波器,通带频率落在15Hz附近。
N = 100; %采样点数
t = (1:100)/N; %采样步长
s1 = sin(2*pi*t*5); % 5Hz正弦波
s2 = sin(2*pi*t*15);% 15Hz正弦波
s3 = sin(2*pi*t*30);% 30Hz正弦波
s = s1 + s2 + s3; %信号叠加
plot(t,s); %显示信号
xlabel('时间/s'); ylabel('幅值');
title('时域信号time domain signal');
[b,a] = ellip(4,0.1,40,[10 20]*2/N); %设置滤波器
% %下面四行可以不操作
figure(2)
[H,w] = freqz(b,a,512); %数字滤波器频响
plot(w*N/(2*pi),abs(H)); %显示频率响应
xlabel('Frequency (Hz)'); ylabel('Mag. of frequency response'); %设定标签
title('频率响应');
grid; %显示网格
% %上面四行可以不操作
figure(3)
sf = filter(b,a,s); %数字滤波
plot(t,sf); %显示滤波结果
axis([0 1 -1 1]); %设定轴刻度
xlabel('时间/s'); ylabel('幅值');
title('滤波后的时域信号');
% 查找帮助看看ellip的参数,注意通带的设置以及采样频率、采样点数的选取。
% 函数ellip的简要说明,
% ellip(4,0.1,40,[10 20]*2/N),其中的4是滤波器的阶数,这里为4阶滤波器,
% 通带衰减为0.1 dB, 阻带衰减为40 dB,[10 20]为通频带10~20Hz,
% 注意最后一项的值必须大于0小于等于1。
查找帮助看看ellip的参数,注意通带的设置以及采样频率、采样点数的选取。
函数ellip的简要说明,ellip(4,0.1,40,[10 20]*2/N),其中的4是滤波器的阶数,这里为4阶滤波器,通带衰减为0.1 dB, 阻带衰减为40 dB,[10 20]为通频带10~20Hz,注意最后一项的值必须大于0小于等于1。